[llvm-dev] Collecting address ranges in DWARFUnit::collectAddressRanges.

George Rimar via llvm-dev
2017-11-15T15:53:08Z

?Hi !


I have a question about code used for collecting ranges. I was trying to fix
PR35199.

Its issue that it calls unreachable when calls DWARFObject::getFileName().

We do not implement this method in LLD and it fails.

Issue appears when we start to provide .debug_str

section to DWARF parser. And it is relative to following code (lines 335-339):


https://github.com/llvm-mirror/llvm/blob/master/lib/DebugInfo/DWARF/DWARFUnit.cpp#L335


Object I used for debugging parser is following:

t.ii:
int a;

clang++ -gsplit-dwarf -c t.ii -o t.o


When parser tries to read this object it attemps to extract address ranges from
dwo.

When we don't give it .debug_str it fails to extract dwo name, exits early
and "works" fine, but with

.debug_str provided it tries to take ranges from there, tries to get DWO name to
open it and fails.


Though I did not find why it tries to scan .dwo. I tried to comment these lines
(335-339) and no tests

were failing for me, at least I tried running tests from \llvm\test\DebugInfo
and

running DebugInfoDWARFTests. It seems to me these lines are either untested or
useless (?).


So my question is probably next: what is the case when we need to scan .dwo for
extracting ranges,

should not address data be accessible from main object always ?

I wonder if these lines really do useful job ??

Best regards,
George | Developer | Access Softek, Inc
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20171115/511c887a/attachment.html>