Fixed the typedef's name display in Local and Watch variables window
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DWARFManager.cpp
index 16e096a..3817763 100644 (file)
@@ -44,6 +44,14 @@ struct BaseTypeStruct
        char *PtrName;                                                  // Type's name\r
 }S_BaseTypeStruct;\r
 \r
+// Definitions for the variables's typetag\r
+#define        TypeTag_structure       0x01                    // structure\r
+#define        TypeTag_pointer         0x02                    // pointer\r
+#define        TypeTag_0x04            0x04\r
+#define        TypeTag_arraytype       0x08                    // array type\r
+#define        TypeTag_consttype       0x10                    // const type\r
+#define        TypeTag_typedef         0x20                    // typedef\r
+\r
 // Variables internal structure\r
 struct VariablesStruct\r
 {\r
@@ -908,8 +916,11 @@ void DWARFManager_InitInfosVariable(VariablesStruct *PtrVariables)
                                break;\r
 \r
                        case DW_TAG_typedef:\r
-                               PtrVariables->TypeTag |= 0x20;\r
-                               strcat(PtrVariables->PtrTypeName, PtrCU[NbCU].PtrTypes[j].PtrName);\r
+                               if (!(PtrVariables->TypeTag & 0x20))\r
+                               {\r
+                                       PtrVariables->TypeTag |= 0x20;\r
+                                       strcat(PtrVariables->PtrTypeName, PtrCU[NbCU].PtrTypes[j].PtrName);\r
+                               }\r
                                if ((TypeOffset = PtrCU[NbCU].PtrTypes[j].TypeOffset))\r
                                {\r
                                        j = -1;\r
@@ -938,7 +949,10 @@ void DWARFManager_InitInfosVariable(VariablesStruct *PtrVariables)
                                break;\r
 \r
                        case DW_TAG_base_type:\r
-                               strcat(PtrVariables->PtrTypeName, PtrCU[NbCU].PtrTypes[j].PtrName);\r
+                               if (!(PtrVariables->TypeTag & 0x20))\r
+                               {\r
+                                       strcat(PtrVariables->PtrTypeName, PtrCU[NbCU].PtrTypes[j].PtrName);\r
+                               }\r
                                if ((PtrVariables->TypeTag & 0x2))\r
                                {\r
                                        strcat(PtrVariables->PtrTypeName, " *");\r