From: Jean-Paul Mari Date: Tue, 23 Oct 2018 08:19:49 +0000 (-0400) Subject: Setup the code memory range in case of the DWARF structures doesn't have it X-Git-Tag: v2.1.3-R4~17 X-Git-Url: http://git.hcoop.net/clinton/Virtual-Jaguar-Rx.git/commitdiff_plain/0536c3ba6b5abefdb41f1af871bd7fbe4fd39712 Setup the code memory range in case of the DWARF structures doesn't have it --- 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; + } + } } }