-
Couldn't load subscription status.
- Fork 13.9k
[experimental] shorten backtraces using debuginfo #134831
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
|
@bors try |
[experimental] shorten backtraces using debuginfo cc rust-lang/compiler-team#818 r? `@ghost` `@rustbot` label S-experimental try-job: aarch64-apple
|
@bors delegate+ (for try jobs) |
This comment has been minimized.
This comment has been minimized.
|
i think rustc_middle is going to fail to compile, so @bors cancel try |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@bors try |
[experimental] shorten backtraces using debuginfo cc rust-lang/compiler-team#818 r? `@ghost` `@rustbot` label S-experimental try-job: aarch64-apple
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
💔 Test failed - checks-actions |
|
@bors try |
[experimental] shorten backtraces using debuginfo cc rust-lang/compiler-team#818 r? `@ghost` `@rustbot` label S-experimental try-job: aarch64-apple
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
💔 Test failed - checks-actions |
|
☔ The latest upstream changes (presumably #135053) made this pull request unmergeable. Please resolve the merge conflicts. |
- give an error when `#[rustc_start/end_short_backtrace]` is used with `#[inline]` - update `short_ice-remove-middle-frames` to use the new attribute so that it's tested - don't ICE when debug logging
Often, consumers of a DWARF file will want to know if a given function has an attribute, either directly or indirectly. Currently, finding that information is tedious and prone to error. Add a helper function in gimli to make this easier. This does not attempt to have the maximum possible performance; consumers who care about that can still implement the logic themselves. In particular, the caches are recalculated each time `shared_attrs` is called, introducing an allocation. The logic works roughly as follows (inspired by [addr2line::Function::parse_children](https://github.com/gimli-rs/addr2line/blob/28ba2d45f2d22134915f55b46ddd6a039559366b/src/function.rs#L278)): - Create a cache of all DWARF units known to the `UnitRef` - Given an entry offset, iterate over all its attributes and pass them to a callback chosen by the caller. - For each indirect attribute, such as `DW_AT_abstract_origin`, follow the pointer to the abstract source and do the same thing again there. I have tested this downstream (see [rust-lang/rust#134831](rust-lang/rust#134831)), but I have not yet added unit tests. Let me know how you would like this to be tested.
|
i won't be working on this for a while |
cc rust-lang/compiler-team#818
r? @ghost
@rustbot label S-experimental
try-job: aarch64-apple