中国建设银行网站 路护航官网,设计公司画册设计哪家好,专题网站怎么做,免费在线看片个人主页 #xff1a; 个人主页 个人专栏 #xff1a; 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、前置理解二、使用总结 前言
gdb是Linux中的调试代码的工具 一、前置理解
我们都知道要调试一份代码#xff0c;这份代码的发布模式必须是debug。那你知道在li… 个人主页 个人主页 个人专栏 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、前置理解二、使用总结 前言
gdb是Linux中的调试代码的工具 一、前置理解
我们都知道要调试一份代码这份代码的发布模式必须是debug。那你知道在linux中我们编译代码默认是什么模式吗答案是release模式。 对test.c文件默认生成的a.out可执行程序调试就知道了。 按q退出调试界面。
那如何更进一步的证明 我们要先知道一些小知识。
在debug发布时一定要给可执行程序内部添加debug信息。(debug形成的可执行程序 release形成的可执行程序)Linux中形成的可执行程序格式ELF格式要使用gdb调试必须在源代码生成二进制程序的时候加上-g选项 mybin-g文件大小大于mybin-r文件大小 使用readelf -a 可执行程序 | grep -i debug指令可以看出mybin-g文件中有debug信息而mybin-r文件没有 mybin-g文件进入调试界面没有(no debugging symbols found)信息显示。
二、使用 list / l 显示可执行程序的源码接着上次的位置往下列以gdb的格式显示每次列出10行。 l num(行号)从num行开始显示源代码 l 函数名列出某个函数的源代码 break | b 行号在某一行设置断点 b 函数名在某个函数开头设置断点 info break | info b 查看断点信息 delete breakpoints | d breakpoints删除所有断点 delete breakpoints n(断点编号) | d n(断点编号)删除序号为n的断点 (注意断点编号是累计的退出gdb清空所有断点) disable n(断点编号)禁用断点 enable n启用断点 run | r运行程序(类似于VS的F5)遇到断点停止 没有断点 有断点 next | n单条执行(类似VS的f10) step | s进入函数调用(类似VS的f11) finish执行到当前函数返回然后停下来等待命令 until X行号跳至X行 p 变量名打印变量值 set var 变量名 val修改变量的值为val display 变量名跟踪查看一个变量每次停下来都显示它的值 undisplay 变量名取消对先前设置的那些变量的跟踪 breaktrace | bt查看各级函数调用及参数 info (i)locals查看当前栈帧局部变量的值 continue | c从当前位置开始连续而非单步指向程序(从当前断点到下一个断点) 总结
以上就是我对于Linux中gdb使用的总结。感谢支持