Игнорирование стандартных и расширенных библиотек при отладке с помощью GDB - PullRequest
1 голос
/ 08 декабря 2011

Мне не удалось найти определенный ответ на этот вопрос в Google, поэтому здесь идет речь.

Можно ли игнорировать библиотеки при переходе по коду с использованием GDB?Я пытался отладить простую программу, но мне при этом показывали много периферийного и неинтересного кода - меня действительно не интересует отладка реализации стандартной библиотеки liblinux или библиотеки boost.Я хотел бы, чтобы GDB просто запускался, пока не достигнет моего собственного кода - возможен ли такой фильтр?Я использую Emacs.

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Полагаю, вы можете заметить, что вы войдете во внешнюю библиотечную функцию непосредственно перед выполнением команды step. Самое простое решение - ввести команду next вместо step, когда ваш маркер находится на вызове функции внешней библиотеки.

0 голосов
/ 08 декабря 2011

Вы можете удалить символы отладки из библиотеки, которые вы не собираетесь отлаживать.

strip --strip-debug <lib_file.a>

пересобрать приложение, файлы библиотеки не будут отображаться в отладчике.Таким образом, «шаг» к вашему вызову lib будет таким же, как и «следующий» в GDB.

ИЛИ

Вы также можете не использовать опцию -g при компиляции файлов lib.

...