Improve the DWARF source line number reporting
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / DWARFManager.cpp
index d8bdb9c..21febcb 100644 (file)
@@ -1879,9 +1879,16 @@ size_t DWARFManager_GetNumLineFromAdr(size_t Adr, size_t Tag)
                                        {\r
                                                for (size_t k = 0; k < PtrCU[i].PtrSubProgs[j].NbLinesSrc; k++)\r
                                                {\r
-                                                       if ((PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].StartPC == Adr) && (!Tag || (PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].Tag == Tag)))\r
+                                                       if (PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].StartPC <= Adr)\r
+                                                       {\r
+                                                               if ((PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].StartPC == Adr) && (!Tag || (PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].Tag == Tag)))\r
+                                                               {\r
+                                                                       return PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].NumLineSrc;\r
+                                                               }\r
+                                                       }\r
+                                                       else\r
                                                        {\r
-                                                               return PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].NumLineSrc;\r
+                                                               return PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k - 1].NumLineSrc;\r
                                                        }\r
                                                }\r
                                        }\r