This migrates to using protobuf to
define the "report" and "changes"
formats in objdiff-cli.
The JSON output now uses the Proto3
"JSON Mapping", which is slightly
incompatible with the existing JSON
format. Mainly, 64-bit numbers are
represented as strings, and addresses
are decimal strings instead of hex.
However, the older JSON format is
still accepted by "report changes"
to ease migration.
This attempts the following in order:
- wgpu with user-selected backend
- wgpu with automatic backend
- glow (fallback OpenGL backend)
This should eliminate most issues
where objdiff fails to launch.
* Basic integration
* Implement basic right click option
Needs lotsa work
* nothing to worry about
* Convert extab diff to separate view
* Make clippy and fmt shut up
* Make clippy fmt shut up for real this time
* Print extab/extabindex symbol names in extab view
* I hate fmt
* Basic integration
* Implement basic right click option
Needs lotsa work
* nothing to worry about
* Convert extab diff to separate view
* Make clippy and fmt shut up
* Make clippy fmt shut up for real this time
* Print extab/extabindex symbol names in extab view
* I hate fmt
* Fix scroll position not being maintained from extab view
* Silly me
* Add rlwinm decoder window
* Remove extra files
* Create Cargo.lock
* Show extab symbol names in hover window
* Appease fmt
* Update symbol_diff.rs
* Update symbol_diff.rs
* Get extab symbol from extabindex relocations instead
* Update Cargo.lock
* Update Cargo.lock
* Initial ARM support
* Disassemble const pool reloc
* Disasm ARM/Thumb/data based on mapping symbols
* Fallback to mapping symbol `$a`
* Support multiple DWARF sequences
* Update line info
* Rework DWARF line info parsing
- Properly handles multiple sections
in DWARF 1
- line_info moved into ObjSection
- DWARF 2 parser no longer errors with
no .text section
- Both parsers properly skip empty
sections
* Simplify line_info (no Option)
* Get line info from section; output formatted ins string
* Unwrap code section in `arm.rs`
* Handle reloc `R_ARM_SBREL32`
* Update ARM disassembler
* Update README.md
* Format
* Revert "Update README.md"
This reverts commit 8bbfcc6f45.
* Update README.md
* Detect ARM version; support ARMv4T and v6K
* Combobox to force ARM version
* Clear LSB in ARM symbol addresses
* Support big-endian ARM ELF files
* Bump `unarm`, `arm-attr`
* Handle ARM implicit addends
* Update README.md
* Explicitly handle all ARM argument types
* Format
* Display more ARM relocs
* Mask LSB on ARM code symbols only
* Read ARM implicit addends
* Format
---------
Co-authored-by: Luke Street <luke.street@encounterpc.com>
No more scattered relocation handling and
feature checks. Everything will go through
the ObjArch trait, which makes it easier
to add new architectures going forward.
- Add `objdiff-cli report changes` for diffing two reports
- Unify some click-to-highlight logic between CLI and GUI
- Load .splitmeta section for extra object metadata (original virtual addr, etc)
- More work on objdiff-cli diff