-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Supporting backtrace for x86_64-fortanix-unknown-sgx. #57441
Supporting backtrace for x86_64-fortanix-unknown-sgx. #57441
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
4d3d7e6
to
306ba49
Compare
@bors: r+ |
📌 Commit 306ba49c13898ac69ea561395ef4d0c21893cca0 has been approved by |
|
306ba49
to
4166a4e
Compare
@alexcrichton, |
@bors: r+ rollup |
📌 Commit 4166a4e has been approved by |
image-base could be used by crates like backtrace to providing to make symbol resolution easier.
@alexcrichton |
@bors: r+ rollup |
📌 Commit 2e4766c has been approved by |
⌛ Testing commit 2e4766c with merge 72b74a98fcef290b03dd1cea83b5448ddf3b5394... |
💔 Test failed - status-appveyor |
@bors retry |
…ix-unknown-sgx-backtrace-support, r=alexcrichton Supporting backtrace for x86_64-fortanix-unknown-sgx. # Overview Implementing following functions required by `libstd/sys_common` to support `backtrace`: ``` 1. unwind_backtrace 2. trace_fn 3. resolve_symname ``` # Description: The changes here are quite similar to the Cloudabi target `src/libstd/sys/cloudabi/backtrace.rs` The first 2 functions are implemented via calls to libunwind.a that is linked to the `x86_64-fortanix-unknown-sgx` (rust-lang#56979), we have not implemented functionality needed by `resolve_symname` (or `dladdr`) to reduce SGX TCB. Rather, we print the function address (relative to enclave image base) in `resolve_symname` which can be later translated to correct symbol name (say, via `addr2line`). # Note: For `x86_64-fortanix-unknown-sgx`, the `RUST_BACKTRACE` environment has to be set from within the program running in an enclave. cc: @jethrogb r? @alexcrichton
Rollup of 26 pull requests Successful merges: - #56425 (Redo the docs for Vec::set_len) - #56906 (Issue #56905) - #57042 (Don't call `FieldPlacement::count` when count is too large) - #57175 (Stabilize `let` bindings and destructuring in constants and const fn) - #57192 (Change std::error::Error trait documentation to talk about `source` instead of `cause`) - #57296 (Fixed the link to the ? operator) - #57368 (Use CMAKE_{C,CXX}_COMPILER_LAUNCHER for ccache) - #57400 (Rustdoc: update Source Serif Pro and replace Heuristica italic) - #57417 (rustdoc: use text-based doctest parsing if a macro is wrapping main) - #57433 (Add link destination for `read-ownership`) - #57434 (Remove `CrateNum::Invalid`.) - #57441 (Supporting backtrace for x86_64-fortanix-unknown-sgx.) - #57450 (actually take a slice in this example) - #57459 (Reference tracking issue for inherent associated types in diagnostic) - #57463 (docs: Fix some 'second-edition' links) - #57466 (Remove outdated comment) - #57493 (use structured suggestion when casting a reference) - #57498 (make note of one more normalization that Paths do) - #57499 (note that FromStr does not work for borrowed types) - #57505 (Remove submodule step from README) - #57510 (Add a profiles section to the manifest) - #57511 (Fix undefined behavior) - #57519 (Correct RELEASES.md for 1.32.0) - #57522 (don't unwrap unexpected tokens in `format!`) - #57530 (Fixing a typographical error.) - #57535 (Stabilise irrefutable if-let and while-let patterns) Failed merges: r? @ghost
Overview
Implementing following functions required by
libstd/sys_common
to supportbacktrace
:Description:
The changes here are quite similar to the Cloudabi target
src/libstd/sys/cloudabi/backtrace.rs
The first 2 functions are implemented via calls to libunwind.a that is linked to the
x86_64-fortanix-unknown-sgx
(#56979), we have not implemented functionality needed byresolve_symname
(ordladdr
) to reduce SGX TCB. Rather, we print the function address (relative to enclave image base) inresolve_symname
which can be later translated to correct symbol name (say, viaaddr2line
).Note:
For
x86_64-fortanix-unknown-sgx
, theRUST_BACKTRACE
environment has to be set from within the program running in an enclave.cc: @jethrogb
r? @alexcrichton