在 Linux 机器上,我使用带有 PTRACE_SINGLESTEP 参数的 ptrace 来计算程序的机器指令数。我关注了这篇文章:http ://www.ncsu.edu/it/mirror/ldp/LDP/LGNET/81/sandeep.html 。
然而,结果对我来说似乎很奇怪。对于一个非常简单的程序,计算了超过 95000 条机器指令。测试程序是
int main(void) { return 23; }
这里发生了什么?文章中的代码是错误的吗?(我看不出它有什么问题。)如果没有,是什么原因导致如此简单的程序需要> 95000条指令?