mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 10:16:06 +00:00
[DebugInfo] IntelJitEventListener follow up for "add SectionedAddress ..."
Following r354972 the Intel JIT Listener would not report line table information because the section indices did not match. There was a similar issue with the PerfJitEventListener. This change performs the section index lookup when building the object address used to query the line table information. Differential Revision: https://reviews.llvm.org/D59490 llvm-svn: 356895
This commit is contained in:
parent
3c488d7eb3
commit
bc92c8c863
@ -141,15 +141,25 @@ void IntelJITEventListener::notifyObjectLoaded(
|
||||
uint64_t Addr = *AddrOrErr;
|
||||
uint64_t Size = P.second;
|
||||
|
||||
auto SecOrErr = Sym.getSection();
|
||||
if (!SecOrErr) {
|
||||
// TODO: Actually report errors helpfully.
|
||||
consumeError(SecOrErr.takeError());
|
||||
continue;
|
||||
}
|
||||
object::section_iterator Sec = *SecOrErr;
|
||||
if (Sec == Obj.section_end())
|
||||
continue;
|
||||
uint64_t Index = Sec->getIndex();
|
||||
|
||||
// Record this address in a local vector
|
||||
Functions.push_back((void*)Addr);
|
||||
|
||||
// Build the function loaded notification message
|
||||
iJIT_Method_Load FunctionMessage =
|
||||
FunctionDescToIntelJITFormat(*Wrapper, Name->data(), Addr, Size);
|
||||
// TODO: it is neccessary to set proper SectionIndex here.
|
||||
// object::SectionedAddress::UndefSection works for only absolute addresses.
|
||||
DILineInfoTable Lines = Context->getLineInfoForAddressRange({Addr, object::SectionedAddress::UndefSection}, Size);
|
||||
DILineInfoTable Lines =
|
||||
Context->getLineInfoForAddressRange({Addr, Index}, Size);
|
||||
DILineInfoTable::iterator Begin = Lines.begin();
|
||||
DILineInfoTable::iterator End = Lines.end();
|
||||
for (DILineInfoTable::iterator It = Begin; It != End; ++It) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user