当前位置: 首页 > wzjs >正文

天津疫情最新数据北京网站优化外包

天津疫情最新数据,北京网站优化外包,网站注册协议,wordpress 上传图片 500ok,我们今天学习gdb的安装和使用 调试器-gdb/cgdb使用 VS、VScode编写的代码一般都是release格式的,gdb 的格式一般是debug 换成debug模式命令 :-g gdb会记录最新的一条命令,直接回车就是默认执行该命令 一个调试周期下,断点…

ok,我们今天学习gdb的安装和使用

调试器-gdb/cgdb使用

VS、VScode编写的代码一般都是release格式的,gdb 的格式一般是debug

换成debug模式命令 :-g

gdb会记录最新的一条命令,直接回车就是默认执行该命令

一个调试周期下,断点编号递增,删除断点,之后的断点编号也是递增

样例代码

 // mycmd.c#include <stdio.h>int Sum(int s, int e){int result = 0;for(int i = s; i <= e; i++){result += i;}return result;}int main(){int start = 1;int end = 100;printf("I will begin\n");int n = Sum(start, end);printf("running done, result is: [%d-%d]=%d\n", start, end, n);return 0;}

预备

程序的发布⽅式有两种,debug 模式和 release 模式, Linux gcc/g++ 出来的⼆进制程序,默认是

release 模式。

VS、VScode编写的代码一般都是release格式的,gdb 的格式一般是debug

换成debug模式命令 :-g

要使⽤gdb调试,必须在源代码⽣成⼆进制程序的时候,加上 -g 选项,如果没有添加,程序⽆法被编译

$ gcc mycmd.c -o mycmd       # 默认模式,不⽀持调试
$ file mycmdmycmd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically 
linked, interpreter /lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=82f5cbaada10a9987d9f325384861a88d278b160, for GNU/Linux 
3.2.0, not stripped$ gcc mycmd.c -o mycmd -g    # debug模式
$ file mycmdmycmd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically 
linked, interpreter /lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=3d5a2317809ef86c7827e9199cfefa622e3c187f, for GNU/Linux 
3.2.0, with debug_info, not stripped

常见使用

  • 开始: gdb binFile
  • 退出: ctrl + d 或 命令 quit 调试命令

gdb会记录最新的一条命令,直接回车就是默认执行该命令

一个调试周期下,断点编号递增,删除断点,之后的断点编号也是递增

命令作用样例
list / l

显示源代码,从上次位置开始,每次列出

10
list / l 10
list / l  函数名列出指定函数的源代码list / l main
list / l     文件名: 行号列出指定文件的源代码list / l mycmd. c : 1
r / run从程序开始连续执行run
n / next单步执行,不进入函数内部next
s / step单步执行,进入函数内部step
break / b  [文件名:] 行号在指定行号设置断点

break 10

break test. c:10
break / b 函数名在函数开头设置断点break main
info break / b查看当前所有断点的信息info break
finish执行到当前函数返回,然后停止finish
print / p 表达式打印表达式的值print start + end
p 变量打印指定变量的值p x
set var   变量=值修改变量的值set var i=10
continue / c从当前位置开始连续执行程序continue

delete / d

breakpoints
删除所有断点delete breakpoints

delete / d

breakpoints n
删除序号为n的断点delete breakpoints 1
disable breakpoints禁用所有断点disable breakpoints
enable breakpoints启用所有断点enable breakpoints
info / i breakpoints查看当前设置的断点列表info breakpoints
display 变量名跟踪显示指定变量的值 (每次停止时)display x
undisplay 编号取消对指定编号的变量的跟踪显示undisplay 1
until X 行号执行到指定行号until 20
backtrace / bt查看当前执行栈的各级函数调用及参数backtrace
info / i locals查看当前栈帧的局部变量值info locals
quit退出GDB调试器quit

 

断点 + finish + until + c:快速定位问题

如果想看到代码调试,可以使用cgdb

下载代码:

sudo yum install -y cgdb

少年没有乌托邦,心向远方自明朗!

如果这个博客对你有帮助,给博主一个免费的点赞就是最大的帮助
欢迎各位点赞,收藏和关注哦
如果有疑问或有不同见解,欢迎在评论区留言
后续会继续更新大连理工大学相关课程和有关Linux的内容和示例
点赞加关注,学习不迷路,好,本次的学习就到这里啦!!!

ok,我们下次再见!

http://www.dtcms.com/wzjs/260248.html

相关文章:

  • 如何建立一个网站主页怎么自己创建网站
  • 南阳百度网站推广外链查询
  • 做动态网站需要学什么网络营销策划ppt
  • wordpress如何添加文章来源免费seo快速收录工具
  • cms做网站可以做些什么网站十大骗子教育培训机构
  • wordpress首页显示标签百度seo怎么操作
  • 南充网站建设价格google play store
  • 17网站一起做网店代发流程百度大搜推广
  • 如何做网站标头新媒体平台
  • 开个做网站的公司 知乎营销公司
  • 网站建设推广哪家好长春网站优化团队
  • 南京 推广 网站建设google官网下载
  • 商城网站建设方案 2017如何用手机创建网站
  • wordpress很慢北京seo专员
  • 网站开发与设计公司深圳做网站的
  • 电影网站怎么做要多少钱网站加速器
  • 网站建设的知名公司百度手机管家
  • 深圳网站建设专家百度seo快速排名
  • 大数据适合什么人学绍兴seo网站管理
  • 成都大型网站设计公司全球网站流量排名100
  • wordpress添加直达链接长沙seo顾问
  • 商机网网站源码线上拓客渠道有哪些
  • 自己做网站做那种类型微博热搜榜排名今日
  • 信息型网站有哪些云南新闻最新消息今天
  • 唐山网站建设报价天津网站推广
  • 成品网站源码是1688吗百度保障中心人工电话
  • 有了域名 网站建设云南网站seo服务
  • 简单建网站seo是什么意思电商
  • php主做哪种类型网站关键词排名推广怎么做
  • 网站建设销售技巧网站seo重庆