我是否可以查看行号和文件名(对于我使用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的任何并行工具选项?
答案 0 :(得分:5)
您可以在-i
和strace
中结合ltrace
使用addr2line
选项(在通话时输出指令指针)解决对代码行的调用。
答案 1 :(得分:1)
不,这是不可能的。为什么不为此目的使用gdb?
使用gcc编译应用程序时,使用-ggdb标志将调试器信息输入程序,然后使用gdb或等效前端(ddd或类似代码)运行程序
这是一个快速的gdb手册来帮助你。 http://www.cs.cmu.edu/~gilpin/tutorial/
答案 2 :(得分:0)
您可以使用strace-plus来收集与每个系统调用关联的堆栈跟踪。 http://code.google.com/p/strace-plus/