mirror of https://github.com/encounter/objdiff.git
Update README.md
This commit is contained in:
parent
543bff727e
commit
8bbfcc6f45
57
README.md
57
README.md
|
@ -6,6 +6,7 @@
|
||||||
A local diffing tool for decompilation projects. Inspired by [decomp.me](https://decomp.me) and [asm-differ](https://github.com/simonlindholm/asm-differ).
|
A local diffing tool for decompilation projects. Inspired by [decomp.me](https://decomp.me) and [asm-differ](https://github.com/simonlindholm/asm-differ).
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
- Compare entire object files: functions and data.
|
- Compare entire object files: functions and data.
|
||||||
- Built-in symbol demangling for C++. (CodeWarrior, Itanium & MSVC)
|
- Built-in symbol demangling for C++. (CodeWarrior, Itanium & MSVC)
|
||||||
- Automatic rebuild on source file changes.
|
- Automatic rebuild on source file changes.
|
||||||
|
@ -14,9 +15,11 @@ Features:
|
||||||
- Click to highlight all instances of values and registers.
|
- Click to highlight all instances of values and registers.
|
||||||
|
|
||||||
Supports:
|
Supports:
|
||||||
|
|
||||||
- PowerPC 750CL (GameCube, Wii)
|
- PowerPC 750CL (GameCube, Wii)
|
||||||
- MIPS (N64, PS1, PS2, PSP)
|
- MIPS (N64, PS1, PS2, PSP)
|
||||||
- x86 (COFF only at the moment)
|
- x86 (COFF only at the moment)
|
||||||
|
- ARM (DS)
|
||||||
|
|
||||||
See [Usage](#usage) for more information.
|
See [Usage](#usage) for more information.
|
||||||
|
|
||||||
|
@ -58,40 +61,30 @@ file as well. You can then add `objdiff.json` to your `.gitignore` to prevent it
|
||||||
```json5
|
```json5
|
||||||
// objdiff.json
|
// objdiff.json
|
||||||
{
|
{
|
||||||
"custom_make": "ninja",
|
custom_make: "ninja",
|
||||||
"custom_args": [
|
custom_args: ["-d", "keeprsp"],
|
||||||
"-d",
|
|
||||||
"keeprsp"
|
|
||||||
],
|
|
||||||
|
|
||||||
// Only required if objects use "path" instead of "target_path" and "base_path".
|
// Only required if objects use "path" instead of "target_path" and "base_path".
|
||||||
"target_dir": "build/asm",
|
target_dir: "build/asm",
|
||||||
"base_dir": "build/src",
|
base_dir: "build/src",
|
||||||
|
|
||||||
"build_target": true,
|
build_target: true,
|
||||||
"watch_patterns": [
|
watch_patterns: ["*.c", "*.cp", "*.cpp", "*.h", "*.hpp", "*.py"],
|
||||||
"*.c",
|
objects: [
|
||||||
"*.cp",
|
|
||||||
"*.cpp",
|
|
||||||
"*.h",
|
|
||||||
"*.hpp",
|
|
||||||
"*.py"
|
|
||||||
],
|
|
||||||
"objects": [
|
|
||||||
{
|
{
|
||||||
"name": "main/MetroTRK/mslsupp",
|
name: "main/MetroTRK/mslsupp",
|
||||||
|
|
||||||
// Option 1: Relative to target_dir and base_dir
|
// Option 1: Relative to target_dir and base_dir
|
||||||
"path": "MetroTRK/mslsupp.o",
|
path: "MetroTRK/mslsupp.o",
|
||||||
// Option 2: Explicit paths from project root
|
// Option 2: Explicit paths from project root
|
||||||
// Useful for more complex directory layouts
|
// Useful for more complex directory layouts
|
||||||
"target_path": "build/asm/MetroTRK/mslsupp.o",
|
target_path: "build/asm/MetroTRK/mslsupp.o",
|
||||||
"base_path": "build/src/MetroTRK/mslsupp.o",
|
base_path: "build/src/MetroTRK/mslsupp.o",
|
||||||
|
|
||||||
"reverse_fn_order": false
|
reverse_fn_order: false,
|
||||||
},
|
},
|
||||||
// ...
|
// ...
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -108,7 +101,7 @@ These are the **intended result** of the match.
|
||||||
These are objects built from the **current source code**.
|
These are objects built from the **current source code**.
|
||||||
|
|
||||||
`build_target`: If true, objdiff will tell the build system to build the target objects before diffing (e.g.
|
`build_target`: If true, objdiff will tell the build system to build the target objects before diffing (e.g.
|
||||||
`make path/to/target.o`).
|
`make path/to/target.o`).
|
||||||
This is useful if the target objects are not built by default or can change based on project configuration or edits
|
This is useful if the target objects are not built by default or can change based on project configuration or edits
|
||||||
to assembly files.
|
to assembly files.
|
||||||
Requires the build system to be configured properly.
|
Requires the build system to be configured properly.
|
||||||
|
@ -121,18 +114,18 @@ If not specified, objdiff will use the default patterns listed above.
|
||||||
`objects` _(optional)_: If specified, objdiff will display a list of objects in the sidebar for easy navigation.
|
`objects` _(optional)_: If specified, objdiff will display a list of objects in the sidebar for easy navigation.
|
||||||
|
|
||||||
> `name` _(optional)_: The name of the object in the UI. If not specified, the object's `path` will be used.
|
> `name` _(optional)_: The name of the object in the UI. If not specified, the object's `path` will be used.
|
||||||
>
|
>
|
||||||
> `path`: Relative path to the object from the `target_dir` and `base_dir`.
|
> `path`: Relative path to the object from the `target_dir` and `base_dir`.
|
||||||
> Requires `target_dir` and `base_dir` to be specified.
|
> Requires `target_dir` and `base_dir` to be specified.
|
||||||
>
|
>
|
||||||
> `target_path`: Path to the target object from the project root.
|
> `target_path`: Path to the target object from the project root.
|
||||||
> Required if `path` is not specified.
|
> Required if `path` is not specified.
|
||||||
>
|
>
|
||||||
> `base_path`: Path to the base object from the project root.
|
> `base_path`: Path to the base object from the project root.
|
||||||
> Required if `path` is not specified.
|
> Required if `path` is not specified.
|
||||||
>
|
>
|
||||||
> `reverse_fn_order` _(optional)_: Displays function symbols in reversed order.
|
> `reverse_fn_order` _(optional)_: Displays function symbols in reversed order.
|
||||||
Used to support MWCC's `-inline deferred` option, which reverses the order of functions in the object file.
|
> Used to support MWCC's `-inline deferred` option, which reverses the order of functions in the object file.
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
|
@ -150,8 +143,8 @@ $ cargo run --release --features wgpu
|
||||||
|
|
||||||
Licensed under either of
|
Licensed under either of
|
||||||
|
|
||||||
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
||||||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
at your option.
|
at your option.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue