GDB как установить точку останова в связанных файлах? - PullRequest
2 голосов
/ 26 мая 2020

Допустим, у меня есть мой основной файл: main. c, связанный с file1. c и file2. c, где file1 и file2 включают свои файлы заголовков: file1.h, file2.h

Я скомпилировал их так:

gcc main.c file1.c file2.c

, который создает исполняемый файл ./a.out для запуска.

В GDB, как мне установить точку останова в моем основном файле. c? Я пробовал

b main.c

, который дал мне следующий результат:

Make break-point pending on future shared library load? yes or no

, на который я ответил yes, но он никогда не устанавливает точку останова даже после того, как я скажу b 232: номер строки, я даже пробовал b main 232 и b main.c 232, но они тоже не работают ..

Ответы [ 2 ]

3 голосов
/ 26 мая 2020

В качестве альтернативы ответу @ MarcoBonelli вы можете использовать

break main.c:main

или, поскольку в проекте не может быть более одной функции main, вы можете просто использовать

break main

это дает то преимущество, что вам не нужно искать номер строки.

3 голосов
/ 26 мая 2020

Вам нужно следующее (см. GDB do c):

break main.c:232

И не забудьте скомпилировать с -g, иначе информация о номере строки будет не присутствовать в сгенерированной программе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...