-
-
Notifications
You must be signed in to change notification settings - Fork 610
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
Merge DWARF symbol info into CVDWARF, don't set language as DW_LANG_C89 #4766
Conversation
|
Also, the final nail in the coffin for dlang/dlang.org#1022 |
|
I'm a bit nervous about this. Have all the relevant gdb's been updated? |
|
What do you mean by all relevant gdb's? If anything, not pretending to be C gives the best future compatibility with newer releases. But let's talk about backwards compatibility. GDB has been aware of DW_LANG_D since it was added to the DWARFv3 spec (this happened somewhere between 2003-2005), and I'd expect everyone to be using at least gdb version 7.0 by now (released in 2009). Even if people are using an older version of gdb, it still doesn't make sense to pretend to be C. You loose out on a few things, including:
Apart from the minimal level of D support gdb has in it's language hooks (printing D arrays, for instance), the bulk of functionality still goes through gdb's very well tested C/C++ support code. Overall, there's little that really changes either way. Improvements to DMD's debug generation has ensured that over the last few years. All that I'm effectively doing on the GDB side is giving the data you as a compiler provide more meaning to the user who's debugging the program. |
And I can't do this if you continue to give false information. |
|
DMD 2.068 is out, and people who still use |
|
@MartinNowak - I had expected this to land before release. The documentation has been updated, but not the code! |
|
ping, -gc is still tripping people up. |
|
Needs rebasing. @WalterBright are you any closer in agreeing? |
Let's do it, but I'd rather deprecate the |
|
@MartinNowak - rebased. However I've removed all backend changes, and just simply deprecating |
|
@WalterBright - you just mentioned supporting only the latest version. Does this apply to gdb? :-) |
src/mars.d
Outdated
| global.params.symdebug = 2; | ||
| { | ||
| deprecation(Loc(), "use -g instead of -gc"); | ||
| global.params.symdebug = 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While you're deprecating, it should still set it to 2. The deprecation message is enough.
|
Make the requested change and rebase, and let me know, and I'll pull it. |
|
Will rebase a little later. |
|
Rebased. |
|
Looks like it needs a little more work to pass. |
Those blasted |
|
hooray :) |
'-gc' was deprecated over a year ago, in PR dlang#4766 (released as part of DMD 2.075.0) As for '-gt', it was deprecated over 9 years ago according to the git history, sometime between DMD 0.050 and DMD 0.120...
'-gc' was deprecated over a year ago, in PR dlang#4766 (released as part of DMD 2.075.0) As for '-gt', it was turned into an error over 9 years ago according to the git history, sometime between DMD 0.050 and DMD 0.120...
'-gc' was deprecated over a year ago, in PR dlang#4766 (released as part of DMD 2.075.0) As for '-gt', it was deprecated over 9 years ago according to the git history, sometime between DMD 0.050 and DMD 0.120...
'-gc' was deprecated over a year ago, in PR dlang#4766 (released as part of DMD 2.075.0) As for '-gt', it was turned into an error over 9 years ago according to the git history, sometime between DMD 0.050 and DMD 0.120...
'-gc' was deprecated over a year ago, in PR dlang#4766 (released as part of DMD 2.075.0) As for '-gt', it was turned into an error over 9 years ago according to the git history, sometime between DMD 0.050 and DMD 0.120...
This makes it so that
-gcon Posix systems is identical to-gThis is a follow up to #4732 and #4734. I've come to the conclusion that toolchain support is now good enough that pretending to be C is actually more painful to end user debug experience vs. actually telling the debugger who we really are.