[Issue 22081] DWARF v5 support is utterly broken - 'illegal instruction' when throwing exceptions

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Jul 24 17:57:11 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=22081

--- Comment #3 from Dlang Bot <dlang-bot at dlang.rocks> ---
dlang/druntime pull request #3515 "merge stable" was merged into master:

- 414316556aa95fa5b3b03a558479ecd4ccacb86e by Martin Kinkelin:
  Fix Issue 22081 - Utterly broken DWARF v5 support

  This has actually been tested to work with LDC, fixing the `assert(0)`
  and **numerous** terrible issues of #3189 after looking at the DWARF v5
  spec (section 6.2.4).

  LLVM apparently puts all directory/file name strings into the new
  .debug_line_str section (DW_FORM_line_strp form code, one of various
  encoding options); reading the strings from there would require mmapping
  that section too, not just the .debug_line one.

  So at least with LLVM, *all* source file paths (of according DWARF v5
  line-number programs) in the exception backtrace string currently show
  up as `<unknown dir>/<unknown file>`.

- 56bfaaf03c9ff8ea3a1c9bcf41259c941cccef26 by Martin Kinkelin:
  Fix Issue 22081 - Utterly broken DWARF v5 support

  This has actually been tested to work with LDC, fixing the `assert(0)`
  and **numerous** terrible issues of #3189 after looking at the DWARF v5
  spec (section 6.2.4).

  LLVM apparently puts all directory/file name strings into the new
  .debug_line_str section (DW_FORM_line_strp form code, one of various
  encoding options); reading the strings from there would require mmapping
  that section too, not just the .debug_line one.

  So at least with LLVM, *all* source file paths (of according DWARF v5
  line-number programs) in the exception backtrace string currently show
  up as `<unknown dir>/<unknown file>`.

https://github.com/dlang/druntime/pull/3515

--


More information about the Digitalmars-d-bugs mailing list