Debuginfo revamp#5148
Conversation
|
nice to see progress in this area! |
|
\o/ |
|
The test failure was because different versions of gdb print structs differently, i.e. the old version (6.3) that ships on OS X prints a tuple like whereas a more recent version prints on one line like |
This is due to the way different versions of gdb print out structs: older versions have them always spread out with fields on different lines, while newer versions will compactly print them on one line. This makes it hard for the output checker to verify the expected output.
|
That may be due to differences in gdb pretty-printing defaults. Does |set print pretty false| make a difference in the old gdb's output? |
|
The command is |
|
The test failure is due to gdb requiring administrator authentication on the mac build server. If that can somehow be fixed I bet the tests will finally pass and these changes can be landed. |
|
We can probably arrange for the bots to run with the correct privileges to run gdb, but developers will still end up running into this issue when running the test suite. Is it ok to just not run debuginfo tests on OS X? |
|
I guess that will work, but maybe you can re-enable it with a configure flag. The test suite wiki page should also be updated with details as to why the tests are disabled by default and how to enable them. I found that the command |
|
Continued at #5319 |
…nv-unwrap, r=flip1995 Add `option-env-unwrap` lint changelog: Add `option-env-unwrap` lint Fixes rust-lang#5147
Use shared libc helpers in tests
This is a rewrite of
create_tyin debuginfo along with some other functions to modernize it with the current state of the language. The major change is that it no longer takes in anast::Tyand instead only works with aty::t, this is becausety::tseems to offer a more complete representation of the rust type system, and most types (like pointers and vecs) do not really need the span info that anast::Typrovides.What works right now are basic types, tuples and structs. Box, owning pointers, and vecs are not supported even though the code is there, apparently the implementation of these types changed since the debuginfo code was last updated. Also not yet implemented are strings, enums, traits, barefns, and closures, and will cause an ICE if you try to generate debuginfo for them.
This makes progress towards #2012 (or completes it, depending on the criteria).