diff options
| author | Mohsen Zohrevandi <mohsen.zohrevandi@fortanix.com> | 2023-11-14 13:27:57 -0800 |
|---|---|---|
| committer | Mohsen Zohrevandi <mohsen.zohrevandi@fortanix.com> | 2023-11-14 13:27:57 -0800 |
| commit | ec8c3d9992661f078152b0e1f53b1a96fce090ca (patch) | |
| tree | 4a34be56c3a38b2362a047d85e1a9fcb8ccda70d /library/std/src/sys_common/backtrace.rs | |
| parent | 6e7ea03c268fea775b4b6b3edc49936272bd1d13 (diff) | |
| download | rust-ec8c3d9992661f078152b0e1f53b1a96fce090ca.tar.gz rust-ec8c3d9992661f078152b0e1f53b1a96fce090ca.zip | |
Move SGX-specific image base logic to sys_common
Diffstat (limited to 'library/std/src/sys_common/backtrace.rs')
| -rw-r--r-- | library/std/src/sys_common/backtrace.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/library/std/src/sys_common/backtrace.rs b/library/std/src/sys_common/backtrace.rs index e2acc6a2044..d680bd33279 100644 --- a/library/std/src/sys_common/backtrace.rs +++ b/library/std/src/sys_common/backtrace.rs @@ -64,11 +64,7 @@ unsafe fn _print_fmt(fmt: &mut fmt::Formatter<'_>, print_fmt: PrintFmt) -> fmt:: let mut first_omit = true; // Start immediately if we're not using a short backtrace. let mut start = print_fmt != PrintFmt::Short; - #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] - { - let image_base = crate::os::fortanix_sgx::mem::image_base(); - backtrace_rs::set_image_base(crate::ptr::from_exposed_addr_mut(image_base as _)); - } + set_image_base(); backtrace_rs::trace_unsynchronized(|frame| { if print_fmt == PrintFmt::Short && idx > MAX_NB_FRAMES { return false; @@ -218,3 +214,14 @@ pub fn output_filename( } fmt::Display::fmt(&file.display(), fmt) } + +#[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] +pub fn set_image_base() { + let image_base = crate::os::fortanix_sgx::mem::image_base(); + backtrace_rs::set_image_base(crate::ptr::from_exposed_addr_mut(image_base as _)); +} + +#[cfg(not(all(target_vendor = "fortanix", target_env = "sgx")))] +pub fn set_image_base() { + // nothing to do for platforms other than SGX +} |
