Информация о номере строки в инструментах ltrace и strace - PullRequest
5 голосов
/ 24 июля 2011

Возможно ли, что я могу просмотреть номер строки и имя файла (для моей программы, работающей с 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 ]

5 голосов
/ 24 июля 2011

Вы можете использовать опцию -i (для вывода указателя инструкций во время вызова) в strace и ltrace в сочетании с addr2line для разрешения вызовов в строках кода.

1 голос
/ 24 июля 2011

Нет, это невозможно.Почему бы вам не использовать gdb для этой цели?

Когда вы компилируете приложение с помощью gcc, используйте -ggdb flags, чтобы получить отладочную информацию в вашу программу, а затем запустить вашу программу с помощью gdb или эквивалентного внешнего интерфейса (DDD или аналогичного)

Вот краткое руководство GDB, чтобы помочь вам немного.http://www.cs.cmu.edu/~gilpin/tutorial/

0 голосов
/ 12 сентября 2013

Вы можете использовать strace-plus, который может собирать трассировки стека, связанные с каждым системным вызовом.http://code.google.com/p/strace-plus/

...