Я думаю, что это, возможно, задавали ранее, но я не могу найти тот, который удовлетворял бы моим требованиям.
Я отлаживаю (на самом деле пытаюсь понять) большой проект, пытаясь проанализировать поток кода в различных тестовых пакетах. Но когда я пытаюсь установить точки останова для некоторых файлов, я получаю сообщение об ошибке «не найден исходный файл с именем filename».
Итак, мой вопрос:
- Может ли gdb принимать точки останова только для исходных файлов, в которые входит поток кода .?
- Могу ли я установить точки останова на целые строки файла с чем-то вроде
b filename:*
- Будет ли принята точка останова в заголовочном файле, поскольку заголовочные файлы просто добавляются во время компиляции?
Любые идеи приветствуются.
Редактировать
Я проверил эти проблемы с помощью некоторого кода hello world и нашел те же результаты, которые указаны в одном из ответов. Но моя проблема в реальном проекте все еще остается. Я по-прежнему получаю ту же ошибку, даже когда вижу отредактированный вывод той же строки, который не принимается как точка останова.
Редактировать 2
Я получил это работает, но не понимаю, как и почему это работает .. ??
<code>
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
No source file named /home/neeraj/BTP/trunk/include/header.h:872
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b /home/neeraj/BTP/trunk/src/driver.cpp:2
Breakpoint 1 at 0x806c61a: file ../../../trunk/src/driver.cpp, line 2.
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
Breakpoint 2 at 0x8052fa0: file ../../../trunk/include/header.h:872, line 872.
(gdb)
Какие-нибудь более глубокие идеи ..?