switch(t->type) { case TYPE_base: debuggerPrintBaseType(t, value, objLocation, type, bitSize, bitOffset); break; case TYPE_pointer: debuggerPrintPointer(t, value); break; case TYPE_reference: debuggerPrintReference(t, value); break; case TYPE_function: debuggerPrintFunction(t, value); break; case TYPE_array: debuggerPrintArray(t, objLocation); break; case TYPE_struct: debuggerPrintStructure(f, t, objLocation); break; case TYPE_union: debuggerPrintUnion(f, t, objLocation); break; case TYPE_enum: debuggerPrintEnum(t, value); break; default: printf("%08x", value); break; }
debuggerPrintValueInternal(f, t, bitSize, bitOffset, location, type);
static void debuggerPrintValueInternal(Function *f, Type *t,                                       int bitSize, int bitOffset,                                       u32 objLocation, LocationType type){  u32 value = debuggerGetValue(objLocation, type);  if(!t) {    printf("void");    return;  }  switch(t->type) {  case TYPE_base:    debuggerPrintBaseType(t, value, objLocation, type, bitSize, bitOffset);    break;  case TYPE_pointer:    debuggerPrintPointer(t, value);    break;  case TYPE_reference:    debuggerPrintReference(t, value);    break;  case TYPE_function:    debuggerPrintFunction(t, value);    break;  case TYPE_array:    debuggerPrintArray(t, objLocation);    break;  case TYPE_struct:    debuggerPrintStructure(f, t, objLocation);    break;  case TYPE_union:    debuggerPrintUnion(f, t, objLocation);    break;  case TYPE_enum:    debuggerPrintEnum(t, value);    break;  default:    printf("%08x", value);    break;  }  }