-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
debuginfo: Don't emit DW_LANG_RUST unless it's explicitly demanded #33097
Conversation
r? @Aatch (rust_highfive has picked a reviewer for you, use r? to override) |
If 0x9000 worked but the new value does not, then how about just reverting the patch that switched the value? I've already made my gdb work with both values. Setting it to 0 means I'll have to do producer sniffing to properly understand that the CU is Rust, which is pretty ugly. |
Unfortunately, newer versions of LLDB don't work with But let me double check that... |
OK, I just tried using |
📌 Commit e8828e1 has been approved by |
💡 This pull request was already approved, no need to approve it again.
|
📌 Commit e8828e1 has been approved by |
Interesting, cc @Manishearth, it appears that if you edit a comment (I edited "stake" to "sake" in the above comment) that bors will receive two notifications and attempt to consider them both as approvals |
Thanks for checking @michaelwoerister |
What was GDB's problem with DW_LANG_C_PLUS_PLUS ? |
Can we try #33062 (comment) and the other solutions in that thread before landing? |
@Manishearth It would be easy enough to make a pull request to LLDB that makes the change that @jasonmolenda suggests. However, that doesn't solve the problem that the current version of LLDB will not be usable with binaries that we produce. |
@vadimcn With |
Yeah @michaelwoerister I don't think there's any way to handle this correctly for both lldb and gdb today (with the binaries that exist in distributions). I don't understand what you mean when you say that the string (I think I'm just saying things that everyone here already knows - sorry if I'm just adding noise to this.) |
For reasons unknown to me, gdb tries to demangle field names; tuple fields are emitted as |
⌛ Testing commit e8828e1 with merge 1b09c1b... |
💔 Test failed - auto-win-msvc-64-opt-mir |
@bors: retry On Fri, Apr 22, 2016 at 8:29 AM, bors notifications@github.com wrote:
|
⌛ Testing commit e8828e1 with merge 4cf098b... |
💔 Test failed - auto-linux-64-debug-opt |
Buildbot tripped LLVM assertion checking for language tag.
|
Hm. From
|
We are emitting |
OK, so since this doesn't really work the way I expected and an LLDB patch restoring the old behavior has landed, I'm going to close this PR. |
So the fix will be in LLDB 3.9? I wonder if we should reconsider this PR or something like it... How about a "debugger-tuning" switch, like clang has? |
I cherry-picked the change on to the swift 3.0 branch for lldb, and it is included in the Xcode 8.0 preview release to apple developers that went public today. |
Awesome, thanks @jasonmolenda! |
Verified that lldb-360.1.25 (Xcode8) resolves this issue. Thanks @jasonmolenda! |
It turns out that LLDB can't handle DW_LANG_RUST and that GDB has problems with DW_LANG_C_PLUS_PLUS. Setting the language to
0x0
is the only value that will make both debuggers happy enough. I want proper debuginfo:(
This will hopefully take care of #33062 and #32520.
Heads up, @tromey! You'll still want the compiler to emit DW_LANG_RUST as the language, so you'll have to pass
-Z rust-debuginfo
to it.