From 221c056f7daf2433d85b21835ec22537cd24c2ba Mon Sep 17 00:00:00 2001 From: Jean-Paul Mari Date: Sat, 17 Apr 2021 05:19:19 -0400 Subject: [PATCH] Improve the DWARF source line number reporting --- src/debugger/DWARFManager.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/debugger/DWARFManager.cpp b/src/debugger/DWARFManager.cpp index d8bdb9c..21febcb 100644 --- a/src/debugger/DWARFManager.cpp +++ b/src/debugger/DWARFManager.cpp @@ -1879,9 +1879,16 @@ size_t DWARFManager_GetNumLineFromAdr(size_t Adr, size_t Tag) { for (size_t k = 0; k < PtrCU[i].PtrSubProgs[j].NbLinesSrc; k++) { - if ((PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].StartPC == Adr) && (!Tag || (PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].Tag == Tag))) + if (PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].StartPC <= Adr) + { + if ((PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].StartPC == Adr) && (!Tag || (PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].Tag == Tag))) + { + return PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].NumLineSrc; + } + } + else { - return PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k].NumLineSrc; + return PtrCU[i].PtrSubProgs[j].PtrLinesSrc[k - 1].NumLineSrc; } } } -- 2.20.1