ltrace和strace工具中的行号信息

时间:2011-07-24 09:31:54

标签: c strace ltrace re-engineering

我是否可以查看行号和文件名(对于我使用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的任何并行工具选项?

3 个答案:

答案 0 :(得分:5)

您可以在-istrace中结合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/