我是否可以查看行号和文件名(对于使用ltrace/strace运行的程序)以及库调用/系统调用信息。
例如:
code section :: ptr = malloc(sizeof(int)*5); (file:code.c, line:21)
ltrace或任何其他工具:malloc(20) :: code.c::21
我已经尝试了ltrace/strace的所有选项,但找不到获取此信息的方法。
如果不能通过ltrace/strace,我们有针对GNU/Linux的并行工具选项吗?
发布于 2011-07-24 18:53:54
您可以在strace
和ltrace
中使用-i
选项(在调用时输出指令指针),并结合使用addr2line
来解析对代码行的调用。
发布于 2011-07-24 17:53:17
不不可能。你为什么不使用gdb来达到这个目的呢?
当你用gcc编译应用程序时,使用-ggdb标志把调试器信息放到你的程序中,然后用gdb或等效的前端(ddd或类似的)运行你的程序。
下面是gdb的快速手册,可以帮你解决一些问题。http://www.cs.cmu.edu/~gilpin/tutorial/
发布于 2013-09-12 21:09:01
您可以使用strace-plus来收集与每个系统调用相关联的堆栈跟踪。http://code.google.com/p/strace-plus/
https://stackoverflow.com/questions/6806037
复制相似问题