我们如何列出应用程序中调用的所有函数。我尝试使用 GDB,但它的回溯列表仅到主函数调用。
我需要更深入的列表,即主函数调用的所有函数以及从这些被调用函数调用的函数的列表,等等。
有没有办法在 gdb 中得到这个?或者你能给我一些关于如何获得这个的建议吗?
我们如何列出应用程序中调用的所有函数
对于任何实际大小的应用程序,此列表将包含数千个条目,这可能会使其毫无用处。
你可以找到所有的功能defined(但不一定被调用)在应用程序中nm
命令,例如
nm /path/to/a.out | egrep ' [TW] '
您还可以使用 GDB 在每个函数上设置断点:
(gdb) set logging on # collect trace in gdb.txt
(gdb) set confirm off # you wouldn't want to confirm every one of them
(gdb) rbreak . # set a breakpoint on each function
一旦继续,您将为每个调用的函数命中断点。使用disable
and continue
命令前进。我不认为有一种简单的方法可以实现自动化,除非您想使用 Python 脚本。
已经提到过gprof
是另一个不错的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)