Мой первый подход к использованию GDB для отладки - установка точек останова.Это делается так:
prompt> gdb ./x_bstree.c
(gdb) #prompt
(gdb) b 123 #break at line 123
(gdb) r #start program
Теперь ваша программа останавливается в строке 123 вашей программы.Теперь вы можете исследовать переменные в стеке или куче, используя print
.Для переменных стека просто используйте print <varname>
.Для переменных кучи (указателей) используйте print <*varname>
.Не уверен, что есть что-то особенное для изучения переменных стека / кучи?
Конечно, для отладки многопоточных приложений вам нужно будет запустить его в однопоточном режиме и затем выполнить отладку. В противном случае сложно предсказатьчто происходит.
Для всего остального есть обширная документация gdb , и многие сайты также предоставляют шпаргалки gdb