void debuggerPrint(int argc, char **argv)
static void debuggerPrint(int argc, char **argv)
void debuggerPrint(int argc, char **argv){  if(argc != 2 && argc != 3) {    debuggerUsage(argv[0]);  } else {    u32 pc = armNextPC;    Function *f = NULL;    CompileUnit *u = NULL;        elfGetCurrentFunction(pc,                          &f, &u);    int oldRadix = debuggerRadix;    if(argc == 3) {      if(argv[1][0] == '/') {        if(argv[1][1] == 'x')          debuggerRadix = 1;        else if(argv[1][1] == 'o')          debuggerRadix = 2;        else if(argv[1][1] == 'd')          debuggerRadix = 0;        else {          printf("Unknown format %c\n", argv[1][1]);          return;        }      } else {        printf("Unknown option %s\n", argv[1]);        return;      }    }         char *s = argc == 2 ? argv[1] : argv[2];    extern char *exprString;    extern int exprCol;    extern int yyparse();    exprString = s;    exprCol = 0;    if(!yyparse()) {      extern Node *result;      if(result->resolve(result, f, u)) {        if(result->member)          debuggerPrintMember(f,                              result->member,                              result->objLocation,                              result->location);        else          debuggerPrintValueInternal(f, result->type, 0, 0,                                     result->location,                                     result->locType);        printf("\n");      } else {        printf("Error resolving expression\n");      }    } else {      printf("Error parsing expression:\n");      printf("%s\n", s);      exprCol--;      for(int i = 0; i < exprCol; i++)        printf(" ");      printf("^\n");    }    extern void exprCleanBuffer();    exprCleanBuffer();    exprNodeCleanUp();    debuggerRadix = oldRadix;  }}