Improve the DWARF source line number reporting
authorJean-Paul Mari <djipi.mari@gmail.com>
Sat, 17 Apr 2021 09:19:19 +0000 (05:19 -0400)
committerJean-Paul Mari <djipi.mari@gmail.com>
Sat, 17 Apr 2021 09:19:19 +0000 (05:19 -0400)
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