-
Notifications
You must be signed in to change notification settings - Fork 379
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
Add bundled GDB pretty-printers #3045
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
,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.