Skip to content
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

Merged
merged 1 commit into from
May 4, 2017

Conversation

ibuclaw
Copy link
Member

@ibuclaw ibuclaw commented Jun 24, 2015

This makes it so that -gc on Posix systems is identical to -g

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

@ibuclaw
Copy link
Member Author

ibuclaw commented Jun 24, 2015

Also, the final nail in the coffin for dlang/dlang.org#1022

@WalterBright
Copy link
Member

I'm a bit nervous about this. Have all the relevant gdb's been updated?

@ibuclaw
Copy link
Member Author

ibuclaw commented Jun 24, 2015

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:

  • No demangling (even if gdb is able to demangle the symbols!)
  • No support for representing non-PODs in debug

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.

@ibuclaw
Copy link
Member Author

ibuclaw commented Jun 24, 2015

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.

@ibuclaw
Copy link
Member Author

ibuclaw commented Aug 18, 2015

DMD 2.068 is out, and people who still use -gc are suffering the consequences.

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

@ibuclaw
Copy link
Member Author

ibuclaw commented Aug 18, 2015

@MartinNowak - I had expected this to land before release. The documentation has been updated, but not the code!

@John-Colvin
Copy link
Contributor

ping, -gc is still tripping people up.

@ibuclaw
Copy link
Member Author

ibuclaw commented Jan 24, 2016

Needs rebasing. @WalterBright are you any closer in agreeing?

@MartinNowak
Copy link
Member

Needs rebasing. @WalterBright are you any closer in agreeing?

Let's do it, but I'd rather deprecate the -gc switch than to make it silently do nothing.

@ibuclaw
Copy link
Member Author

ibuclaw commented Feb 13, 2016

@MartinNowak - rebased. However I've removed all backend changes, and just simply deprecating -gc.

@ibuclaw
Copy link
Member Author

ibuclaw commented May 5, 2016

@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;
Copy link
Member

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.

@WalterBright
Copy link
Member

Make the requested change and rebase, and let me know, and I'll pull it.

@ibuclaw
Copy link
Member Author

ibuclaw commented Apr 6, 2017

Will rebase a little later.

@ibuclaw
Copy link
Member Author

ibuclaw commented Apr 6, 2017

Rebased.

@WalterBright
Copy link
Member

Looks like it needs a little more work to pass.

@ibuclaw
Copy link
Member Author

ibuclaw commented Apr 6, 2017

Looks like it needs a little more work to pass.

Those blasted const ref parameters not accepting rvalues.

@dlang-bot dlang-bot merged commit 48f45c1 into dlang:master May 4, 2017
@John-Colvin
Copy link
Contributor

hooray :)

@ibuclaw ibuclaw deleted the nogcposix branch May 4, 2017 19:26
Geod24 added a commit to Geod24/dmd that referenced this pull request Sep 13, 2018
'-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...
Geod24 added a commit to Geod24/dmd that referenced this pull request Sep 14, 2018
'-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...
Geod24 added a commit to Geod24/dmd that referenced this pull request Sep 14, 2018
'-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...
Geod24 added a commit to Geod24/dmd that referenced this pull request Sep 14, 2018
'-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...
Geod24 added a commit to Geod24/dmd that referenced this pull request Sep 14, 2018
'-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...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants