Skip to content

Commit 00575b1

Browse files
Print extab/extabindex symbol names in extab view
1 parent 416bda0 commit 00575b1

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

objdiff-core/src/obj/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ pub struct ObjExtab {
130130
pub func: ObjSymbol,
131131
pub data: ExceptionTableData,
132132
pub dtors: Vec<ObjSymbol>,
133+
pub extab_symbol_name: String,
134+
pub extabindex_symbol_name: String,
133135
}
134136

135137
pub struct ObjInfo {

objdiff-core/src/obj/read.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ fn exception_tables(
203203
//Go through each pair
204204
for i in 0..table_count {
205205
let extab = &extab_section.symbols[i];
206+
let extabindex = &extabindex_section.symbols[i];
206207
let extab_start_addr = extab.address;
207208
let extab_end_addr = extab_start_addr + extab.size;
208209

@@ -242,9 +243,11 @@ fn exception_tables(
242243
let end_index = extab_end_addr as usize;
243244
let extab_data = extab_section.data[start_index..end_index].try_into().unwrap();
244245
let data = decode_extab(extab_data)?;
246+
let extab_symbol_name = extab.name.clone();
247+
let extabindex_symbol_name = extabindex.name.clone();
245248

246249
//Add the new entry to the list
247-
let entry = ObjExtab { func: extab_func, data, dtors };
250+
let entry = ObjExtab { func: extab_func, data, dtors, extab_symbol_name, extabindex_symbol_name };
248251
result.push(entry);
249252
}
250253

objdiff-gui/src/views/extab_diff.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ fn find_symbol(obj: &ObjInfo, selected_symbol: &SymbolRefByName) -> Option<Symbo
3232
fn decode_extab(extab: &ObjExtab) -> String {
3333
let mut text = String::from("");
3434

35+
text += format!("Extab symbol: {}\n", extab.extab_symbol_name).as_str();
36+
text += format!("Extabindex symbol: {}\n\n", extab.extabindex_symbol_name).as_str();
37+
3538
let mut dtor_names: Vec<&str> = vec![];
3639
for dtor in &extab.dtors {
3740
//For each function name, use the demangled name by default,

0 commit comments

Comments
 (0)