// 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
{\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
\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
\r
value[0] = 0;\r
\r
+#if 0\r
if (Adr)\r
+#endif\r
{\r
memset(&V, 0, sizeof(Value));\r
#if 0\r
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
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
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