Он использует объект []. Когда массив заполнен, он создает новый массив, размер которого на 50% больше, и копирует текущие элементы в новый массив. Это происходит автоматически.
На мой взгляд, наиболее полезные команды gdb (помимо всех уже перечисленных):
Наконец, при отладке через медленная ссылка, текстовый интерфейс может пригодиться. Чтобы использовать его, запустите GDB с переключателем командной строки - tui
.
Сценарии - хорошая возможность GDB.
После запуска программы вы увидите, что ваш скрипт время от времени запускается при возникновении точки останова.
Кроме того, что уже было опубликовано, я также использую:
signal SIGNAL noprint nostop
для некоторых пользовательских сигналы, которые не представляют реального интереса при отладке PS: Кстати, одна причина, по которой я лично люблю gdb. состоит в том, что он поддерживает завершение табуляции почти для всего (команды gdb, символы в таблице символов, функции, функции-члены и т. д.). На мой взгляд, это довольно хороший прирост производительности.
GDB - не моя специальность, но вот что я использую:
bt
перечислить стек вверх
, вниз
, двигаясь внутрь стек до
продолжайте до тех пор, пока не будет достигнута строка с номером, большим, чем текущий - для выхода из цикла watch [expr]
прервите программу при изменении expr ... но в основном i использовать ddd как интерфейс к gdb
См. Руководство пользователя по адресу http://sources.redhat.com/gdb/current/onlinedocs/gdb_toc .html .
Есть также пара применений, которые напрямую не связаны с отладкой. Например это может использоваться для оценки выражений C:
(gdb) printf "%lu\n", (unsigned long)(-3L) 4294967293
Введите Ctrl-X Ctrl-A, чтобы открыть простое окно с предварительным просмотром исходного кода.
Я использую переключатель gdb -tui
для создания отличного «текстового пользовательского интерфейса» (своего рода графический интерфейс в текстовом режиме). Он поддерживает несколько окон и, как правило, намного удобнее, чем использование команды 'list' (поскольку она показывает источник в окне sep)
Some time ago I found cgdb:
This is a curses (color console) based frontend for gdb that made my life a lot happier when I was restricted to debugging in a console window.