Skip to content

Commit 5617b46

Browse files
committed
Auto merge of #2629 - devnexen:apple_execinfo_upd, r=Amanieu
macOs update backtrace api.
2 parents e469fc2 + 6cce830 commit 5617b46

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

libc-test/build.rs

+3
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,9 @@ fn test_apple(target: &str) {
316316
// close calls the close_nocancel system call
317317
"close" => true,
318318

319+
// macOs 12 minimum
320+
"backtrace_async" => true,
321+
319322
_ => false,
320323
}
321324
});

libc-test/semver/apple.txt

+5
Original file line numberDiff line numberDiff line change
@@ -1628,6 +1628,10 @@ arc4random_uniform
16281628
arphdr
16291629
atof
16301630
backtrace
1631+
backtrace_from_fp
1632+
backtrace_image_offsets
1633+
backtrace_symbols
1634+
backtrace_symbols_fd
16311635
boolean_t
16321636
bpf_hdr
16331637
brk
@@ -1715,6 +1719,7 @@ if_freenameindex
17151719
if_msghdr
17161720
if_nameindex
17171721
ifaddrs
1722+
image_offset
17181723
in6_pktinfo
17191724
in_pktinfo
17201725
initgroups

src/unix/bsd/apple/mod.rs

+22
Original file line numberDiff line numberDiff line change
@@ -948,6 +948,11 @@ s! {
948948
pub ri_interval_max_phys_footprint: u64,
949949
pub ri_runnable_time: u64,
950950
}
951+
952+
pub struct image_offset {
953+
pub uuid: ::uuid_t,
954+
pub offset: u32,
955+
}
951956
}
952957

953958
s_no_extra_traits! {
@@ -4945,6 +4950,23 @@ extern "C" {
49454950
) -> kern_return_t;
49464951
pub fn __error() -> *mut ::c_int;
49474952
pub fn backtrace(buf: *mut *mut ::c_void, sz: ::c_int) -> ::c_int;
4953+
pub fn backtrace_symbols(addrs: *const *mut ::c_void, sz: ::c_int) -> *mut *mut ::c_char;
4954+
pub fn backtrace_symbols_fd(addrs: *const *mut ::c_void, sz: ::c_int, fd: ::c_int);
4955+
pub fn backtrace_from_fp(
4956+
startfp: *mut ::c_void,
4957+
array: *mut *mut ::c_void,
4958+
size: ::c_int,
4959+
) -> ::c_int;
4960+
pub fn backtrace_image_offsets(
4961+
array: *const *mut ::c_void,
4962+
image_offsets: *mut image_offset,
4963+
size: ::c_int,
4964+
);
4965+
pub fn backtrace_async(
4966+
array: *mut *mut ::c_void,
4967+
length: ::size_t,
4968+
task_id: *mut u32,
4969+
) -> ::size_t;
49484970
#[cfg_attr(
49494971
all(target_os = "macos", not(target_arch = "aarch64")),
49504972
link_name = "statfs$INODE64"

0 commit comments

Comments
 (0)