From 0536c3ba6b5abefdb41f1af871bd7fbe4fd39712 Mon Sep 17 00:00:00 2001 From: Jean-Paul Mari Date: Tue, 23 Oct 2018 04:19:49 -0400 Subject: [PATCH] Setup the code memory range in case of the DWARF structures doesn't have it --- src/debugger/DWARFManager.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/debugger/DWARFManager.cpp b/src/debugger/DWARFManager.cpp index 9c497f4..4ff8abb 100644 --- a/src/debugger/DWARFManager.cpp +++ b/src/debugger/DWARFManager.cpp @@ -14,6 +14,7 @@ // To Do // To use pointers instead of arrays usage +// To keep sources text file intact wihtout QT/HTML transformation // @@ -1126,6 +1127,14 @@ void DWARFManager_InitDMI(void) { PtrCU[NbCU].PtrLinesSrc[i].PtrLineSrc = PtrCU[NbCU].PtrLinesLoadSrc[PtrCU[NbCU].PtrLinesSrc[i].NumLineSrc - 1]; } + + // Setup memory range for the code if CU doesn't have already this information + // It is taken from the used lines structure + if (!PtrCU[NbCU].LowPC && (!PtrCU[NbCU].HighPC || (PtrCU[NbCU].HighPC == ~0))) + { + PtrCU[NbCU].LowPC = PtrCU[NbCU].PtrLinesSrc[0].StartPC; + PtrCU[NbCU].HighPC = PtrCU[NbCU].PtrLinesSrc[PtrCU[NbCU].NbLinesSrc - 1].StartPC; + } } } @@ -1789,6 +1798,15 @@ size_t DWARFManager_GetNumLineFromAdr(size_t Adr, size_t Tag) #endif } } + + // Check if a used line is found with the address + for (size_t j = 0; j < PtrCU[i].NbLinesSrc; j++) + { + if (PtrCU[i].PtrLinesSrc[j].StartPC == Adr) + { + return PtrCU[i].PtrLinesSrc[j].NumLineSrc; + } + } } } -- 2.20.1