网站里的聊天怎么做的,重庆百度竞价托管,什么程序做网站容易优化,百度百度一下顾得泉#xff1a;个人主页
个人专栏#xff1a;《Linux操作系统》 《C/C》
键盘敲烂#xff0c;年薪百万#xff01; 一、gdb的背景 gdb#xff0c;全称为GNU调试器#xff08;GNU Debugger#xff09;#xff0c;是一个功能强大的源代码级调试工具#xff0c;主要…顾得泉个人主页
个人专栏《Linux操作系统》 《C/C》
键盘敲烂年薪百万 一、gdb的背景 gdb全称为GNU调试器GNU Debugger是一个功能强大的源代码级调试工具主要应用于Unix系统以及Linux下的程序开发。它与GCC一样都是源于GNU计划同GCC、Emacs等工具同期诞生。在嵌入式开发中gdb的使用非常广泛对于程序的调试有着不可替代的作用因此对每位嵌入式开发工程师而言都有着至关重要的意义。 gdb提供了多种强大的功能以帮助程序员查看程序在执行过程中的内部状态如设置断点、单步执行、查看变量值等。这些功能都极大地方便了程序员对程序的调试工作。 二、gdb的安装
使用该指令安装gdb调试器(Ubuntu环境) sudo apt-get install gdb 如果有小伙伴使用上述命令无法安装尝试这个命令 yum install -y gdb 三、Debug和Release 默认我们已经创建好了text.c和makefile文件 我们进行make编译 接着我们对text文件进行gdb调试 无法调试为什么呢 1.程序的发布方式有两种debug模式和release模式 2.Linux gcc/g出来的二进制程序默认是release模式release模式下无法调试 3.要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项 我们接下来对makefile文件进行修改加上 -g选项 接下来我们尝试进行调试 可以进行调试了 。 四、gdb的基础使用
1.进入和退出 进入gdb 文件名 退出CTRLd或者quit 2.查看调试的代码 list or l 行号显示指定行之后的代码自动记录最后一条指令 3.断点
1.打印断点三种方式
1.b行号 2.b函数名行号 由于我的疏忽忘记编辑函数就不进行展示了大家可以自行练习
3.b文件名行号适用于多文件下
2.查看断点 info b
3.删除断点 d,注意在删除断点中显示的是编号而不是行号。
4.使能禁用/开启断点
1.禁用disable
这里的y,n代表断点是否启用由上图可以看出3号断点已经被禁用。
2.开启enable
4.代码执行结束 r直接把要调试的代码全部执行
5.查看调用堆栈 因为我的text文件比较简单没有进行调用堆栈大家感兴趣的可以自行练习。
五、扩展完善 list/ l 行号:显示binFile源代码接着上次的位置往下列每次列10行 list /l函数名:列出某个函数的源代码 r或run:运行程序 n或 next:单条执行 s或step:进入函数调用 break(b)行号:在某一行设置断点 break 函数名:在某个函数开头设置断点 info break :查看断点信息 finish:执行到当前函数返回然后挺下来等待命令 print(p):打印表达式的值通过表达式可以修改变量的值或者调用函数 p变量:打印变量值 set var:修改变量的值 continue(或c):从当前位置开始连续而非单步执行程序 run(或r):从开始连续而非单步执行程序 delete breakpoints:删除所有断点 delete breakpoints n:删除序号为n的断点 disable breakpoints:禁用断点 enable breakpoints:启用断点 info(或i) breakpoints:参看当前设置了哪些断点 display变量名:跟踪查看一个变量每次停下来都显示它的值 undisplay:取消对先前设置的那些变的跟踪 until X行号:跳至X行 breaktrace(或bt):查看各级函数调用及参数 info (i) locals:查看当前栈帧局部变量的值 quit:退出gdb 结语Linux调试器关于gdb使用的分享到这里就结束了没有进行展示的操作大家可以自行练习希望本篇文章的分享会对大家的学习带来些许帮助如果大家有什么问题欢迎大家在评论区留言~~~