104 Write a debugger plugin
- Adding the debugger registers profile into the shlr/gdb/src/core.c
- Adding the registers profile and architecture support in the librz/debug/p/debug_native.c and librz/debug/p/debug_gdb.c
- Add the code to apply the profiles into the function
rz_debug_gdb_attach(RzDebug *dbg, int pid)
If you want to add support for the gdb, you can see the register profile in the active gdb session using command maint print registers
.
104.1 More to come…
- Related article: http://rizin.today/posts/extending-r2-with-new-plugins/
Some commits related to “Implementing a new architecture”
- Extensa: https://github.com/rizinorg/rizin/commit/6f1655c49160fe9a287020537afe0fb8049085d7
- Malbolge: https://github.com/rizinorg/rizin/pull/579
- 6502: https://github.com/rizinorg/rizin/pull/656
- h8300: https://github.com/rizinorg/rizin/pull/664
- GBA: https://github.com/rizinorg/rizin/pull/702
- CR16: https://github.com/rizinorg/rizin/pull/721/ && 726
- XCore: https://github.com/rizinorg/rizin/commit/bb16d1737ca5a471142f16ccfa7d444d2713a54d
- SharpLH5801: https://github.com/neuschaefer/rizin/commit/f4993cca634161ce6f82a64596fce45fe6b818e7
- MSP430: https://github.com/rizinorg/rizin/pull/1426
- HP-PA-RISC: https://github.com/rizinorg/rizin/commit/f8384feb6ba019b91229adb8fd6e0314b0656f7b
- V810: https://github.com/rizinorg/rizin/pull/2899
- TMS320: https://github.com/rizinorg/rizin/pull/596
104.2 Implementing a new pseudo architecture
This is a simple plugin for z80 that you may use as example:
- https://github.com/rizinorg/rizin/commit/8ff6a92f65331cf8ad74cd0f44a60c258b137a06