diff --git a/Cargo.toml b/Cargo.toml index 5d0108724..7870f4ed0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,10 +35,10 @@ cpp_demangle = { default-features = false, version = "0.3.0", optional = true } # Optional dependencies enabled through the `gimli-symbolize` feature, do not # use these features directly. -addr2line = { version = "0.13.0", optional = true, default-features = false } +addr2line = { version = "0.14.0", optional = true, default-features = false } miniz_oxide = { version = "0.4.0", optional = true, default-features = false } [dependencies.object] -version = "0.21" +version = "0.22" optional = true default-features = false features = ['read_core', 'elf', 'macho', 'pe', 'unaligned'] diff --git a/crates/as-if-std/Cargo.toml b/crates/as-if-std/Cargo.toml index c374e75d2..dbf6856b5 100644 --- a/crates/as-if-std/Cargo.toml +++ b/crates/as-if-std/Cargo.toml @@ -15,11 +15,11 @@ bench = false cfg-if = "1.0" rustc-demangle = "0.1.4" libc = { version = "0.2.45", default-features = false } -addr2line = { version = "0.13.0", default-features = false } +addr2line = { version = "0.14.0", default-features = false } miniz_oxide = { version = "0.4.0", default-features = false } [dependencies.object] -version = "0.21" +version = "0.22" default-features = false features = ['read_core', 'elf', 'macho', 'pe', 'unaligned'] diff --git a/src/symbolize/gimli/coff.rs b/src/symbolize/gimli/coff.rs index 5d6c8fae9..7872520e9 100644 --- a/src/symbolize/gimli/coff.rs +++ b/src/symbolize/gimli/coff.rs @@ -52,7 +52,7 @@ impl<'a> Object<'a> { let mut i = 0; let len = symtab.len(); while i < len { - let sym = symtab.symbol(i)?; + let sym = symtab.symbol(i).ok()?; i += 1 + sym.number_of_aux_symbols as usize; let section_number = sym.section_number.get(LE); if sym.derived_type() != object::pe::IMAGE_SYM_DTYPE_FUNCTION || section_number == 0 { diff --git a/src/symbolize/gimli/macho.rs b/src/symbolize/gimli/macho.rs index 6616f272e..5d65fe522 100644 --- a/src/symbolize/gimli/macho.rs +++ b/src/symbolize/gimli/macho.rs @@ -160,7 +160,7 @@ impl<'a> Object<'a> { .iter() .filter_map(|nlist: &MachNlist| { let name = nlist.name(endian, symbols.strings()).ok()?; - if name.len() > 0 && !nlist.is_undefined() { + if name.len() > 0 && nlist.is_definition() { Some((name, u64::from(nlist.n_value(endian)))) } else { None