rizinorg/rizin

Refactor native debugger

Opened this issue · 8 comments

Currently the native debugger implemented in Rizin is a mess of #ifdef which always brings bugs each time is touched.
The idea behind this refactoring is to split all the native archs into files and just fill a structure with function pointers for each feature that the native debugger code needs.
This allows to cleanup the code and fix all weird behaviors in each OS.

  1. Split all the native OS code in its own file (#4604)
  2. Split all the native arch code for each OS in its own file (#4604)
  3. Ensure the current code is still working (even if bugged) in the same way. (#4604)
  4. Start patching all the various issues in the repo related to the native debugger.

Android and linux must be splitted in its own OS. also any unix compatible shared code can be copied and pasted multiple times.

Hey @wargio can you share a bit more about what file(s) are supposed to be changed ?
By reading the code, I think that the changes are targeted towards debug_native.c . Please correct me if I'm wrong.

That is correct. The issue is that the debugger is full of bugs and quite unreliable because one change in an arch, breaks another arch.
So the idea is to split more in depth the debugger and have os/arch
This way we can reuse the common api and implement whatever is arch specific

Ok thank you very much for the quick response. Can I start working on this issue ?

No need to ask for permission, go for it

Hello @wargio I am almost done with refactoring the code. Can you tell me how should I test my changes ? I have used meson test -C build.

Just open a PR and see what you break. Be sure your branch name starts with dist-

i would not close this since the last point is not done.