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

营销网站建设整合网站营销专家搜索引擎入口官网

营销网站建设整合网站营销专家,搜索引擎入口官网,普通银行卡可以做国外网站购物信用卡使用吗,今日军事新闻视频目录 一、预备知识 二、常用指令 三、调试技巧 (一)监视变量的变化指令 watch (二)更改指定变量的值 set var 正文 一、预备知识 程序的发布形式有两种,debug和release模式,Linux gcc/g出来的二进制…

目录

一、预备知识

二、常用指令

三、调试技巧

(一)监视变量的变化指令 watch

(二)更改指定变量的值 set var


正文

一、预备知识

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

要使用gdb调试,必须在源代码生成二进制程序的时候加上-g 选项,如果没有程序无法编译。

gdb还有个不友好的点是调试时无法直接看到源码,所以使用cgdb调试器。


以下是调试中用到的代码,先创建一个mycmd.c文件将下面代码写入,gcc mycmd.c -o mycmd生成可执行文件然后开启我们的调试之旅

二、常用指令

(1)进入cgdb 调试界面

cgdb 文件名:cgdb mycmd

(2)显示源代码:list/l

list/l:                             显示源代码

list/l 函数名:                 列出指定函数的源代码         list/l main

list/l 文件名:行号 :        列出指定文件的源代码         list/l mycmd.c:1

(3)退出指令:quit

(4)打断点指令:break/b

break/b 行号: 在指定行设置断点,该行数会有高亮提醒,对应VS调试中的F9操作

        

(5)查看断点指令: info b/break

info b:查看所有断点信息,前面的1、2...数字表示断点的个数编号,编号根据打断点次数依次递增不受删除断点影响

(6)删除断点指令:delete/d

d 断点编号:删除断点必须通过编号删除,要知道编号得先执行查看获取

删除第2编号断点,再次查看已没编号2

(7)删除所有断点指令:delete/d  breakpoints

(8)从程序开始连续执行指令:run/r

第一:gdb启动调试时只是开启了gdb,程序并没有被调试起来必须输入r

第二:run/r表示在gdb场景中启动我们的程序mycmd

第三:在没打任何断点的情况下run/r从头开始执行程序

第四:有断点run/r执行程序时跳到第一个断点处开始执行

(9)逐过程调试指令:n/next

单步执行,不进入函数内部,对应VS调试中的F10

(10)逐语句调试指令:s/step

单步执行,进入函数内部,对应VS调试中的F11

(11)跟踪变量值的指令:display 变量名

在循环过程中想观察变量的数值变化可以使用此语句,display后最前面的数字表示变量编号,对应VS调试中的监视窗口

(12)取消变量值跟踪指令:undisplay 编号

需要通过变量编号删除

(13)执行到指定行号指令:until 目标行号

如果在调试过程中循环语句要执行100次,而你又确定报错一定不在循环中,可以until+目标行号,直接执行完循环到指定行处

(14)运行到下一个断点处指令:continue/c

运行到下一个断点处或直接运行结束

(15)查看当前栈各级函数调用及参数:bt

程序执行到函数时会向栈申请空间,这句代码旨在查看当前执行到这堆栈被调用情况,以下代码只有一个sum函数。

对应VS调试中的堆栈调用监视窗口

(16)查看当前栈帧的局部变量值:info i

也就是当前在debug下的程序信息

(17)禁用所有断点指令:disable breakpoints

为什么禁用断点而不直接删除:调试过程中你可能没有发现问题,并且程序还跑得过去可当你关闭调试,执行代码时程序又报错,如果你直接删除断点无法在之前的调试基础上再次调试,所以禁用断点是为了保留调试痕迹。

没被禁用的断点在查看时Enb下显示y:

disable breakpoints禁用所有断点后Enb下显示n:

(18)启用所有断点指令:enable breakpoints

以上的18点调试技巧足以让我们进行代码调试,有兴趣的同学可以继续了解更多其他调试语句~

三、调试技巧

(一)监视变量的变化指令:watch

在整个程序中你有定义一些静态变量或者一些不应该修改的变量,但你怀疑它修改了导致程序报错,你可以watch它,如果这个变量在运行过程中变了就会通知你

所以断点的类型除了breakpoint 还有watchpoint的形式

(二)更改指定变量的值:set var

指的是在调试中你怀疑导致代码出错的是某个原本不可变变量值,而你此时只是猜测不想直接动源代码改值,可以使用set var更改变量值看是否还报错。


以上是gdb的基础调试语句,看到这希望对你有帮助。

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

相关文章:

  • 兴义市住房和城乡建设局网站seo矩阵培训
  • 网站建设设计780元全包搜狐新闻手机网
  • 有什么软件做短视频网站网站注册账号
  • 绍兴做网站哪家好千锋教育北京校区
  • Python做网站 性能常见的网络推广方式包括
  • 财务公司加盟哪个比较好东莞seo管理
  • 商务网站建设用的是什么软件怎么制作微信小程序
  • 重庆响应式网站建设找哪家长春头条新闻今天
  • 做网站有什么类型怎么引流客源最好的方法
  • 网站建设公司做网站要多少费用创建自己的网站怎么弄
  • 山东政府网站集约化建设seo的优化步骤
  • 莱芜网站推广重庆关键词seo排名
  • 工程建设招标网都有哪些网站网页设计和网站制作
  • 那个网站做创意图比较好优化大师win7官方免费下载
  • 网上接单做衣服哪个网站青岛做网站推广公司
  • 个人网站做导航网站推广平台排行榜
  • 常州网站建设费用网络营销与管理
  • 访问国外网站dns国外网站推广
  • 怎样去同行网站做外连接手机注册网站
  • 淘客网站开发视频教程网络营销的概念及特征
  • 网站宣传营销网络服务商主要包括
  • 网站seo属于什么专业查询网站域名
  • 个人做网站要注意什么条件网络营销的特点是什么?
  • 新闻最近的大事10件站长工具seo词语排名
  • 做和别人类似的网站侵权吗网站一般需要怎么推广
  • 俄罗斯代购网站设计百度网盘官网
  • 网站建设及报价方案seo引擎优化外包
  • 怎么做创业网站上海关键词排名提升
  • 手机网站模板 织梦网络推广和竞价怎么做
  • 哪个网站有介绍拿到家做的手工活慈溪seo