diff options
Diffstat (limited to 'vendor/backtrace/src/symbolize/gimli/libs_haiku.rs')
-rw-r--r-- | vendor/backtrace/src/symbolize/gimli/libs_haiku.rs | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/vendor/backtrace/src/symbolize/gimli/libs_haiku.rs b/vendor/backtrace/src/symbolize/gimli/libs_haiku.rs deleted file mode 100644 index 87e023e..0000000 --- a/vendor/backtrace/src/symbolize/gimli/libs_haiku.rs +++ /dev/null @@ -1,48 +0,0 @@ -// Haiku implements the image_info struct and the get_next_image_info() -// functions to iterate through the loaded executable images. The -// image_info struct contains a pointer to the start of the .text -// section within the virtual address space, as well as the size of -// that section. All the read-only segments of the ELF-binary are in -// that part of the address space. - -use super::mystd::borrow::ToOwned; -use super::mystd::ffi::{CStr, OsStr}; -use super::mystd::mem::MaybeUninit; -use super::mystd::os::unix::prelude::*; -use super::{Library, LibrarySegment, Vec}; - -pub(super) fn native_libraries() -> Vec<Library> { - let mut libraries: Vec<Library> = Vec::new(); - - unsafe { - let mut info = MaybeUninit::<libc::image_info>::zeroed(); - let mut cookie: i32 = 0; - // Load the first image to get a valid info struct - let mut status = - libc::get_next_image_info(libc::B_CURRENT_TEAM, &mut cookie, info.as_mut_ptr()); - if status != libc::B_OK { - return libraries; - } - let mut info = info.assume_init(); - - while status == libc::B_OK { - let mut segments = Vec::new(); - segments.push(LibrarySegment { - stated_virtual_memory_address: 0, - len: info.text_size as usize, - }); - - let bytes = CStr::from_ptr(info.name.as_ptr()).to_bytes(); - let name = OsStr::from_bytes(bytes).to_owned(); - libraries.push(Library { - name: name, - segments: segments, - bias: info.text as usize, - }); - - status = libc::get_next_image_info(libc::B_CURRENT_TEAM, &mut cookie, &mut info); - } - } - - libraries -} |