LINUX.ORG.RU

[GDB] как сделать ltrace-подобное поведение?

 


0

1

Есть большая огромная программа, собранная с отладкой. Хочу знать, какие библиотечные вызовы происходят в определенный момент работы.

ltrace по какой-то причине не работает, да и если бы работал, то не помог, т.к. чтобы дойти до необходимого момента пришлось бы промотать километры ltrace-лога - инициализация, загрузка различной фигни и пр.

сейчас делаю так:

gdb application
> rbreak gtk_.*
...
> commands
> silent
> bt 1
> continue
> end

но данный подход выбирает только GTK-вызовы, а мне нужны вообще все. Тыкать по библиотекам мне надоело.

rbreak .* вызывает расход памяти овер 4 Гб и gdb сигфолится.

Каюсь, Debugging with GDB не читал полностью, только листал. Хотеть рецепт из вашей поваренной книги. Торжественно обещаю прочитать Debugging with GDB на выходных.

да и если бы работал, то не помог, т.к. чтобы дойти до необходимого момента пришлось бы промотать километры ltrace-лога

man grep

anonymous
()
Ответ на: комментарий от anonymous

тогда уже не греп, а тейл.

ты не понимаешь всей серьезности ситуации - если начать снимать логи с самого начала загрузка займет несколько часов. я же хочу ltrace на ~ 1 секунду уже на запущенной и проинициализированной программе.

fork_you
() автор топика
Ответ на: комментарий от fork_you

я же хочу ltrace на ~ 1 секунду уже на запущенной и проинициализированной программе

А чем ltrace -p pid не нравится?

kemm
()

данный подход выбирает только GTK-вызовы, а мне нужны вообще все

Поставь побольше брякпойнтов, в чем проблема?

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

в том и фишка, слишком много мест. памяти не хватает.

fork_you
() автор топика
Ответ на: комментарий от kemm

хм, не знал что ltrace умеет цепляться к уже запущенным процессам. спасибо, попробую.

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