-
Couldn't load subscription status.
- Fork 384
Add bundled GDB pretty-printers #3045
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
Conversation
d399d31 to
e4f55be
Compare
44a6a25 to
846129c
Compare
04a0f5b to
58223e5
Compare
See rust-lang/rust#54004. If there's a bug, I definitely want to know about it -- but I suspect instead what is happening is that the new debuginfo is confusing the pretty-printers. gdb 8.2 understands the new DWARF and consequently I disabled some of the default pretty-printers in rust-lang/rust#55767. |
|
... also I wonder if I need to fix https://sourceware.org/bugzilla/show_bug.cgi?id=20163, to allow varobjs to work better with rust enums. |
|
@tromey Actually, I meant that the stable Rust toolchain has some problems. I'm aware of your progress on DWARF generation and it looks great on gdb 8.2 with Rust nightly. Consider such code: gdb 8.2 (without any pretty-printers) prints this enum correctly: However, CLion's output is not as good: |
Assuming CLion is using MI varobjs (I didn't look so I don't know...) then it is that gdb bug I mentioned earlier -- basically varobj has to be taught a bit about discriminated unions. |
|
@tromey OK, I will be watching this gdb bug, thanks! |
|
@ortem Could you rebase onto master? |
0a362a3 to
ca7266e
Compare
ca7266e to
117f2db
Compare
5ea24e8 to
0c908ee
Compare
da9fd88 to
3fb3fc4
Compare
|
bors try |
tryBuild failed |
58faaa5 to
e8d79ec
Compare
e8d79ec to
f3872de
Compare
f3872de to
c257c9b
Compare
|
bors r+ |
3045: Add bundled GDB pretty-printers r=ortem a=ortem Add bundled GDB pretty-printers. Now it supports: * struct, tuple * `str`, `String`, `OsString` (with UTF-8 support) * `Vec`, `VecDeque` * `BTreeSet`, `BTreeMap` (thanks, @tromey!) * `Rc`, `Arc` * `Cell`, `Ref`, `RefMut`, `RefCell` Fixes #3357 There are some problems with enums because of wrong DWARF codes in rustc's codegen (it affects default rustc pretty-printers too); I'm going to fix it after the next rustc release. <img width="229" alt="screenshot 2018-11-19 at 11 54 56" src="https://user-images.githubusercontent.com/4854600/48693722-7524fb80-ebeb-11e8-84f7-7fa7fee1f676.png"> <img width="382" alt="screenshot 2018-11-19 at 11 54 16" src="https://user-images.githubusercontent.com/4854600/48693735-7f46fa00-ebeb-11e8-8a04-b24b7f29dd85.png"> <img width="240" alt="screenshot 2018-11-27 at 19 04 44" src="https://user-images.githubusercontent.com/4854600/49094466-65ef1f00-f277-11e8-9c4b-c094ab4bcc0b.png"> <img width="247" alt="screenshot 2018-11-27 at 19 00 47" src="https://user-images.githubusercontent.com/4854600/49094327-101a7700-f277-11e8-9f11-862e57d1a525.png"> <img width="495" alt="screenshot 2018-11-29 at 18 56 55" src="https://user-images.githubusercontent.com/4854600/49234170-9914e800-f408-11e8-95e4-bce19608fed2.png"> Co-authored-by: ortem <[email protected]>
Build failed |
|
bors retry |
3045: Add bundled GDB pretty-printers r=ortem a=ortem Add bundled GDB pretty-printers. Now it supports: * struct, tuple * `str`, `String`, `OsString` (with UTF-8 support) * `Vec`, `VecDeque` * `BTreeSet`, `BTreeMap` (thanks, @tromey!) * `Rc`, `Arc` * `Cell`, `Ref`, `RefMut`, `RefCell` Fixes #3357 There are some problems with enums because of wrong DWARF codes in rustc's codegen (it affects default rustc pretty-printers too); I'm going to fix it after the next rustc release. <img width="229" alt="screenshot 2018-11-19 at 11 54 56" src="https://user-images.githubusercontent.com/4854600/48693722-7524fb80-ebeb-11e8-84f7-7fa7fee1f676.png"> <img width="382" alt="screenshot 2018-11-19 at 11 54 16" src="https://user-images.githubusercontent.com/4854600/48693735-7f46fa00-ebeb-11e8-8a04-b24b7f29dd85.png"> <img width="240" alt="screenshot 2018-11-27 at 19 04 44" src="https://user-images.githubusercontent.com/4854600/49094466-65ef1f00-f277-11e8-9c4b-c094ab4bcc0b.png"> <img width="247" alt="screenshot 2018-11-27 at 19 00 47" src="https://user-images.githubusercontent.com/4854600/49094327-101a7700-f277-11e8-9f11-862e57d1a525.png"> <img width="495" alt="screenshot 2018-11-29 at 18 56 55" src="https://user-images.githubusercontent.com/4854600/49234170-9914e800-f408-11e8-95e4-bce19608fed2.png"> 3397: Fix Incorrect CachedValue use report on 2019.1 r=vlad20012 a=vlad20012 2019.1 platform brings dynamic analyzer of incorrect CachedValue usages, which generate crashes on EAPs. This case is false positive, but it's easy to "fix" it anyway, so let's do it. bors r+ 3398: RUN: Apply `Offline mode` option not only to `cargo build` but also to `cargo check` r=mchernyavsky a=mchernyavsky Co-authored-by: ortem <[email protected]> Co-authored-by: vlad20012 <[email protected]> Co-authored-by: mchernyavsky <[email protected]>
Build failed (retrying...) |
3045: Add bundled GDB pretty-printers r=ortem a=ortem Add bundled GDB pretty-printers. Now it supports: * struct, tuple * `str`, `String`, `OsString` (with UTF-8 support) * `Vec`, `VecDeque` * `BTreeSet`, `BTreeMap` (thanks, @tromey!) * `Rc`, `Arc` * `Cell`, `Ref`, `RefMut`, `RefCell` Fixes #3357 There are some problems with enums because of wrong DWARF codes in rustc's codegen (it affects default rustc pretty-printers too); I'm going to fix it after the next rustc release. <img width="229" alt="screenshot 2018-11-19 at 11 54 56" src="https://user-images.githubusercontent.com/4854600/48693722-7524fb80-ebeb-11e8-84f7-7fa7fee1f676.png"> <img width="382" alt="screenshot 2018-11-19 at 11 54 16" src="https://user-images.githubusercontent.com/4854600/48693735-7f46fa00-ebeb-11e8-8a04-b24b7f29dd85.png"> <img width="240" alt="screenshot 2018-11-27 at 19 04 44" src="https://user-images.githubusercontent.com/4854600/49094466-65ef1f00-f277-11e8-9c4b-c094ab4bcc0b.png"> <img width="247" alt="screenshot 2018-11-27 at 19 00 47" src="https://user-images.githubusercontent.com/4854600/49094327-101a7700-f277-11e8-9f11-862e57d1a525.png"> <img width="495" alt="screenshot 2018-11-29 at 18 56 55" src="https://user-images.githubusercontent.com/4854600/49234170-9914e800-f408-11e8-95e4-bce19608fed2.png"> 3398: RUN: Apply `Offline mode` option not only to `cargo build` but also to `cargo check` r=mchernyavsky a=mchernyavsky Co-authored-by: ortem <[email protected]> Co-authored-by: mchernyavsky <[email protected]>

Add bundled GDB pretty-printers.
Now it supports:
str,String,OsString(with UTF-8 support)Vec,VecDequeBTreeSet,BTreeMap(thanks, @tromey!)Rc,ArcCell,Ref,RefMut,RefCellFixes #3357
There are some problems with enums because of wrong DWARF codes in rustc's codegen (it affects default rustc pretty-printers too); I'm going to fix it after the next rustc release.