* Mach APIs instead of ptrace (probably a lot of changes).
* Mach-O instead of ELF.
* Some other APIs instead of /proc/<pid>/{maps,stat,...}
* Probably arm in addition to x86?
* Dealing with security stuff.
* Probably lots of other small differences everywhere.
Limiting the scope to one OS and CPU arhitecture was a big part of how I was able to make a usable debugger in a reasonable time.
* Mach APIs instead of ptrace (probably a lot of changes).
* Mach-O instead of ELF.
* Some other APIs instead of /proc/<pid>/{maps,stat,...}
* Probably arm in addition to x86?
* Dealing with security stuff.
* Probably lots of other small differences everywhere.
Limiting the scope to one OS and CPU arhitecture was a big part of how I was able to make a usable debugger in a reasonable time.