Help & content texts updates
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DBGManager.cpp
index e79c257..5f9251a 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
+\r
+// To Do\r
+//\r
+\r
 \r
 #include <stdlib.h>\r
 #include <string.h>\r
@@ -30,7 +35,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 +347,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 +355,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 +365,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 +437,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
@@ -631,3 +640,30 @@ char *DBGManager_GetLineSrcFromNumLineBaseAdr(size_t Adr, size_t NumLine)
        return  Symbolname;\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