由于在运行时将程序与系统库链接在一起,因此程序1)中执行的指令数量很高?
是的,动态链接以及CRT(C运行时)启动文件。
使用
-static,并将计数减少1/10。
这样就剩下了CRT启动文件,这些文件在调用之前
main和之后进行处理。
如何确保指令计数仅是程序1)中主要功能的计数?
测量一个空的
main,然后从将来的测量中减去该数字。
除非您的指令计数器更聪明,并且在可执行文件中查看其跟踪过程的符号,否则它将无法分辨出哪个代码来自何处。
以及程序2)向调试器报告的方式。
这是因为有 是 在该程序中没有其他的代码。并不是说您以某种方式帮助调试器忽略了某些指令,而是您在编写程序时没有自己未放入的任何指令。
如果你想看看 真正 发生在你运行GCC的输出
gdb a.out,
b_start,
r,和单步执行。一旦深入了解通话树,您就很有可能了。
fin因为您不想单步执行一百万条指令甚至一万条指令,所以将要使用它来完成当前功能的执行。



