On Fri, 18 Nov 2022 16:06:38 GMT, Christian Hagedorn <chaged...@openjdk.org> 
wrote:

>> The DWARF debugging symbols emitted by Clang is different from what GCC is 
>> emitting. While GCC produces a complete `.debug_aranges` section (which is 
>> required in the DWARF parser), Clang does not. As a result, the DWARF parser 
>> cannot find the necessary information to proceed and create the line number 
>> information:
>> 
>> The `.debug_aranges` section contains address range to compilation unit 
>> offset mappings. The parsing algorithm can just walk through all these 
>> entries to find the correct address range that contains the library offset 
>> of the current pc. This gives us the compilation unit offset into the 
>> `.debug_info` section from where we can proceed to parse the line number 
>> information.
>> 
>> Without a complete `.debug_aranges` section, we fail with an assertion that 
>> we could not find the correct entry. Since 
>> [JDK-8293402](https://bugs.openjdk.org/browse/JDK-8293402), we will still 
>> get the complete stack trace at least. Nevertheless, we should still fix 
>> this assertion failure of course. But that would require a different parsing 
>> approach. We need to parse the entire `.debug_info` section instead to get 
>> to the correct compilation unit. This, however, would require a lot more 
>> work. 
>> 
>> I therefore suggest to disable DWARF parsing for Clang for now and file an 
>> RFE to support Clang in the future with a different parsing approach. I'm 
>> using the `__clang__` `ifdef` to bail out in `get_source_info()` and disable 
>> the `gtests`. I've noticed that we are currently running the `gtests` with 
>> `NOT PRODUCT` which I think is not necessary - the gtests should also work 
>> fine with product builds. I've corrected this as well but that could also be 
>> done separately.
>> 
>> Thanks,
>> Christian
>
> Christian Hagedorn has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Remove unused local variable

Looks good. If tests are green, fine for me. Thanks!

-------------

Marked as reviewed by stuefe (Reviewer).

PR: https://git.openjdk.org/jdk/pull/10287

Reply via email to