我想"测试" C ++中的一个函数,通过操作它的汇编指令。 做这样的事情最好的方法是什么?
我想一种方法是将它编译或执行,然后由另一个程序启动该.exe然后尝试操作它。 如果被测功能有一个点仍然在运行但是等待某些东西(即用户输入)那么模拟器(启动被测功能的程序)甚至不需要设置某种断点。它。
如何启动程序并操作其汇编指令?
更清楚: 实际上是否可以编写一个简单的模拟器(设置一个断点或没有断点的第一步),然后访问正在运行的测试函数的内存来操作它的汇编指令? 这将是一个非常小而简单的大gdb版本。
答案 0 :(得分:2)
编写(和测试)C ++程序foo.cpp
编译到asembly源(g++ -Wall -S foo.cpp
- 输出将为foo.s。)
REPEAT
修改foo.s
汇编foo.s(gcc foo.s
)
测试生成的可执行文件(./a.out
或gdb ./a.out
)
UNTIL完成