Можно ли позволить GDB распознавать символы препроцессора? - PullRequest
6 голосов
/ 20 марта 2012

У меня есть много-много операторов препроцессора C #define, которые значительно облегчают мое программирование на C. Однако при отладке с помощью GDB «метки» препроцессора не учитываются в списке символов.

Есть ли способ заставить GDB распознавать метки #define d?

Ответы [ 2 ]

9 голосов
/ 20 марта 2012

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

gcc -gdwarf-2 -g3

Мы передаем флаги -gdwarf-2 и -g3, чтобы компилятор включал информация о макросах препроцессора в отладочной информации.

Или вы можете попробовать -ggdb.

3 голосов
/ 20 марта 2012

#define символы обычно не включаются как часть отладочной информации. const переменные (или встроенные функции для функционально-подобных макросов ) обычно являются лучшей идеей, и по многим причинам, чем это (например, определение области видимости, безопасность типов, множественные оценки и т. Д.). Я рекомендую использовать их вместо символов препроцессора, когда это возможно.

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