Reworks the local-branch handling logic to be more
unified: scan_instructions does all the work up front,
and process_instruction / display_instruction can
simply use the calculated branch destination instead
of performing their own is-relocation-target-
function-local checks.
(Hopefully) Fixes#192
Implements MIPS relocation pairing logic.
New option for "Register '$' prefix", off by default.
Fixes various regressions introduced by refactoring.
Resolves#122Resolves#156
* Data view: Show data bytes with differing relocations as a diff
* Data view: Show differing relocations on hover
* Symbol list view: Adjust symbol/section match %s when relocations differ
* Improve data reloc diffing logic
* Don't make reloc diffs cause bytes to show as red or green
* Properly detect byte size of each relocation
* Data view: Add context menu for copying relocation target symbols
* Also show already-matching relocations on hover/right click
* Change font color for nonmatching relocs on hover
* Support R_MIPS_GPREL16 relocations correctly
symbols defined in the same file require adding a
special ri_gp_value from the .reginfo section to
their relocation calculations.
* Run nightly rustfmt
* Prevent potential panic when slicing .reginfo
* Support multiple DWARF sequences
* 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)
---------
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.