当前位置: 首页 > 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/838685.html

相关文章:

  • php做的网站好不好电脑版 做网站尺寸
  • dede苗木网站模板青岛做网站的公司
  • 整站seo免费咨询口腔医院网站开发
  • 学设计去哪个学校好网站模板 seo
  • 企业网站不被百度收录专业的网站开发建访
  • 建设网站架构服务器需要多少钱网站建设系统
  • 坪山网站建设设计wordpress调用指定文章分类链接
  • 深圳网站关键词推广网站建站分为两种
  • 网站上线发布流程营销类网站建设需要注意的问题
  • 社交网站建设网上海企业登记一网通办
  • 静态网站怎么更新去成都旅游攻略及费用
  • 网站服务方案网络优化网站 s
  • 如何优化网站 提高排名wordpress在线支付
  • 营销型网站制作成都百度网站建设的十一个
  • 建设网站多长时间成都易站网站建设
  • 上海模板网站公司品牌网站建设大概费用
  • 怎么把网站放到阿里云做网站的软件 知乎
  • 当当网站建设与易趣网站对比建设信用卡银行积分兑换商城网站
  • 做网站例子图片描述wordpress实时交流插件
  • 做音乐网站的目的揭阳网站建设托管
  • 济宁网站开发公司wordpress打开很卡
  • 可以做拟合的在线网站WordPress 插件调试
  • 网站建设可行性分析包括什么成都网站建设 小兵cms
  • 网站开发备案认证网站开发哈尔滨网站开发公司电话
  • 网站建设设计费会计分录wordpress文章数据库
  • 服装手机商城网站建设tk网站域名注册
  • 网站框架类型哈尔滨口碑好的网站建设
  • 国外优秀app设计网站有哪些个人网站怎么做支付宝接口
  • 腾讯云建网站湖南人文科技学院在哪
  • 全网有哪些网站可以做淘客道路建设网站专题