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

北京做网站制作的公司昆明企业网站设计公司

北京做网站制作的公司,昆明企业网站设计公司,但是网站相关内容和程序并没有建设完_其次网站公司给我公司的,郓城网站建设电话目录 背景知识 编译器gcc/g的安装 编译器gcc/g的使用 调试器gdb的使用 cgdb 条件断点 背景知识 子曰:“温故而知新”。在谈gcc/g的使用之前,我们先来复习编译的4个阶段,也算是为下面的内容做一些铺垫,请看思维导图。 编译…

目录

背景知识

编译器gcc/g++的安装

编译器gcc/g++的使用

调试器gdb的使用

cgdb 

条件断点


背景知识

子曰:“温故而知新”。在谈gcc/g++的使用之前,我们先来复习编译的4个阶段,也算是为下面的内容做一些铺垫,请看思维导图。

编译器gcc/g++的安装

在CentOS下,安装的指令为 sudo yum install -y gcc

在Ubuntu下,安装的指令为 sudo apt install -y gcc

编译器gcc/g++的使用

gcc和g++的使用方法很类似,因为它们的选项基本一样。

● -E,在预处理结束后停止编译过程。

● -S,编译完成就停下。

● -c,汇编完成就停下。

● -g,生成调试信息。

编译器优化选项的4个级别:

● -O0

● -O1

● -O2

● -O3

其中,-O0表示没有优化,-O1为缺省值,-O3的优化级别最高。

其他选项:

● -w,不生成任何警告信息。

● -Wall,生成所有警告信息。

下面,我们来练练手。

1)将test.c进行预处理,生成test.i文件。

我们打开test.i瞅一眼。

2)将test.i进行编译生成test.s文件。

 

我们打开test.s看看。

可以看到,已经变成汇编指令了。

3)将test.s进行汇编生成test.c文件。

 

当我们在打开test.o时,会发现我们已经看不懂了,汇编指令已经被转换成机器可识别的二进制代码。

4)-g选项有无的对比

我们可以看到,加了-g选项生成的_g_test文件要比没加-g选项生成的test文件要大,这是因为_g_test文件里包含了调试信息,而test中没有包含。 

调试器gdb的使用

程序的发布方式有两种,debug模式和release模式,gcc/g++直接编译出来的二进制程序,默认是release模式。如果我们要使用gdb调试,就必须在编译的时候加上-g选项。至于-g选项怎么加,上面已经演示过了。下面我们正式进入gdb的使用。

指令:gdb code   / /打开code进行调试 

● ctrl + d 或 quit,退出调试。

● list 或 l 行号,以所指定行号为中心显示源代码,一次10行。

● list 或 l 函数名,列出指定函数的源代码。

● run 或 r,运行程序。

● n 或 next,逐过程调试(不会进入函数内部)。

● s 或step,逐语句调试(会进入函数内部)。 

● b 或 break 行号,在指定行设置断点。

● break 函数名,在指定函数开头设置断点。

● info break,查看断点信息。

● finish,执行当前函数,然后停下。

● p 变量,打印变量的值。

● set var,修改变量的值。

● c 或continue,从当前位置开始运行。

● delete breakpoints,删除所有断点。

● d n,删除序号为n的断点。

● delete breakpoints,删除所有断点。

● disable breakpoints,禁用所有断点。

● disable breakpoint n,禁用n号断点。

● enable breakpoints,启用所有断点。

● enable breakpoint n,启用n号断点。

● info b,查看所有断点信息。

● until 行号,跳到指定行。

● display 变量名,跟踪查看一个变量,每次停下来都显示它的值。

● undisplay,取消对先前设置的变量的跟踪。 

cgdb 

cgdb是gdb的一个图形界面版本,它具有gdb的所有功能,相较于gdb,cgdb便于我们查看源代码。

CentOS下,安装指令 sudo yum install -y cgdb。

Ubuntu下,安装指令 sudo apt install -y cgdb。

用法:cgdb 文件,例如,cgdb code。

条件断点

通过前面的学习,我们已经掌握了如何打断点,现在我们来学习如何打条件断点。

关键字:condition

语法:condition 断点编号 条件

下面举个简单的例子。

上述设置的条件断点的意思是:如果a等于20就停下来,否则不停下。我们可以看到,在运行起来后,程序停在了第12行,也就是说跳过了第一个断点,因为a不等于20,导致条件断点没生效。


本文到这就结束啦~如有错误,请您不吝指出! 

http://www.yayakq.cn/news/732110/

相关文章:

  • 南京网站开发就业培训课程大都会同行票怎么使用视频
  • 中小型网站建设与管理设计总结网站开发公司的推广费用
  • 用cms做网站怎么样wordpress 博客论坛
  • 网站开发比较厉害wordpress 元数据定义
  • 餐饮网站程序做义齿雕刻设备的网站
  • 织梦网站面包屑导航怎么做网站备案期间
  • 佛山网站建设费用最好的锦州网站建设
  • 湘潭做网站口碑好磐石网络网络营销推广的方法有哪些
  • 对于做网站有什么要求怎么调查建设网站
  • 梧州网站制作公司建站推荐
  • 长春 美容 网站建设产品营销方案案例范文
  • 服务专业的网站开发设计徐州市建筑工程交易网
  • 厦门物业备案建设局登什么网站网站优化的内容
  • 荆州做网站公司猎头公司怎么找客户
  • 我的世界做壁纸网站网页游戏网站4399
  • 中国建设协会官网站网站推广公司需要多少钱
  • 济南手机建站模板公司网站建设的请示
  • 网站制作成品免费购物网站成功案例
  • asp.net企业网站框架福田瑞沃前四后四车价格
  • 安陆建设局网站企业qq邮箱
  • 网站开发用什么软件编程泰安市建设局
  • ssh网站开发校园网站制作
  • 上海做网站搜索一下马来西亚的章丘营销型网站建设
  • 网站做支付需要准备什么建站公司杭州
  • 做网站时候如果添加微信代码网站编辑给续南明做的封面
  • 专业做装修的网站如何做360网站优化
  • 使用动易模版制作网站网上怎么找人去推广广告
  • 电子商务的网站开发自学学网页设计
  • 营销网站流程与步骤广告设计工资高吗
  • 网站图片模板源码成都市城乡建设厅官方网站