Skip to content

Commit 8ece21b

Browse files
author
Kai Luo
committed
Fix build errors
1 parent 26d171e commit 8ece21b

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

src/symbolize/gimli.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ cfg_if::cfg_if! {
204204
use self::macho::{handle_split_dwarf, Object};
205205
} else if #[cfg(target_os = "aix")] {
206206
mod xcoff;
207-
use self::xcoff::Object;
207+
use self::xcoff::{handle_split_dwarf, Object};
208208
} else {
209209
mod elf;
210210
use self::elf::{handle_split_dwarf, Object};
@@ -435,7 +435,7 @@ pub unsafe fn resolve(what: ResolveWhat<'_>, cb: &mut dyn FnMut(&super::Symbol))
435435
None => return,
436436
};
437437
let mut any_frames = false;
438-
if let Ok(mut frames) = cx.dwarf.find_frames(addr as u64).skip_all_loads() {
438+
if let Ok(mut frames) = cx.find_frames(stash, addr as u64) {
439439
while let Ok(Some(frame)) = frames.next() {
440440
any_frames = true;
441441
let name = match frame.function {
@@ -451,7 +451,7 @@ pub unsafe fn resolve(what: ResolveWhat<'_>, cb: &mut dyn FnMut(&super::Symbol))
451451
}
452452
if !any_frames {
453453
if let Some((object_cx, object_addr)) = cx.object.search_object_map(addr as u64) {
454-
if let Ok(mut frames) = object_cx.dwarf.find_frames(object_addr).skip_all_loads() {
454+
if let Ok(mut frames) = object_cx.find_frames(stash, object_addr) {
455455
while let Ok(Some(frame)) = frames.next() {
456456
any_frames = true;
457457
call(Symbol::Frame {

src/symbolize/gimli/xcoff.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use super::mystd::ffi::{OsStr, OsString};
22
use super::mystd::os::unix::ffi::OsStrExt;
33
use super::mystd::str;
4-
use super::{Context, Mapping, Path, Stash, Vec};
4+
use super::{gimli, Context, Endian, EndianSlice, Mapping, Path, Stash, Vec};
5+
use alloc::sync::Arc;
56
use core::ops::Deref;
67
use object::read::archive::ArchiveFile;
78
use object::read::xcoff::{FileHeader, SectionHeader, XcoffFile, XcoffSymbol};
@@ -20,7 +21,7 @@ impl Mapping {
2021
let map = super::mmap(path)?;
2122
Mapping::mk(map, |data, stash| {
2223
if member_name.is_empty() {
23-
Context::new(stash, Object::parse(data)?, None)
24+
Context::new(stash, Object::parse(data)?, None, None)
2425
} else {
2526
let archive = ArchiveFile::parse(data).ok()?;
2627
for member in archive.members() {
@@ -29,7 +30,7 @@ impl Mapping {
2930
if name == member_name {
3031
let member_data = member.data(data).ok()?;
3132
if let Some(obj) = Object::parse(member_data) {
32-
return Context::new(stash, obj, None);
33+
return Context::new(stash, obj, None, None);
3334
}
3435
}
3536
}
@@ -164,3 +165,11 @@ impl<'a> Object<'a> {
164165
None
165166
}
166167
}
168+
169+
pub(super) fn handle_split_dwarf<'data>(
170+
_package: Option<&gimli::DwarfPackage<EndianSlice<'data, Endian>>>,
171+
_stash: &'data Stash,
172+
_load: addr2line::SplitDwarfLoad<EndianSlice<'data, Endian>>,
173+
) -> Option<Arc<gimli::Dwarf<EndianSlice<'data, Endian>>>> {
174+
None
175+
}

0 commit comments

Comments
 (0)