diff --git a/Cargo.lock b/Cargo.lock index 29e878c..fa67fa6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3268,7 +3268,7 @@ dependencies = [ [[package]] name = "objdiff-cli" -version = "3.0.0-alpha.2" +version = "3.0.0-alpha.3" dependencies = [ "anyhow", "argp", @@ -3291,7 +3291,7 @@ dependencies = [ [[package]] name = "objdiff-core" -version = "3.0.0-alpha.2" +version = "3.0.0-alpha.3" dependencies = [ "anyhow", "arm-attr", @@ -3344,7 +3344,7 @@ dependencies = [ [[package]] name = "objdiff-gui" -version = "3.0.0-alpha.2" +version = "3.0.0-alpha.3" dependencies = [ "anyhow", "cfg-if", @@ -3383,7 +3383,7 @@ dependencies = [ [[package]] name = "objdiff-wasm" -version = "3.0.0-alpha.2" +version = "3.0.0-alpha.3" dependencies = [ "log", "objdiff-core", diff --git a/Cargo.toml b/Cargo.toml index 0a2ddd2..e61214b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ strip = "debuginfo" codegen-units = 1 [workspace.package] -version = "3.0.0-alpha.2" +version = "3.0.0-alpha.3" authors = ["Luke Street "] edition = "2021" license = "MIT OR Apache-2.0" diff --git a/objdiff-core/src/obj/read.rs b/objdiff-core/src/obj/read.rs index b8c064b..584f294 100644 --- a/objdiff-core/src/obj/read.rs +++ b/objdiff-core/src/obj/read.rs @@ -151,14 +151,22 @@ fn infer_symbol_sizes(symbols: &mut [Symbol], sections: &[Section]) { // Set symbol sizes based on the next symbol's address let mut iter_idx = 0; + let mut last_end = (0, 0); while iter_idx < symbols_with_section.len() { let symbol_idx = symbols_with_section[iter_idx]; let symbol = &symbols[symbol_idx]; + let section_idx = symbol.section.unwrap(); iter_idx += 1; if symbol.size != 0 { + if symbol.kind != SymbolKind::Section { + last_end = (section_idx, symbol.address + symbol.size); + } + continue; + } + // Skip over symbols that are contained within the previous symbol + if last_end.0 == section_idx && last_end.1 > symbol.address { continue; } - let section_idx = symbol.section.unwrap(); let next_symbol = match symbol.kind { // For function/object symbols, find the next function/object symbol (in other words: // skip over labels) diff --git a/objdiff-core/tests/arch_arm.rs b/objdiff-core/tests/arch_arm.rs new file mode 100644 index 0000000..0a09de6 --- /dev/null +++ b/objdiff-core/tests/arch_arm.rs @@ -0,0 +1,16 @@ +use objdiff_core::{diff, obj}; + +mod common; + +#[test] +#[cfg(feature = "arm")] +fn read_arm() { + let diff_config = diff::DiffObjConfig { mips_register_prefix: true, ..Default::default() }; + let obj = obj::read::parse(include_object!("data/arm/LinkStateItem.o"), &diff_config).unwrap(); + insta::assert_debug_snapshot!(obj); + let symbol_idx = obj.symbols.iter().position(|s| s.name == "_ZN13LinkStateItem12OnStateLeaveEi").unwrap(); + let diff = diff::code::no_diff_code(&obj, symbol_idx, &diff_config).unwrap(); + insta::assert_debug_snapshot!(diff.instruction_rows); + let output = common::display_diff(&obj, &diff, symbol_idx, &diff_config); + insta::assert_snapshot!(output); +} diff --git a/objdiff-core/tests/data/arm/LinkStateItem.o b/objdiff-core/tests/data/arm/LinkStateItem.o new file mode 100644 index 0000000..6fe0dc8 Binary files /dev/null and b/objdiff-core/tests/data/arm/LinkStateItem.o differ diff --git a/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap b/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap new file mode 100644 index 0000000..843f5e7 --- /dev/null +++ b/objdiff-core/tests/snapshots/arch_arm__read_arm-2.snap @@ -0,0 +1,1704 @@ +--- +source: objdiff-core/tests/arch_arm.rs +expression: diff.instruction_rows +--- +[ + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 40, + size: 4, + opcode: 32895, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 44, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 48, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 52, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 56, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 60, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 64, + size: 4, + opcode: 32770, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 68, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 72, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 76, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 80, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 84, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 48, + branch_idx: 1, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 88, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 31, + branch_idx: 2, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 92, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 96, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 35, + branch_idx: 3, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 100, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 19, + branch_idx: 4, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 104, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 38, + branch_idx: 5, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 108, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 41, + branch_idx: 6, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 112, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 41, + branch_idx: 6, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 116, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 15, + ], + branch_idx: 4, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 120, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 124, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 128, + size: 4, + opcode: 32800, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 132, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 136, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 27, + branch_idx: 7, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 140, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 106, + branch_idx: 8, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 144, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 148, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 24, + ], + branch_idx: 7, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 152, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 156, + size: 4, + opcode: 32777, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 160, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 164, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 12, + ], + branch_idx: 2, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 168, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 172, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 176, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 180, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 14, + ], + branch_idx: 3, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 184, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 188, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 192, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 16, + ], + branch_idx: 5, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 196, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 200, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 204, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 17, + 18, + ], + branch_idx: 6, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 208, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 212, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 216, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 220, + size: 4, + opcode: 32899, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 224, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 228, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 50, + branch_idx: 0, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 232, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 11, + ], + branch_idx: 1, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 236, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 240, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 7, + 8, + 9, + 10, + 13, + 30, + 34, + 37, + 40, + 47, + ], + branch_idx: 0, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 244, + size: 4, + opcode: 32829, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 248, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 252, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 59, + branch_idx: 9, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 256, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 260, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 264, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 268, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 272, + size: 4, + opcode: 32778, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 276, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 53, + ], + branch_idx: 9, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 280, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 284, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 72, + branch_idx: 10, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 288, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 74, + branch_idx: 11, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 292, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 296, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 12, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 300, + size: 4, + opcode: 32829, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 304, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 308, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 12, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 312, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 316, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 320, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 85, + branch_idx: 13, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 324, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 12, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 328, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 61, + ], + branch_idx: 10, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 332, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 77, + branch_idx: 12, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 336, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 62, + ], + branch_idx: 11, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 340, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 344, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 85, + branch_idx: 13, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 348, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 64, + 67, + 71, + 73, + ], + branch_idx: 12, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 352, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 356, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 360, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 364, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 85, + branch_idx: 13, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 368, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 372, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 376, + size: 4, + opcode: 32899, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 380, + size: 4, + opcode: 32829, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 70, + 76, + 81, + ], + branch_idx: 13, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 384, + size: 4, + opcode: 32770, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 388, + size: 4, + opcode: 32770, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 392, + size: 4, + opcode: 32898, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 396, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 400, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 96, + branch_idx: 14, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 404, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 95, + ], + branch_idx: 15, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 408, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 412, + size: 4, + opcode: 32770, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 416, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 420, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 91, + branch_idx: 15, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 424, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 90, + ], + branch_idx: 14, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 428, + size: 4, + opcode: 32799, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 432, + size: 4, + opcode: 32800, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 436, + size: 4, + opcode: 32786, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 440, + size: 4, + opcode: 32773, + }, + ), + kind: None, + branch_from: None, + branch_to: Some( + InstructionBranchTo { + ins_idx: 102, + branch_idx: 16, + }, + ), + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 444, + size: 4, + opcode: 32774, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 448, + size: 4, + opcode: 32818, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 100, + ], + branch_idx: 16, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 452, + size: 4, + opcode: 32899, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 456, + size: 4, + opcode: 32793, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 460, + size: 4, + opcode: 32771, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 464, + size: 4, + opcode: 32771, + }, + ), + kind: None, + branch_from: Some( + InstructionBranchFrom { + ins_idx: [ + 25, + ], + branch_idx: 8, + }, + ), + branch_to: None, + arg_diff: [], + }, + InstructionDiffRow { + ins_ref: Some( + InstructionRef { + address: 468, + size: 4, + opcode: 32771, + }, + ), + kind: None, + branch_from: None, + branch_to: None, + arg_diff: [], + }, +] diff --git a/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap b/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap new file mode 100644 index 0000000..17f9150 --- /dev/null +++ b/objdiff-core/tests/snapshots/arch_arm__read_arm-3.snap @@ -0,0 +1,112 @@ +--- +source: objdiff-core/tests/arch_arm.rs +expression: output +--- +[(Address(0), Normal, 5), (Spacing(4), Normal, 0), (Opcode("stmdb", 32895), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Argument(Opaque("!")), Normal, 0), (Basic(", "), Normal, 0), (Basic("{"), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("lr")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] +[(Address(4), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Address(8), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Eol, Normal, 0)] +[(Address(12), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateBase12OnStateLeaveEi", demangled_name: Some("LinkStateBase::OnStateLeave(int)"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(16), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(20)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(20), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(10)), Normal, 0), (Eol, Normal, 0)] +[(Address(24), Normal, 5), (Spacing(4), Normal, 0), (Opcode("addls", 32770), Normal, 10), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("lsl")), Normal, 0), (Basic(" #"), Normal, 0), (Argument(Unsigned(2)), Normal, 0), (Eol, Normal, 0)] +[(Address(28), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(32), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(36), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(40), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(44), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(192), Normal, 0), (Basic(" ~>"), Rotating(1), 0), (Eol, Normal, 0)] +[(Address(48), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(124), Normal, 0), (Basic(" ~>"), Rotating(2), 0), (Eol, Normal, 0)] +[(Address(52), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(56), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(140), Normal, 0), (Basic(" ~>"), Rotating(3), 0), (Eol, Normal, 0)] +[(Address(60), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(76), Normal, 0), (Basic(" ~>"), Rotating(4), 0), (Eol, Normal, 0)] +[(Address(64), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(152), Normal, 0), (Basic(" ~>"), Rotating(5), 0), (Eol, Normal, 0)] +[(Address(68), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(164), Normal, 0), (Basic(" ~>"), Rotating(6), 0), (Eol, Normal, 0)] +[(Address(72), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(164), Normal, 0), (Basic(" ~>"), Rotating(6), 0), (Eol, Normal, 0)] +[(Address(76), Normal, 5), (Basic(" ~> "), Rotating(4), 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(336)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(80), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(84), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN18UnkStruct_027e103c19func_ov000_020cf01cEv", demangled_name: Some("UnkStruct_027e103c::func_ov000_020cf01c()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(88), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrb", 32800), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(224)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(92), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(96), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 32773), Normal, 10), (BranchDest(108), Normal, 0), (Basic(" ~>"), Rotating(7), 0), (Eol, Normal, 0)] +[(Address(100), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateItem15GetEquipBombchuEv", demangled_name: Some("LinkStateItem::GetEquipBombchu()"), address: 472, size: 16, kind: Function, section: Some(0), flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Basic(" ~>"), Rotating(8), 0), (Eol, Normal, 0)] +[(Address(104), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN12EquipBombchu19func_ov014_0213ec64Ev", demangled_name: Some("EquipBombchu::func_ov014_0213ec64()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(108), Normal, 5), (Basic(" ~> "), Rotating(7), 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(308)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(112), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(116), Normal, 5), (Spacing(4), Normal, 0), (Opcode("blx", 32777), Normal, 10), (Symbol(Symbol { name: "_Z19func_ov014_0211fd04Pi", demangled_name: Some("func_ov014_0211fd04(int*)"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(120), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(124), Normal, 5), (Basic(" ~> "), Rotating(2), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(128), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Eol, Normal, 0)] +[(Address(132), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateItem13StopUsingBombEi", demangled_name: Some("LinkStateItem::StopUsingBomb(int)"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(136), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(140), Normal, 5), (Basic(" ~> "), Rotating(3), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(144), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateItem13StopUsingRopeEv", demangled_name: Some("LinkStateItem::StopUsingRope()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(148), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(152), Normal, 5), (Basic(" ~> "), Rotating(5), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(156), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateItem15StopUsingHammerEv", demangled_name: Some("LinkStateItem::StopUsingHammer()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(160), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(164), Normal, 5), (Basic(" ~> "), Rotating(6), 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(248)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(168), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(172), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(176), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r2")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Eol, Normal, 0)] +[(Address(180), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 32899), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(42)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(184), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN18UnkStruct_027e103c19func_ov000_020cf9dcEii", demangled_name: Some("UnkStruct_027e103c::func_ov000_020cf9dc(int, int)"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(188), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(200), Normal, 0), (Basic(" ~>"), Rotating(0), 0), (Eol, Normal, 0)] +[(Address(192), Normal, 5), (Basic(" ~> "), Rotating(1), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(196), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateItem14StopUsingScoopEv", demangled_name: Some("LinkStateItem::StopUsingScoop()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(200), Normal, 5), (Basic(" ~> "), Rotating(0), 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(20)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(204), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mvn", 32829), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(208), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Address(212), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 32773), Normal, 10), (BranchDest(236), Normal, 0), (Basic(" ~>"), Rotating(9), 0), (Eol, Normal, 0)] +[(Address(216), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(220), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateBase12GetEquipItemEi", demangled_name: Some("LinkStateBase::GetEquipItem(int)"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(224), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(228), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(28)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(232), Normal, 5), (Spacing(4), Normal, 0), (Opcode("blx", 32778), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Eol, Normal, 0)] +[(Address(236), Normal, 5), (Basic(" ~> "), Rotating(9), 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(20)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(240), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(9)), Normal, 0), (Eol, Normal, 0)] +[(Address(244), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bgt", 32773), Normal, 10), (BranchDest(288), Normal, 0), (Basic(" ~>"), Rotating(10), 0), (Eol, Normal, 0)] +[(Address(248), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bge", 32773), Normal, 10), (BranchDest(296), Normal, 0), (Basic(" ~>"), Rotating(11), 0), (Eol, Normal, 0)] +[(Address(252), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Address(256), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bgt", 32773), Normal, 10), (BranchDest(308), Normal, 0), (Basic(" ~>"), Rotating(12), 0), (Eol, Normal, 0)] +[(Address(260), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mvn", 32829), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(264), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Eol, Normal, 0)] +[(Address(268), Normal, 5), (Spacing(4), Normal, 0), (Opcode("blt", 32773), Normal, 10), (BranchDest(308), Normal, 0), (Basic(" ~>"), Rotating(12), 0), (Eol, Normal, 0)] +[(Address(272), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmpne", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(276), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmpne", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Address(280), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 32773), Normal, 10), (BranchDest(340), Normal, 0), (Basic(" ~>"), Rotating(13), 0), (Eol, Normal, 0)] +[(Address(284), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(308), Normal, 0), (Basic(" ~>"), Rotating(12), 0), (Eol, Normal, 0)] +[(Address(288), Normal, 5), (Basic(" ~> "), Rotating(10), 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(10)), Normal, 0), (Eol, Normal, 0)] +[(Address(292), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 32773), Normal, 10), (BranchDest(308), Normal, 0), (Basic(" ~>"), Rotating(12), 0), (Eol, Normal, 0)] +[(Address(296), Normal, 5), (Basic(" ~> "), Rotating(11), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(300), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateBase18EquipItem_vfunc_28Ev", demangled_name: Some("LinkStateBase::EquipItem_vfunc_28()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(304), Normal, 5), (Spacing(4), Normal, 0), (Opcode("b", 32773), Normal, 10), (BranchDest(340), Normal, 0), (Basic(" ~>"), Rotating(13), 0), (Eol, Normal, 0)] +[(Address(308), Normal, 5), (Basic(" ~> "), Rotating(12), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Eol, Normal, 0)] +[(Address(312), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateBase18EquipItem_vfunc_28Ev", demangled_name: Some("LinkStateBase::EquipItem_vfunc_28()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(316), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(4)), Normal, 0), (Eol, Normal, 0)] +[(Address(320), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmpne", 32786), Normal, 10), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(2)), Normal, 0), (Eol, Normal, 0)] +[(Address(324), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 32773), Normal, 10), (BranchDest(340), Normal, 0), (Basic(" ~>"), Rotating(13), 0), (Eol, Normal, 0)] +[(Address(328), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13LinkStateItem16GetLinkStateMoveEv", demangled_name: Some("LinkStateItem::GetLinkStateMove()"), address: 488, size: 16, kind: Function, section: Some(0), flags: FlagSet(Global), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(332), Normal, 5), (Spacing(4), Normal, 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(1)), Normal, 0), (Eol, Normal, 0)] +[(Address(336), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 32899), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(20)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(340), Normal, 5), (Basic(" ~> "), Rotating(13), 0), (Opcode("mvn", 32829), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(344), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 32770), Normal, 10), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(80)), Normal, 0), (Eol, Normal, 0)] +[(Address(348), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 32770), Normal, 10), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(88)), Normal, 0), (Eol, Normal, 0)] +[(Address(352), Normal, 5), (Spacing(4), Normal, 0), (Opcode("str", 32898), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(24)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(356), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Eol, Normal, 0)] +[(Address(360), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 32773), Normal, 10), (BranchDest(384), Normal, 0), (Basic(" ~>"), Rotating(14), 0), (Eol, Normal, 0)] +[(Address(364), Normal, 5), (Basic(" ~> "), Rotating(15), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Eol, Normal, 0)] +[(Address(368), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_Z19func_ov000_020b7e6cPi", demangled_name: Some("func_ov000_020b7e6c(int*)"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(372), Normal, 5), (Spacing(4), Normal, 0), (Opcode("add", 32770), Normal, 10), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(4)), Normal, 0), (Eol, Normal, 0)] +[(Address(376), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Eol, Normal, 0)] +[(Address(380), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bne", 32773), Normal, 10), (BranchDest(364), Normal, 0), (Basic(" ~>"), Rotating(15), 0), (Eol, Normal, 0)] +[(Address(384), Normal, 5), (Basic(" ~> "), Rotating(14), 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(36)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(388), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldr", 32799), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(0)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(392), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldrb", 32800), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(128)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(396), Normal, 5), (Spacing(4), Normal, 0), (Opcode("cmp", 32786), Normal, 10), (Argument(Opaque("r1")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(400), Normal, 5), (Spacing(4), Normal, 0), (Opcode("beq", 32773), Normal, 10), (BranchDest(408), Normal, 0), (Basic(" ~>"), Rotating(16), 0), (Eol, Normal, 0)] +[(Address(404), Normal, 5), (Spacing(4), Normal, 0), (Opcode("bl", 32774), Normal, 10), (Symbol(Symbol { name: "_ZN13PlayerControl13StopFollowingEv", demangled_name: Some("PlayerControl::StopFollowing()"), address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Addend(-8), Bright, 0), (Eol, Normal, 0)] +[(Address(408), Normal, 5), (Basic(" ~> "), Rotating(16), 0), (Opcode("mov", 32818), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Unsigned(0)), Normal, 0), (Eol, Normal, 0)] +[(Address(412), Normal, 5), (Spacing(4), Normal, 0), (Opcode("strb", 32899), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Basic("["), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Basic("#"), Normal, 0), (Argument(Signed(38)), Normal, 0), (Basic("]"), Normal, 0), (Eol, Normal, 0)] +[(Address(416), Normal, 5), (Spacing(4), Normal, 0), (Opcode("ldmia", 32793), Normal, 10), (Argument(Opaque("sp")), Normal, 0), (Argument(Opaque("!")), Normal, 0), (Basic(", "), Normal, 0), (Basic("{"), Normal, 0), (Argument(Opaque("r4")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r5")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r6")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("pc")), Normal, 0), (Basic("}"), Normal, 0), (Eol, Normal, 0)] +[(Address(420), Normal, 5), (Spacing(4), Normal, 0), (Opcode("andeq", 32771), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(" <"), Normal, 0), (Symbol(Symbol { name: "data_027e103c", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Basic(">"), Normal, 0), (Eol, Normal, 0)] +[(Address(424), Normal, 5), (Basic(" ~> "), Rotating(8), 0), (Opcode("andeq", 32771), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(" <"), Normal, 0), (Symbol(Symbol { name: "data_027e1098", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Basic(">"), Normal, 0), (Eol, Normal, 0)] +[(Address(428), Normal, 5), (Spacing(4), Normal, 0), (Opcode("andeq", 32771), Normal, 10), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(", "), Normal, 0), (Argument(Opaque("r0")), Normal, 0), (Basic(" <"), Normal, 0), (Symbol(Symbol { name: "gPlayerControl", demangled_name: None, address: 0, size: 0, kind: Unknown, section: None, flags: FlagSet(Global | Weak), align: None, virtual_address: None }), Bright, 0), (Basic(">"), Normal, 0), (Eol, Normal, 0)] diff --git a/objdiff-core/tests/snapshots/arch_arm__read_arm.snap b/objdiff-core/tests/snapshots/arch_arm__read_arm.snap new file mode 100644 index 0000000..5b6fc82 --- /dev/null +++ b/objdiff-core/tests/snapshots/arch_arm__read_arm.snap @@ -0,0 +1,1936 @@ +--- +source: objdiff-core/tests/arch_arm.rs +expression: obj +--- +Object { + arch: ArchArm { + disasm_modes: { + 1: [ + DisasmMode { + address: 0, + mapping: Thumb, + }, + DisasmMode { + address: 4, + mapping: Arm, + }, + DisasmMode { + address: 12, + mapping: Arm, + }, + DisasmMode { + address: 32, + mapping: Arm, + }, + DisasmMode { + address: 40, + mapping: Arm, + }, + DisasmMode { + address: 72, + mapping: Arm, + }, + DisasmMode { + address: 116, + mapping: Arm, + }, + DisasmMode { + address: 148, + mapping: Arm, + }, + DisasmMode { + address: 164, + mapping: Arm, + }, + DisasmMode { + address: 180, + mapping: Arm, + }, + DisasmMode { + address: 192, + mapping: Arm, + }, + DisasmMode { + address: 204, + mapping: Arm, + }, + DisasmMode { + address: 232, + mapping: Arm, + }, + DisasmMode { + address: 240, + mapping: Arm, + }, + DisasmMode { + address: 276, + mapping: Arm, + }, + DisasmMode { + address: 328, + mapping: Arm, + }, + DisasmMode { + address: 336, + mapping: Arm, + }, + DisasmMode { + address: 348, + mapping: Arm, + }, + DisasmMode { + address: 380, + mapping: Arm, + }, + DisasmMode { + address: 404, + mapping: Arm, + }, + DisasmMode { + address: 424, + mapping: Arm, + }, + DisasmMode { + address: 448, + mapping: Arm, + }, + DisasmMode { + address: 460, + mapping: Data, + }, + DisasmMode { + address: 464, + mapping: Data, + }, + DisasmMode { + address: 468, + mapping: Data, + }, + DisasmMode { + address: 472, + mapping: Arm, + }, + DisasmMode { + address: 484, + mapping: Data, + }, + DisasmMode { + address: 488, + mapping: Arm, + }, + DisasmMode { + address: 500, + mapping: Data, + }, + DisasmMode { + address: 504, + mapping: Arm, + }, + DisasmMode { + address: 528, + mapping: Data, + }, + DisasmMode { + address: 532, + mapping: Data, + }, + DisasmMode { + address: 536, + mapping: Arm, + }, + ], + }, + detected_version: None, + endianness: Little, + }, + endianness: Little, + symbols: [ + Symbol { + name: ".text", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$t", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 4, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 12, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abd38", + demangled_name: None, + address: 32, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 32, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 40, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abd60", + demangled_name: None, + address: 72, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 72, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abd8c", + demangled_name: None, + address: 116, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 116, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abdac", + demangled_name: None, + address: 148, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 148, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abdbc", + demangled_name: None, + address: 164, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 164, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abdcc", + demangled_name: None, + address: 180, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 180, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abdd8", + demangled_name: None, + address: 192, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 192, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abde4", + demangled_name: None, + address: 204, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 204, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe00", + demangled_name: None, + address: 232, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 232, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe08", + demangled_name: None, + address: 240, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 240, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe2c", + demangled_name: None, + address: 276, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 276, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe60", + demangled_name: None, + address: 328, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 328, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe68", + demangled_name: None, + address: 336, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 336, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe74", + demangled_name: None, + address: 348, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 348, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abe94", + demangled_name: None, + address: 380, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 380, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abeac", + demangled_name: None, + address: 404, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 404, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abec0", + demangled_name: None, + address: 424, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 424, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abed8", + demangled_name: None, + address: 448, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 448, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abee4", + demangled_name: None, + address: 460, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 460, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abee8", + demangled_name: None, + address: 464, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 464, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abeec", + demangled_name: None, + address: 468, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 468, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 472, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abefc", + demangled_name: None, + address: 484, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 484, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 488, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abf0c", + demangled_name: None, + address: 500, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 500, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 504, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abf28", + demangled_name: None, + address: 528, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 528, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_020abf2c", + demangled_name: None, + address: 532, + size: 0, + kind: Object, + section: Some( + 0, + ), + flags: FlagSet(Local), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 532, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "$a", + demangled_name: None, + address: 536, + size: 0, + kind: Unknown, + section: Some( + 0, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: ".data", + demangled_name: None, + address: 0, + size: 8, + kind: Object, + section: Some( + 2, + ), + flags: FlagSet(Local | SizeInferred), + align: None, + virtual_address: None, + }, + Symbol { + name: "$d", + demangled_name: None, + address: 8, + size: 0, + kind: Unknown, + section: Some( + 2, + ), + flags: FlagSet(Local | Hidden), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase12OnStateLeaveEi", + demangled_name: Some( + "LinkStateBase::OnStateLeave(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN18UnkStruct_027e103c19func_ov000_020cf01cEv", + demangled_name: Some( + "UnkStruct_027e103c::func_ov000_020cf01c()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN12EquipBombchu19func_ov014_0213ec64Ev", + demangled_name: Some( + "EquipBombchu::func_ov014_0213ec64()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_Z19func_ov014_0211fd04Pi", + demangled_name: Some( + "func_ov014_0211fd04(int*)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem13StopUsingBombEi", + demangled_name: Some( + "LinkStateItem::StopUsingBomb(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem13StopUsingRopeEv", + demangled_name: Some( + "LinkStateItem::StopUsingRope()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem15StopUsingHammerEv", + demangled_name: Some( + "LinkStateItem::StopUsingHammer()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN18UnkStruct_027e103c19func_ov000_020cf9dcEii", + demangled_name: Some( + "UnkStruct_027e103c::func_ov000_020cf9dc(int, int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem14StopUsingScoopEv", + demangled_name: Some( + "LinkStateItem::StopUsingScoop()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase12GetEquipItemEi", + demangled_name: Some( + "LinkStateBase::GetEquipItem(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase18EquipItem_vfunc_28Ev", + demangled_name: Some( + "LinkStateBase::EquipItem_vfunc_28()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_Z19func_ov000_020b7e6cPi", + demangled_name: Some( + "func_ov000_020b7e6c(int*)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13PlayerControl13StopFollowingEv", + demangled_name: Some( + "PlayerControl::StopFollowing()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "data_027e103c", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "data_027e1098", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "gPlayerControl", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN11ItemManager21GetEquipItemUncheckedEi", + demangled_name: Some( + "ItemManager::GetEquipItemUnchecked(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_Z12GetLinkStatei", + demangled_name: Some( + "GetLinkState(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "gAdventureFlags", + demangled_name: None, + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN14AdventureFlags18func_ov00_02097b9cEi", + demangled_name: Some( + "AdventureFlags::func_ov00_02097b9c(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem8vfunc_00Ev", + demangled_name: Some( + "LinkStateItem::vfunc_00()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItemD1Ev", + demangled_name: Some( + "LinkStateItem::~LinkStateItem()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItemD0Ev", + demangled_name: Some( + "LinkStateItem::~LinkStateItem()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase20CreateDebugHierarchyEv", + demangled_name: Some( + "LinkStateBase::CreateDebugHierarchy()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem12OnStateEnterEv", + demangled_name: Some( + "LinkStateItem::OnStateEnter()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem8vfunc_1cEv", + demangled_name: Some( + "LinkStateItem::vfunc_1c()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem8vfunc_20Ei", + demangled_name: Some( + "LinkStateItem::vfunc_20(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem8vfunc_24Ei", + demangled_name: Some( + "LinkStateItem::vfunc_24(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase8vfunc_2cEPt", + demangled_name: Some( + "LinkStateBase::vfunc_2c(unsigned short*)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase8vfunc_30Ei", + demangled_name: Some( + "LinkStateBase::vfunc_30(int)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase8vfunc_34EP5Vec3p", + demangled_name: Some( + "LinkStateBase::vfunc_34(Vec3p*)", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase8vfunc_38Ev", + demangled_name: Some( + "LinkStateBase::vfunc_38()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase8vfunc_3cEv", + demangled_name: Some( + "LinkStateBase::vfunc_3c()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateBase8vfunc_40Ev", + demangled_name: Some( + "LinkStateBase::vfunc_40()", + ), + address: 0, + size: 0, + kind: Unknown, + section: None, + flags: FlagSet(Global | Weak), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem8vfunc_00Ev", + demangled_name: Some( + "LinkStateItem::vfunc_00()", + ), + address: 0, + size: 4, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem5GetIdEv", + demangled_name: Some( + "LinkStateItem::GetId()", + ), + address: 4, + size: 8, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem16IsHammerEquippedEv", + demangled_name: Some( + "LinkStateItem::IsHammerEquipped()", + ), + address: 12, + size: 28, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem12OnStateLeaveEi", + demangled_name: Some( + "LinkStateItem::OnStateLeave(int)", + ), + address: 40, + size: 432, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem15GetEquipBombchuEv", + demangled_name: Some( + "LinkStateItem::GetEquipBombchu()", + ), + address: 472, + size: 16, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem16GetLinkStateMoveEv", + demangled_name: Some( + "LinkStateItem::GetLinkStateMove()", + ), + address: 488, + size: 16, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem18func_ov00_020abf70Ev", + demangled_name: Some( + "LinkStateItem::func_ov00_020abf70()", + ), + address: 504, + size: 32, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZN13LinkStateItem8vfunc_28Ev", + demangled_name: Some( + "LinkStateItem::vfunc_28()", + ), + address: 536, + size: 20, + kind: Function, + section: Some( + 0, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + Symbol { + name: "_ZTV13LinkStateItem", + demangled_name: Some( + "{vtable(LinkStateItem)}", + ), + address: 8, + size: 68, + kind: Object, + section: Some( + 2, + ), + flags: FlagSet(Global), + align: None, + virtual_address: None, + }, + ], + sections: [ + Section { + id: ".text-0", + name: ".text", + address: 0, + size: 556, + kind: Code, + data: SectionData( + 556, + ), + flags: FlagSet(), + relocations: [ + Relocation { + flags: Elf( + 1, + ), + address: 52, + target_symbol: 61, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 124, + target_symbol: 62, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 140, + target_symbol: 99, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 144, + target_symbol: 63, + addend: -8, + }, + Relocation { + flags: Elf( + 15, + ), + address: 156, + target_symbol: 64, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 172, + target_symbol: 65, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 184, + target_symbol: 66, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 196, + target_symbol: 67, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 224, + target_symbol: 68, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 236, + target_symbol: 69, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 260, + target_symbol: 70, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 340, + target_symbol: 71, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 352, + target_symbol: 71, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 368, + target_symbol: 100, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 408, + target_symbol: 72, + addend: -8, + }, + Relocation { + flags: Elf( + 1, + ), + address: 444, + target_symbol: 73, + addend: -8, + }, + Relocation { + flags: Elf( + 2, + ), + address: 460, + target_symbol: 74, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 464, + target_symbol: 75, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 468, + target_symbol: 76, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 484, + target_symbol: 77, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 500, + target_symbol: 78, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 528, + target_symbol: 79, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 532, + target_symbol: 80, + addend: 0, + }, + ], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".rela.text-0", + name: ".rela.text", + address: 0, + size: 276, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".data-0", + name: ".data", + address: 0, + size: 76, + kind: Data, + data: SectionData( + 76, + ), + flags: FlagSet(), + relocations: [ + Relocation { + flags: Elf( + 2, + ), + address: 8, + target_symbol: 81, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 12, + target_symbol: 82, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 16, + target_symbol: 83, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 20, + target_symbol: 96, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 24, + target_symbol: 84, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 28, + target_symbol: 85, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 32, + target_symbol: 98, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 36, + target_symbol: 86, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 40, + target_symbol: 87, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 44, + target_symbol: 88, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 48, + target_symbol: 102, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 52, + target_symbol: 89, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 56, + target_symbol: 90, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 60, + target_symbol: 91, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 64, + target_symbol: 92, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 68, + target_symbol: 93, + addend: 0, + }, + Relocation { + flags: Elf( + 2, + ), + address: 72, + target_symbol: 94, + addend: 0, + }, + ], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".rela.data-0", + name: ".rela.data", + address: 0, + size: 204, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".symtab-0", + name: ".symtab", + address: 0, + size: 1680, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".strtab-0", + name: ".strtab", + address: 0, + size: 1615, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + Section { + id: ".shstrtab-0", + name: ".shstrtab", + address: 0, + size: 49, + kind: Unknown, + data: SectionData( + 0, + ), + flags: FlagSet(), + relocations: [], + line_info: {}, + virtual_address: None, + }, + ], + split_meta: None, + path: None, + timestamp: None, +} diff --git a/objdiff-wasm/package-lock.json b/objdiff-wasm/package-lock.json index 5110af7..86563cf 100644 --- a/objdiff-wasm/package-lock.json +++ b/objdiff-wasm/package-lock.json @@ -1,12 +1,12 @@ { "name": "objdiff-wasm", - "version": "3.0.0-alpha.2", + "version": "3.0.0-alpha.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "objdiff-wasm", - "version": "3.0.0-alpha.2", + "version": "3.0.0-alpha.3", "license": "MIT OR Apache-2.0", "devDependencies": { "@biomejs/biome": "^1.9.3", diff --git a/objdiff-wasm/package.json b/objdiff-wasm/package.json index ba6b0fb..0a8a699 100644 --- a/objdiff-wasm/package.json +++ b/objdiff-wasm/package.json @@ -1,6 +1,6 @@ { "name": "objdiff-wasm", - "version": "3.0.0-alpha.2", + "version": "3.0.0-alpha.3", "description": "A local diffing tool for decompilation projects.", "author": { "name": "Luke Street",