在使用跟踪时,我发现源代码中没有列出一些函数,而是试图找到它们以放置断点。只有当我以程序集格式查看源时,这些函数才会出现。
我和我的高年级学生谈过,他们告诉我,如果任何函数只被调用一次,那么它将由Trace优化,并以内联的形式出现,因此可以在汇编中看到。
我的问题是:
发布于 2009-10-08 11:28:45
有几件事:
希望这能有所帮助。
-hjsblogger
发布于 2009-10-06 21:40:33
优化是由编译器完成的,而不是由劳特巴赫完成的。编译器试图优化其汇编语言输出,默认设置通常只调用一次内联函数。
要为测试目的覆盖这些优化,可以使用编译器标志--no。
发布于 2009-10-06 10:46:18
内联只能由编译器调用一次的函数。
它的优点是节省了函数调用的开销(运行时、代码空间和堆栈空间),您仍然可以将代码以模块化的方式编写成几个函数。
缺点是调试变得更加困难,因为在调试过程中,函数与调用者混淆了。
W.r.t.您的跟踪工具的行为您的问题是相当不清楚的。
https://stackoverflow.com/questions/1524210
复制相似问题