void debuggerPrintMember(Function *f, Member *m, u32 objLocation, u32 location)
static void debuggerPrintMember(Function *f, Member *m, u32 objLocation, u32 location)
void debuggerPrintMember(Function *f,                         Member *m,                         u32 objLocation,                         u32 location){  int bitSize = m->bitSize;  if(bitSize) {    u32 value = 0;    int off = m->bitOffset;    int size = m->byteSize;    u32 v = 0;    if(size == 1)      v = debuggerReadByte(location);      else if(size == 2)        v = debuggerReadHalfWord(location);      else if(size == 4)        v = debuggerReadMemory(location);            while(bitSize) {        int top = size*8 - off;        int bot = top - bitSize;        top--;        if(bot >= 0) {          value = (v >> (size*8 - bitSize - off)) & ((1 << bitSize)-1);          bitSize = 0;        } else {          value |= (v & ((1 << top)-1)) << (bitSize - top);          bitSize -= (top+1);          location -= size;          off = 0;          if(size == 1)            v = debuggerReadByte(location);          else if(size == 2)            v = debuggerReadHalfWord(location);          else            v = debuggerReadMemory(location);        }      }      debuggerPrintBaseType(m->type, value, location, LOCATION_memory,                            bitSize, 0);    } else {      debuggerPrintValueInternal(f, m->type, m->location, m->bitSize,                                 m->bitOffset, objLocation);    }  }