You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A machine code debugger that allows for live viewing of memory, current CPU registers, disassembly etc. This would be similar to many applications that use x86 debugging instructions to step trough an exe file although by integrating it with an emulator it can be used to figure out what an program actually are doing.
A profiler that counts instruction executions to figure out where a program spends time.
A live patcher. A patch specifies a memory location or a function call to replace with a call to a target native dll/so file. This can be used both to speed up programs and also to modify their behavior. Potentially this can be done in a way that is invisible to the guest application by having the emulator just recognize where the program counter enters the code to replace.
For live patching it is useful to be able to replace parts of a function. For example the beginning of main could be replaced with native code that does something that is useful to do in native host-optimized code but then still run parts of the main function. It could also call some of the functions that are called from the original main functions while replacing others with target native code. This would allow an application to be gradually rewritten and translated to a modern programming language. Although it will only make sense to patch parts where features or performance can be improved.
The text was updated successfully, but these errors were encountered:
I will do a bit more thinking on the debugger part of this issue as I see that there are a primitive debugger already implemented. The first thing that comes to mind is that there are no restart button. Also neither register content nor memory can be edited. Saving the application state (think action replay) in a format that can be reloaded would also be useful both in the debugger and directly from the emulator.
As for profiling that doesn't seem to be implemented at all. All I can think of here is to count how often the program counter visits a memory location and run an instruction.
The text was updated successfully, but these errors were encountered: