Added a source code files list viewer
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DWARFManager.cpp
index b064bee..1ee459f 100644 (file)
@@ -9,8 +9,7 @@
 // ---  ----------  ------------------------------------------------------------\r
 // JPM  12/03/2016  Created this file\r
 // JPM  12/03/2016  DWARF format support\r
-// JPM  09/12/2018  Added LEB128 decoding features\r
-// JPM  09/14/2018  Improve the DWARF parsing information\r
+// JPM  Sept./2018  Added LEB128 decoding features, and improve the DWARF parsing information\r
 //\r
 \r
 // To Do\r
@@ -284,7 +283,7 @@ void DWARFManager_InitDMI(void)
        FILE *SrcFile;\r
        size_t i, j, k;\r
        char *return_string;\r
-       char *Ptr;\r
+       char *Ptr, *Ptr1;\r
 \r
        // Initialisation for the Compilation Units table\r
        NbCU = 0;\r
@@ -419,6 +418,21 @@ void DWARFManager_InitDMI(void)
                                                                Ptr++;\r
                                                        }\r
 \r
+                                                       // Directory path clean-up\r
+#if defined(_WIN32)\r
+                                                       while ((Ptr1 = Ptr = strstr(PtrCU[NbCU].PtrFullFilename, "\\..\\")))\r
+#else\r
+                                                       while ((Ptr1 = Ptr = strstr(PtrCU[NbCU].PtrFullFilename, "/../")))\r
+#endif\r
+                                                       {\r
+#if defined(_WIN32)\r
+                                                               while (*--Ptr1 != '\\');\r
+#else\r
+                                                               while (*--Ptr1 != '/');\r
+#endif\r
+                                                               strcpy((Ptr1 + 1), (Ptr + 4));\r
+                                                       }\r
+\r
                                                        // Read the file as text\r
 #ifndef __CYGWIN__\r
                                                        if (!fopen_s(&SrcFile, PtrCU[NbCU].PtrFullFilename, "rt"))\r
@@ -1763,3 +1777,17 @@ char *DWARFManager_GetLineSrcFromNumLineBaseAdr(size_t Adr, size_t NumLine)
        return NULL;\r
 }\r
 \r
+\r
+// Get number of source code filenames\r
+size_t DWARFManager_GetNbFullSourceFilename(void)\r
+{\r
+       return NbCU;\r
+}\r
+\r
+\r
+// Get source code filename based on index\r
+char *DWARFManager_GetNumFullSourceFilename(size_t Index)\r
+{\r
+       return (PtrCU[Index].PtrFullFilename);\r
+}\r
+\r