X-Git-Url: http://git.hcoop.net/clinton/Virtual-Jaguar-Rx.git/blobdiff_plain/169c1409e2a4b4f5d733ccddb928ba8b775bcc86..47b6ecae8f96f86ae72d0a76ada94c943bad54b3:/src/debugger/localbrowser.cpp
diff --git a/src/debugger/localbrowser.cpp b/src/debugger/localbrowser.cpp
index 77e7102..c5782da 100644
--- a/src/debugger/localbrowser.cpp
+++ b/src/debugger/localbrowser.cpp
@@ -78,23 +78,27 @@ bool LocalBrowserWindow::UpdateInfos(void)
{
if (strcmp(FuncName, Ptr))
{
- FuncName = (char *)realloc(FuncName, strlen(Ptr) + 1);
- strcpy(FuncName, Ptr);
-
- LocalInfo = (WatchInfo *)realloc(LocalInfo, (sizeof(WatchInfo) * NbLocal));
- for (size_t i = 0; i < NbLocal; i++)
+ if (FuncName = (char *)realloc(FuncName, strlen(Ptr) + 1))
{
- // Get local variable name and his information
- if (LocalInfo[i].PtrVariableName = DBGManager_GetLocalVariableName(Adr, i + 1))
+ strcpy(FuncName, Ptr);
+
+ if (LocalInfo = (WatchInfo *)realloc(LocalInfo, (sizeof(WatchInfo) * NbLocal)))
{
- LocalInfo[i].Op = DBGManager_GetLocalVariableOp(Adr, i + 1);
- LocalInfo[i].Adr = NULL;
- LocalInfo[i].PtrCPURegisterName = NULL;
- LocalInfo[i].TypeTag = DBGManager_GetLocalVariableTypeTag(Adr, i + 1);
- LocalInfo[i].PtrVariableBaseTypeName = DBGManager_GetLocalVariableTypeName(Adr, i + 1);
- LocalInfo[i].TypeEncoding = DBGManager_GetLocalVariableTypeEncoding(Adr, i + 1);
- LocalInfo[i].TypeByteSize = DBGManager_GetLocalVariableTypeByteSize(Adr, i + 1);
- LocalInfo[i].Offset = DBGManager_GetLocalVariableOffset(Adr, i + 1);
+ for (size_t i = 0; i < NbLocal; i++)
+ {
+ // Get local variable name and his information
+ if (LocalInfo[i].PtrVariableName = DBGManager_GetLocalVariableName(Adr, i + 1))
+ {
+ LocalInfo[i].Op = DBGManager_GetLocalVariableOp(Adr, i + 1);
+ LocalInfo[i].Adr = NULL;
+ LocalInfo[i].PtrCPURegisterName = NULL;
+ LocalInfo[i].TypeTag = DBGManager_GetLocalVariableTypeTag(Adr, i + 1);
+ LocalInfo[i].PtrVariableBaseTypeName = DBGManager_GetLocalVariableTypeName(Adr, i + 1);
+ LocalInfo[i].TypeEncoding = DBGManager_GetLocalVariableTypeEncoding(Adr, i + 1);
+ LocalInfo[i].TypeByteSize = DBGManager_GetLocalVariableTypeByteSize(Adr, i + 1);
+ LocalInfo[i].Offset = DBGManager_GetLocalVariableOffset(Adr, i + 1);
+ }
+ }
}
}
}
@@ -174,26 +178,33 @@ void LocalBrowserWindow::RefreshContents(void)
}
}
- sprintf(string, "%i : %s | %s | ", (i + 1), (LocalInfo[i].PtrVariableBaseTypeName ? LocalInfo[i].PtrVariableBaseTypeName : (char *)"N/A"), LocalInfo[i].PtrVariableName);
- Local += QString(string);
- if ((unsigned int)LocalInfo[i].Adr)
+ if (!LocalInfo[i].Op)
{
- sprintf(string, "0x%06X", (unsigned int)LocalInfo[i].Adr);
+ sprintf(string, "%i : %s | %s | [Not used]", (i + 1), (LocalInfo[i].PtrVariableBaseTypeName ? LocalInfo[i].PtrVariableBaseTypeName : (char *)"N/A"), LocalInfo[i].PtrVariableName);
}
else
{
- if (LocalInfo[i].PtrCPURegisterName)
+ sprintf(string, "%i : %s | %s | ", (i + 1), (LocalInfo[i].PtrVariableBaseTypeName ? LocalInfo[i].PtrVariableBaseTypeName : (char *)"N/A"), LocalInfo[i].PtrVariableName);
+ Local += QString(string);
+ if ((unsigned int)LocalInfo[i].Adr)
{
- sprintf(string, "%s", LocalInfo[i].PtrCPURegisterName);
+ sprintf(string, "0x%06X", (unsigned int)LocalInfo[i].Adr);
}
else
{
- sprintf(string, "%s", (char *)"N/A");
- }
+ if (LocalInfo[i].PtrCPURegisterName)
+ {
+ sprintf(string, "%s", LocalInfo[i].PtrCPURegisterName);
+ }
+ else
+ {
+ sprintf(string, "%s", (char *)"N/A");
+ }
+ }
+ Local += QString(string);
+ sprintf(string, " | %s", (!PtrValue ? (char *)"N/A" : PtrValue));
}
Local += QString(string);
- sprintf(string, " | %s", (!PtrValue ? (char *)"N/A" : PtrValue));
- Local += QString(string);
sprintf(string, "
");
Local += QString(string);
}