怎样才能制做免费网站,golang 网站开发 开源,选择seo网站排名优化,网站过度优化的表现目录
一、gdb概述#xff1a;
二、list#xff08;查看源文件代码#xff09;#xff1a;
三、run#xff08;运行程序#xff09;#xff1a;
四、断点相关操作#xff1a;
1、查看断点#xff1a;
2、在指定行设置断点#xff1a;
3、在函数入口处设置断…目录
一、gdb概述
二、list查看源文件代码
三、run运行程序
四、断点相关操作
1、查看断点
2、在指定行设置断点
3、在函数入口处设置断点
4、删除断点
5、禁用断点 / 启用断点
五、逐过程调试 / 逐语句调试
1、逐过程调试
2、逐语句调试
六、常显示 / 去除常显示
1、常显示
2、去除常显示
3、打印变量名
七、跳转至指定行与退出gdb
1、跳转至指定行
2、退出gdb 一、gdb概述 程序在发布时会有两种版本Debug版本和Release版本。Debug版本和Release版本其实就是优化级别的区别Debug称为调试版本编译的结果通常包含有调试信息没有做任何优化方便开发人员进行调试。Release称为发布版本不会携带调试信息同时编译器对代码进行了很多优化使代码更小速度更快发布给用户使用给用户使用以更好的体验。在我们申请内存时Debug模式会多申请一部分空间分布在内存块的前后用于存放调试信息。在Release模式下编译器会对代码进行很多的优化操作所以Release模式比Debug模式花的时间也会更多。 而在Linux下 gcc/g 下生成的二进制程序默认是Release版本。要想进行调试操作就得要在源代码生成二进制程序时加上 -g 选项将其改为Debug模式。 在接下来使用gdb调试时以以下代码为样例进行演示 #include stdio.hint Sum(int n)
{int i 1, sum 0;for (; i n; i){sum i;}return sum;
}int main()
{printf(%d\n, Sum(100));return 0;
} 二、list查看源文件代码
list 指令可以在命令行显示源文件对应的代码一次显示十行可以简写成l有两种用法
1l 行号 从对应行号开始在命令行输出源文件代码一次显示十行 2l 函数名 在命令行中输出对应函数的源代码 三、run运行程序
run指令可以直接运行程序如果程序没有断点则将程序运行到结束
四、断点相关操作
1、查看断点
info break可简写为i b查看断点 2、在指定行设置断点
break 行号可简写为b 行号
例如分别在14、15、16行处打一个断点 3、在函数入口处设置断点
break 函数名可简写为b 函数名 例如在函数Sum处打一个断点
4、删除断点
删除指定断点delete Num可简写为d NumNum为断点的序号 删除全部断点delete break可简写为d break 5、禁用断点 / 启用断点
禁用指定断点disable Num Num为断点的序号 启用指定断点enable Num Num为断点的序号 五、逐过程调试 / 逐语句调试
1、逐过程调试
step可以简写为s 2、逐语句调试
next可以简写为n 六、常显示 / 去除常显示
1、常显示
display 变量名 / 地址 每次执行语句时都会在命令行中打印常显示变量的值 2、去除常显示
undisplay 对应的编号 3、打印变量名
p 变量名 在命令行中打印对应变量的值 七、跳转至指定行与退出gdb
1、跳转至指定行
until 指定行 2、退出gdb
quit可简写为q