Включение дополнительной информации об отладке в исходный файл для отладки с использованием gdb в Code::Blocks

При отладке исходного кода C++ в Code::Blocks точки, переданные параметру функции или члены структур данных, просто отображаются в качестве их адреса.

После некоторых исследований я обнаружил, что могу ввести пользовательские часы как @<числовой размер переменной-содержащего-размера>, чтобы они отображались в виде массива, однако я не могу редактировать отображение по умолчанию на состав.

Мне было интересно, есть ли какой-нибудь способ разметить исходный код специальными комментариями, которые можно проанализировать во время отладки, чтобы автоматизировать это и сделать сложный объект более удобным для просмотра во время отладки.

т.е.

struct {
    size_t n;
    int *p; /* I want gdb to interpreted this symbols as p@n by default */
}

Я также хотел бы иметь возможность сделать аналогичные спецификации для параметров функции.

Во-первых, это даже возможно, я не могу найти в Интернете ничего о разметке источника для помощи gdb, и подозреваю, что он даже не смотрит на источник, так как отладочная информация хранится либо в исполняемом файле, либо в базе данных отладки.

Если есть какой-то способ сделать это, как бы я это сделал?

Примечание: если есть конкретное решение Code::Blocks, я был бы счастлив с этим.

1 ответ

Кажется, что проблема, которую вы имеете, связана не с качеством отладочной информации, а просто с тем, как отладчик отображает значения переменных определенного типа. Это обычно настраивается или сценарий.

Code:: Blocks использует белка сценарий для сценариев отладчика. Расширяя этот скрипт, вы можете сделать отладчик для команды GDB особым образом, а затем анализировать и отображать результат, как вам нравится. Этот gdb_types.script в папке scripts запускается Code::Blocks.

Если вы хотите создать сценарий для самой GDB, то это можно сделать в "Настройках -> Компилятор и отладчик -> Отладчик -> Начальные команды" Code::Blocks, при условии, что сценарий будет выполняться GDB. Затем вы можете вызвать функции, определенные в этом скрипте, из gdb_types.script.

Другие вопросы по тегам