理想的病房 - 调试
type: channel
link: https://blog.lxalxy.com/tag/%E8%B0%83%E8%AF%95/
items: gdb学习笔记

gdb学习笔记
type: item
date: 2019-02-01T07:56:00+00:00
description: 今天简单的学习了一下gdb的用法，现将一些常用操作记录下来。调试前，要注意利用gcc编译源代码时，需要指定-g选项，以便产生带有调试信息的目标代码。最常用的几个命令如下所示：命令命令缩写功能listl显示源代码breakb设置断点runr开始运行displaydisp查看变量的值watch 监视变量的变化steps单步运行，进入子函数nextn单步运行，跳过子函数continuec继续运行至断点file 选择需要调试的程序quitq退出gdbp *array@len 查看数组，array是数组首元素指针，len是数组长度gdb的使用步骤如下：编译源代码gcc test.cpp -g -o test -lstdc++进入调试环境gdb test或gdb file test查看源代码# 默认从起始位置显示10行代码 list # 显示以第n行为中心的10行代码 list n # 显示以functionname函数为中心的10行代码 list functionname # 显示未显示的前面的代码 list -设置断点# 设置断点在第n行 break n运行程序# 全速运行 run查看变量的值# 查看变量varName的值 display varName单步运行# 进入子函数，即Step in step # 跳过子函数，即Step over next查看数组的值# 查看首元素指针为array，长度为len的数组的值 p *array@len # 一直显示数组的值 display *array@len