diff --git a/Cargo.toml b/Cargo.toml index 4bab46a451ad6a5eeacaea03c0fe26e66caaf35c..ed742084bca8474d5e5e09579c5eb961fd85d647 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,9 +9,9 @@ edition = "2018" anyhow = "1.0" serde = { version = "1", features = ["derive"] } serde_json = "1.0" -gimli = "0.19" +gimli = "0.27" fallible-iterator = "0.2" memmap = "0.7" -object = { version = "0.12", features = [ "std", "compression" ] } +object = { version = "0.30", features = [ "std", "compression" ] } typed-arena = "2" structopt = "0.3" diff --git a/src/main.rs b/src/main.rs index b370e4e6222d5b6e60b3543ada9d57018581d770..e89c15765d5692edb326d1b0a7be3f4cbc0fd35c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,7 +2,7 @@ use anyhow::{anyhow, Error, Result}; use fallible_iterator::{convert, FallibleIterator}; use gimli::{AttributeValue, Endianity, Reader}; -use object::Object; +use object::{Object, ObjectSection}; use serde::ser::SerializeMap; use serde::{Serialize, Serializer}; use std::borrow::{Borrow, Cow}; @@ -26,7 +26,8 @@ fn list_file<E: Endianity>(file: &object::File, endian: E) -> Result<Vec<Unit>> 'a: 'file, { let data = file - .section_data_by_name(S::section_name()) + .section_by_name(S::section_name()) + .and_then(|section| section.uncompressed_data().ok()) .unwrap_or(Cow::Borrowed(&[])); let data_ref = (*arena.alloc(data)).borrow(); S::from(gimli::EndianSlice::new(data_ref, endian))