Luke Street
e46c6a72bc
Split up README a bit
2024-04-22 23:17:09 -06:00
Luke Street
a156c3697f
Appease clippy
2024-04-03 00:18:16 -06:00
Luke Street
3497d38ea3
Version 0.7.6
2024-04-03 00:13:42 -06:00
Luke Street
d0f39f1d82
Support global labels in REL creation (_savegpr, etc)
2024-04-03 00:13:15 -06:00
Luke Street
ccfbfd1a5a
Fix for jumptable naming in RELs
2024-04-03 00:12:46 -06:00
Luke Street
e9a9ed0453
Fixes for switch analysis
...
- When finalizing a block, restart analysis at
the first block
- Check for default case in jump table entries
2024-04-03 00:11:58 -06:00
Luke Street
9249fa67b8
ci: Update actions versions
2024-03-13 18:31:42 -06:00
Luke Street
7fd039722d
Format & use syntect regex-fancy
...
The onig crate no longer builds
in CI with cargo-zigbuild.
2024-03-13 18:30:15 -06:00
Luke Street
d727110262
Update all dependencies & support new demangle flag
...
- Support `--mw-extensions` flag for demangle
- Fix relocation handling for object crate upgrade
2024-03-13 18:23:09 -06:00
Luke Street
b829e15438
Rework .splitmeta, now .note.split
...
Uses actual ELF .note format, which is
more standard and handled better by mwld.
2024-03-04 18:12:20 -07:00
Luke Street
96b13be11d
Allow overriding jump table size analysis
...
When the analyzer detects a jump table,
it will now check for an existing object
symbol at that address, using that size
if present.
2024-03-04 18:11:31 -07:00
Luke Street
4f8a9e6fab
Write .splitmeta section in split objects
...
This enables showing the original address of
symbols in objdiff, as well as `elf disasm`
on split objects retaining the original
addresses.
2024-02-28 22:27:38 -07:00
Robin Avery
a2cae4f82a
Check if git tag matches Cargo version when releasing ( #44 )
...
* Check if git tag matches Cargo version when releasing
* Specify `bash` explicitly
2024-02-28 21:15:04 -07:00
Luke Street
a41745fb97
Version 0.7.4
2024-02-28 19:39:13 -07:00
Robin Avery
a94edb573f
Emit an error code when `dol diff` does not match ( #43 )
...
* Emit an error code when `dol diff` does not match
* `exit(1)` instead of `bail`
2024-02-28 19:18:58 -07:00
Chippy
807dc6a440
Rename and output GCC extensions ( #40 )
...
Outputs GCC Source Info extensions
Add asm language to support DWARF emitted by MWCC MIPS assembler
Update MwOverlayBranch handling
2024-02-20 20:56:49 -07:00
1superchip
2784859c4f
Handle more CompileUnit attributes in DWARF ( #38 )
...
* Handle more DWARF CompileUnit attributes
Handle comp_dir and add two unknown attributes
* Remove comment about unknown attributes
2024-02-19 16:13:35 -07:00
Luke Street
9a6cb70ff8
Add `ar extract` command
2024-02-09 15:00:09 -07:00
Luke Street
4a84975648
dol apply: Don't apply gap symbols
...
Also don't overwrite "unknown" scope
with global.
Fixes #30
2024-01-24 23:23:05 -07:00
Luke Street
26cc6a13b4
shasum: Support `-o` in hash mode
...
Fixes #32
2024-01-24 23:21:55 -07:00
Luke Street
f71931838c
Sanitize '$' in split filenames
...
Fixes #29
2024-01-24 23:08:45 -07:00
Luke Street
7b7c8ce251
Add `noexport` attr to symbols.txt
...
Rename `auto_force_active` to `export_all`.
This is a better solution to code_merging, as
individual functions can be marked `noexport`.
2024-01-14 13:58:18 -07:00
Luke Street
1614997108
ci: Fix linux-i686 artifact name (previously linux-x86)
2024-01-13 22:02:52 -07:00
Luke Street
968f50ebed
Add `auto_force_active` option (disable to support `-code_merging`)
...
Fixes #13
2024-01-13 21:54:10 -07:00
Benjamin Moir
5a3256b2b6
Infer anonymous unions from type layout ( #26 )
...
* Infer anonymous unions from type layout
* Add comments to signify inferred types
* Improve union detection
* Fix some output weirdness
* Handle some more anonymous union edge cases
* Change union offset validation
* Skip anonymous unions with less than 2 members.
2024-01-13 21:42:39 -07:00
Benjamin Moir
9f8c55efe9
Support anonymous type names as seen in PS2 DWARF ( #25 )
2024-01-07 08:36:34 -07:00
Benjamin Moir
6b59c677d4
Add support for MwOverlayBranch ( #24 )
...
* Add support for MwOverlayBranch
* Make clippy happy
* cargo fmt
2024-01-07 08:02:01 -07:00
Luke Street
59fe8069f8
Analyzer fix for fallthrough switch cases
...
Fixes #23
2024-01-06 22:57:41 -07:00
Luke Street
ee3b297f76
Add bug report issue form
2024-01-06 22:34:00 -07:00
Luke Street
58b6d7c7d5
Avoid duplicate unit names when auto-splitting
...
Fixes #20
2024-01-06 21:57:42 -07:00
Luke Street
85e044463e
Support matching multiple symbols with signatures
...
Half of #20
2024-01-06 18:31:33 -07:00
Luke Street
458d0599f5
dwarf dump: Emit address range for compile units and functions
2024-01-06 17:51:09 -07:00
Luke Street
d9612cc9b7
Analyzer improvements for ProDG (WIP)
...
Fixes #19
2024-01-06 16:05:04 -07:00
Luke Street
c44846d73f
Allow absolute relocations to linker generated symbols
...
Fixes #15
2024-01-06 11:47:17 -07:00
Luke Street
8e7de9588f
cargo fmt
2024-01-06 10:29:51 -07:00
Luke Street
3bcfaef4fe
Zero out relocations before disassembling
...
Fixes an issue where an addi with relocation
can be disassembled as subi
2024-01-06 10:28:01 -07:00
Benjamin Moir
dd23fef4f7
Support some more MetroWerkz DWARF extensions ( #22 )
...
* Support FT_MW_int128
* Support OP_MW_FPREG
* Support AT_MW_mangled on local variables
* cargo fmt
---------
Co-authored-by: Luke Street <luke@street.dev>
2024-01-02 10:33:07 -07:00
Luke Street
fdf421a5d8
Update dependencies (advisory fix)
2023-12-20 20:43:39 -07:00
Luke Street
d470f7aec6
Version 0.6.5
2023-12-20 20:30:48 -07:00
Luke Street
227153193e
Sanitize auto-function-split names
...
Fixes #16
2023-12-20 20:28:30 -07:00
Luke Street
2681e51443
Don't double remove obj path extension
...
Don't remember why I had it like this
Fixes #17
2023-12-20 20:22:00 -07:00
Luke Street
6f2bb62082
Downgrade vis_flags/active_flags error to warn
...
Fixes #18
2023-12-20 19:11:23 -07:00
Sewer
d43b95a0e4
Added: Support for Little Endian DWARF, Inline Arrays & Additional MetroWerks Extensions ( #14 )
...
* Added: Minimal Required Changes to Dump Sonic Heroes (PS2)
* Added: Switch for Little Endian DWARF Dump
* Added: Support for Array Ordering
* Added: Big/Little Endian Variants of u32_from_bytes
* Changed: Detect bitness from .elf header.
* Changed: Use Proper MetroWerks Names
* Changed: Use Endianness from File API
* Refactor DWARF endian handling & some fixes
* Undo accidental formatting changes
---------
Co-authored-by: Luke Street <luke@street.dev>
2023-12-11 13:07:29 -05:00
Luke Street
0cfc5df20b
Overhauled common BSS support & more
...
- With a map, attempts to detect and handle common BSS automatically
- With a map, attempts to detect and correct inflated common BSS bug (< GC 2.7 linker)
- Support for "stripped" symbols, sometimes required to match inflated common BSS sizes
- Warns on duplicated TUs in a map (other than common BSS)
- Automatically adds `comment:0` to `.s` TUs from a map (avoids linker crash)
2023-11-29 18:31:35 -05:00
Luke Street
5c22c8850e
Support `.BINARY` section
...
Resolves #12
2023-11-29 18:14:48 -05:00
Luke Street
4cb6f4f85d
dwarf dump: Better support for GCC/ProDG & various fixes
...
- Displays subroutine "static" and "inline" if present
- Displays subroutine labels, blocks and inlines if present
- Displays struct member visibility if present
- Skips tags that can't be processed rather than bailing
2023-11-27 16:35:12 -05:00
Luke Street
5128ff67b2
bin2c: Honor symbol alignment
2023-11-26 01:12:34 -05:00
Luke Street
dd60128ba0
Extract embedded assets to binary and C header
...
Adds an "extract" list to project configuration:
```
extract:
- symbol: SomeData
binary: Lib/SomeData.bin
header: Lib/SomeData.inc
```
This example extracts the data of symbol
`SomeData` to `out_dir/bin/Lib/SomeData.bin`,
and a C array representation to
`out_dir/include/Lib/SomeData.inc`.
Resolves #11
2023-11-26 00:35:05 -05:00
Luke Street
038354a37e
Version 0.6.1
2023-11-22 13:01:42 -05:00
Luke Street
e3d6ef8492
dwarf dump: Fix padding handling within tag children
...
Fixes #9
2023-11-22 12:59:03 -05:00