Setup the code memory range in case of the DWARF structures doesn't have it
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DWARFManager.cpp
index 9c497f4..4ff8abb 100644 (file)
@@ -14,6 +14,7 @@
 \r
 // To Do\r
 // To use pointers instead of arrays usage\r
+// To keep sources text file intact wihtout QT/HTML transformation\r
 // \r
 \r
 \r
@@ -1126,6 +1127,14 @@ void DWARFManager_InitDMI(void)
                                                {\r
                                                        PtrCU[NbCU].PtrLinesSrc[i].PtrLineSrc = PtrCU[NbCU].PtrLinesLoadSrc[PtrCU[NbCU].PtrLinesSrc[i].NumLineSrc - 1];\r
                                                }\r
+\r
+                                               // Setup memory range for the code if CU doesn't have already this information\r
+                                               // It is taken from the used lines structure\r
+                                               if (!PtrCU[NbCU].LowPC && (!PtrCU[NbCU].HighPC || (PtrCU[NbCU].HighPC == ~0)))\r
+                                               {\r
+                                                       PtrCU[NbCU].LowPC = PtrCU[NbCU].PtrLinesSrc[0].StartPC;\r
+                                                       PtrCU[NbCU].HighPC = PtrCU[NbCU].PtrLinesSrc[PtrCU[NbCU].NbLinesSrc - 1].StartPC;\r
+                                               }\r
                                        }\r
                                }\r
 \r
@@ -1789,6 +1798,15 @@ size_t DWARFManager_GetNumLineFromAdr(size_t Adr, size_t Tag)
 #endif\r
                                }\r
                        }\r
+\r
+                       // Check if a used line is found with the address\r
+                       for (size_t j = 0; j < PtrCU[i].NbLinesSrc; j++)\r
+                       {\r
+                               if (PtrCU[i].PtrLinesSrc[j].StartPC == Adr)\r
+                               {\r
+                                       return PtrCU[i].PtrLinesSrc[j].NumLineSrc;\r
+                               }\r
+                       }\r
                }\r
        }\r
 \r