-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
enhancementNew feature or requestNew feature or request
Description
- 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.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request