c++ -Wall -g prog.c++ -o prog
gdb prog
Пример изучения тонкостей Си с помощью gdb (см. ссылку)
Переменные в Qt, будучи сложными объектами, при выводе на экран не дают человеко читаемой информации, требуется специальная настройка вывода, которая реализована в проекте pretty-printers.
Настройка:
python import sys, os sys.path.insert(0, os.path.expanduser('~/.gdb/') + 'pretty-printers/') from qt import register_qt_printers register_qt_printers (None) end
Источники: Setup GDB with Qt pretty printers , qt5printers .
Одним из абсолютно необходимых компаньонов gdb является RR , это отладчик 'post mortem', но, в отличие от основного файла, вы можете воспроизвести действие в обратном порядке, если это необходимо. Вы можете двигаться в обратном направлении, шагать в обратном направлении, создавать точки наблюдения, снова бежать вперед и т. д.
.vimrc
" Настройка отладчика (загрузка плагина, расположение окон) autocmd FileType c,cc,cpp,h,hpp,s packadd termdebug autocmd FileType c,cc,cpp,h,hpp,s cabbrev gdb Termdebug let g:termdebug_popup = 0 let g:termdebug_wide = 1
Запуск отладчика в VIM
:gdb
или без настройки алисаов команды
:Termdebug
Установка/удаление точки остановки в vim'е
:Break :Clear
Пробелы в пути проекта
Отладка через termdebug не будет корректно работать, если полный путь к фалам проекта содержит пробелы и/или кириллицу.
В первом случае, будет явная ошибка, во втором не будут отображаться точки останова в тексте программы
-break-insert: Garbage following <location>
Дополнительная информация по ссылке.