пятница, 1 февраля 2019 г.

Новое о gdb

Вот интересно - как посмотреть значение константы, которая задана с помощью #define? Если просто сделать print CONST - отладчик скажет, что он никакого CONST не знает. Как быть? При компиляции gcc задать флаг не -g, а -g3. Тогда задефайненные константы можно будет распечатать.

Можно ли вызывать функции отлаживаемой программы в gdb? Можно, используя call. Это хорошо для отладочной печати - у нас сложная структура, пишем функцию распечатки, в отладчике вызываем эту функцию. Опять-таки, использовать задефайненные константы в качестве аргументов можно только если программа откомпилирована с -g3.

И совсем интересное. Есть переменная i - обычный индекс для цикла for. Пытаюсь что-нибудь про неё узнать: info address i. Мне пишут Symbol "i" is a variable with complex or multiple locations . Это как? Несколько мест расположений? У меня правда две i - локальная в main и локальная в show_arr. Может, это имеется ввиду.

Комментариев нет: