Thread overview
[Issue 22081] DWARF v5 support is utterly broken - 'illegal instruction' when throwing exceptions
Jun 24, 2021
Dlang Bot
Jun 24, 2021
Dlang Bot
Jul 24, 2021
Dlang Bot
June 24, 2021
https://issues.dlang.org/show_bug.cgi?id=22081

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #1 from Dlang Bot <dlang-bot@dlang.rocks> ---
@kinke created dlang/druntime pull request #3502 "Fix Issue 22081 - Utterly broken DWARF v5 support" fixing this issue:

- 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.

  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/3502

--
June 24, 2021
https://issues.dlang.org/show_bug.cgi?id=22081

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/druntime pull request #3502 "[stable] Fix Issue 22081 - Utterly broken DWARF v5 support" was merged into stable:

- 5589d61648e9ee1ece36437dfbcaf24651a79f36 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/3502

--
July 24, 2021
https://issues.dlang.org/show_bug.cgi?id=22081

--- Comment #3 from Dlang Bot <dlang-bot@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

--