Minor cosmetic and comments modifications
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DBGManager.cpp
index e79c257..e3d5956 100644 (file)
 // JPM  12/21/2016  Created this file\r
 // JPM              Various efforts to set the ELF format support\r
 // JPM              Various efforts to set the DWARF format support\r
+// JPM  09/15/2018  Support the unsigned char\r
+// JPM  10/06/2018  Cosmetic changes\r
+//\r
+\r
+// To Do\r
+//\r
+\r
 \r
 #include <stdlib.h>\r
 #include <string.h>\r
@@ -30,7 +37,9 @@ struct Value
 {\r
        union\r
        {\r
-               char C[10];\r
+               char Ct[10];\r
+               char C;\r
+               bool B;\r
                double D;\r
                float F;\r
                int32_t SI;\r
@@ -340,7 +349,7 @@ char *DBGManager_GetGlobalVariableValue(size_t Index)
 \r
 // Get variable value based on his Adresse, Encoding Type and Size\r
 // Return value as a text pointer\r
-// Note: Pointer may point on a 0 lenght text if Adress is NULL\r
+// Note: Pointer may point on a 0 length text\r
 char *DBGManager_GetVariableValueFromAdr(size_t Adr, size_t TypeEncoding, size_t TypeByteSize)\r
 {\r
        Value V;\r
@@ -348,7 +357,9 @@ char *DBGManager_GetVariableValueFromAdr(size_t Adr, size_t TypeEncoding, size_t
 \r
        value[0] = 0;\r
 \r
+#if 0\r
        if (Adr)\r
+#endif\r
        {\r
                memset(&V, 0, sizeof(Value));\r
 #if 0\r
@@ -356,20 +367,19 @@ char *DBGManager_GetVariableValueFromAdr(size_t Adr, size_t TypeEncoding, size_t
                        jaguarMainRAM[Adr + i] = 0;\r
                        //jaguarMainRAM[Adr + i] = rand();\r
                jaguarMainRAM[Adr + TypeByteSize - 1] = 0x10;\r
-#endif\r
-#if 1\r
+#else\r
                for (size_t i = 0, j = TypeByteSize; i < TypeByteSize; i++, j--)\r
                {\r
-                       V.C[i] = jaguarMainRAM[Adr + j - 1];\r
+                       V.Ct[i] = jaguarMainRAM[Adr + j - 1];\r
                }\r
 #endif\r
-\r
                switch (TypeEncoding)\r
                {\r
                case DBG_ATE_address:\r
                        break;\r
 \r
                case DBG_ATE_boolean:\r
+                       sprintf(value, "%s", V.B ? "true" : "false");\r
                        break;\r
 \r
                case DBG_ATE_complex_float:\r
@@ -429,6 +439,7 @@ char *DBGManager_GetVariableValueFromAdr(size_t Adr, size_t TypeEncoding, size_t
                        break;\r
 \r
                case DBG_ATE_unsigned_char:\r
+                       sprintf(value, "%u", (unsigned int(V.C)));\r
                        break;\r
 \r
                case DBG_ATE_ptr:\r
@@ -591,43 +602,70 @@ char *DBGManager_GetSymbolNameFromAdr(size_t Adr)
 // Return NULL if no source line has been found\r
 char *DBGManager_GetLineSrcFromAdr(size_t Adr, size_t Tag)\r
 {\r
-       char *Symbolname = NULL;\r
+       char *TextLine = NULL;\r
 \r
        if ((DBGType & DBG_ELFDWARF))\r
        {\r
-               Symbolname = DWARFManager_GetLineSrcFromAdr(Adr, Tag);\r
+               TextLine = DWARFManager_GetLineSrcFromAdr(Adr, Tag);\r
        }\r
 \r
-       return  Symbolname;\r
+       return  TextLine;\r
 }\r
 \r
 \r
-// Get text line from source based on address and num line (starting by 1)\r
+// Get text line from source based on address and num line (starting from 1)\r
 // Return NULL if no text line has been found\r
 char *DBGManager_GetLineSrcFromAdrNumLine(size_t Adr, size_t NumLine)\r
 {\r
-       char *Symbolname = NULL;\r
+       char *TextLine = NULL;\r
 \r
        if ((DBGType & DBG_ELFDWARF))\r
        {\r
-               Symbolname = DWARFManager_GetLineSrcFromAdrNumLine(Adr, NumLine);\r
+               TextLine = DWARFManager_GetLineSrcFromAdrNumLine(Adr, NumLine);\r
        }\r
 \r
-       return  Symbolname;\r
+       return  TextLine;\r
 }\r
 \r
 \r
-// Get text line from source based on address and num line (starting by 1)\r
+// Get text line from source based on address and num line (starting from 1)\r
 // Return NULL if no text line has been found\r
 char *DBGManager_GetLineSrcFromNumLineBaseAdr(size_t Adr, size_t NumLine)\r
 {\r
-       char *Symbolname = NULL;\r
+       char *TextLine = NULL;\r
 \r
        if ((DBGType & DBG_ELFDWARF))\r
        {\r
-               Symbolname = DWARFManager_GetLineSrcFromNumLineBaseAdr(Adr, NumLine);\r
+               TextLine = DWARFManager_GetLineSrcFromNumLineBaseAdr(Adr, NumLine);\r
        }\r
 \r
-       return  Symbolname;\r
+       return  TextLine;\r
 }\r
 \r
+\r
+// Get number of source code filenames\r
+size_t DBGManager_GetNbFullSourceFilename(void)\r
+{\r
+       size_t Nbr = 0;\r
+\r
+       if ((DBGType & DBG_ELFDWARF))\r
+       {\r
+               Nbr = DWARFManager_GetNbFullSourceFilename();\r
+       }\r
+\r
+       return Nbr;\r
+}\r
+\r
+\r
+// Get source code filename based on index\r
+char *DBGManager_GetNumFullSourceFilename(size_t Index)\r
+{\r
+       char *FullSourceFilename = NULL;\r
+\r
+       if ((DBGType & DBG_ELFDWARF))\r
+       {\r
+               FullSourceFilename = DWARFManager_GetNumFullSourceFilename(Index);\r
+       }\r
+\r
+       return  FullSourceFilename;\r
+}\r