LINUX.ORG.RU

Как заставить GDB при трассировке не показывать работу libc

 , , ,


0

1

Собрал себе glibc с поддержкой отладки, чтобы иметь возможность использовать valgrind, но после этого gdb при трассировке программы начинает отображать номера строк в файлах библиотек (причём portage исходники библиотек удаляет и поэтому gdb не может показать ничего). Как это убрать, не выключая поддержку отладки обратно? Выглядит это вот так:

23	    puts("12345");
(gdb) 
_IO_puts (str=0x401268 "12345") at ioputs.c:34
34	ioputs.c: Нет такого файла или каталога.
(gdb) 
36	in ioputs.c
(gdb) 
strlen () at ../sysdeps/x86_64/strlen.S:66
66	../sysdeps/x86_64/strlen.S: Нет такого файла или каталога.
(gdb) 
67	in ../sysdeps/x86_64/strlen.S
(gdb) 
68	in ../sysdeps/x86_64/strlen.S



Последнее исправление: watashinoshi (всего исправлений: 1)

А в чём именно задача? Просто на первый взгляд пожелание выглядит самую малость необычно - чаще разделение не между «мой код/не мой код», а между «код в который надо зайти/код в который не надо зайти».

И решается установкой breakpoint или осмысленным выбором между командами step и next (перейти к следующей строке текущего стек-фрейма, не заходя внутрь функций) или finish (дождаться выхода из функции, заходить в которую оказалось не нужно).

Если же хочется получить полную трассировку, то по идее можно http://stackoverflow.com/questions/764382/how-to-print-the-next-n-executed-li...

GPFault ★★
()
Ответ на: комментарий от watashinoshi

Открой для себя «s» (с заходом внутрь функции), «n» (без захода) и «fin» (для случаев, когда все же попал не туда, куда надо).

kawaii_neko ★★★★
()
Ответ на: комментарий от GPFault

Спасибо, я из всех этих команд только step знал, теперь буду знать остальные.

watashinoshi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.