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

旅游网站建设那家好做58同城的网站要多少钱

旅游网站建设那家好,做58同城的网站要多少钱,网店推广有哪些,网站建设 设备文章目录 一.背景知识二.安装gdb三.gdb的用法使用须知gdb的常用指令1.进入调试2.退出调试操作3.显示源代码4.设置断点breakPoint5.查看断点信息/禁用断点/开启断点/删除断点6.运行程序,开始调试run7.查看变量8.其它重要命令 一.背景知识 程序的发布方式有两种&…

文章目录

  • 一.背景知识
  • 二.安装gdb
  • 三.gdb的用法
    • 使用须知
    • gdb的常用指令
      • 1.进入调试
      • 2.退出调试操作
      • 3.显示源代码
      • 4.设置断点breakPoint
      • 5.查看断点信息/禁用断点/开启断点/删除断点
      • 6.运行程序,开始调试run
      • 7.查看变量
      • 8.其它重要命令


一.背景知识

  1. 程序的发布方式有两种,debug(调试)模式和release(发行)模式;
  2. Linux gcc/g++出来的二进制程序,默认是release模式;
  3. gdb是Linux中的调试器。用于debug版本代码的调试, 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上-g选项

二.安装gdb

sudo yum install gdb //想直接安装就加上-y选项

三.gdb的用法

为了详细解析gdb的各种用法,我们先创建两个文件:test.c和Makefile文件,用于测试gdb。
在这里插入图片描述
以下分别是两个文件中的测试代码:

//test.c:我们用一个从1加到100的程序来测试gdb
#include<stdio.h>int addToTop(int top){printf("enter addToTop\n");int sum=0;for(int i=1;i<=top;i++){sum+=i;}printf("quit addToTop\n");return sum;                                                                                                                                                                  }int main(){int top=100;int ret=addToTop(top);printf("ret:%d\n",ret);return 0;}//Makefile(自动化构建项目的工具)
mytest:test.c //依赖test.c文件生成mytest可执行程序gcc test.c -g -o mytest -std=c99 //注意这里加上了-g选项,也用上了c99标准                                                                                                                                        
.PHONY:
make clean:rm -f mytest

运行结果
在这里插入图片描述

使用须知

程序的发布方式有两种:

  • debug版本:程序本身会被加入更多的调试信息,以便于进行调试。
  • release版本:不会添加任何调试信息,是不可调试的。

在Linux当中gcc/g++默认生成的可执行程序是release版本的,是不可被调试的。如果想生成debug版本,就需要在使用gcc/g++生成可执行程序时加上-g选项。
在这里插入图片描述
我们可以使用readelf指令查看ELF格式的文件信息:
在这里插入图片描述对同一份源代码分别生成其release版本和debug版本的可执行程序,debug版本发布的可执行程序的大小比release版本发布的可执行程序的大小要大一点,从上图我们可以看出debug版本中有debug信息,其原因就是以debug版本发布的可执行程序当中包含了更多的调试信息。

gdb的常用指令

1.进入调试

gdb [可执行程序] //在上述我们写的测试代码中,可执行程序命名为mytest
//所以接下来我们就以mytest为例

2.退出调试操作

ctrl+d 或 quit

3.显示源代码

list/l 行号:显示源代码,如果按换行键会接着上次显示的位置往下列,每次只显示10行
list/l 函数名:可以直接定位到函数名的位置

操作示例
在这里插入图片描述
在这里插入图片描述

4.设置断点breakPoint

beak(b) 行号:在某行设置一个断点
b 函数名:在某个函数开头设置断点

操作示例
意思是在源代码的第19行设置断点
在这里插入图片描述
意思是在源代码的addToTop函数开头设置断点,会自动识别到第5行(函数所在处)
在这里插入图片描述

5.查看断点信息/禁用断点/开启断点/删除断点

info b(break)

info b指令会显示出所有的断点,我们刚刚设置了两个断点,所以显示出了两个断点的信息,Num是断点的编号,Enb表示断点的状态,y表示断点正常使用,n表示断点已被禁用。
在这里插入图片描述
想要操作哪个断点不是看这个断点在代码中的行号,而是在断点列表的编号。
禁用断点

disable [断点编号Num]

开启断点

enable [断点编号Num]	

删除断点

d(delete) [断点编号] //不加断点编号,则删除所有已设置的断点

6.运行程序,开始调试run

运行程序后会在断点处停下,就跟我们在Windows下用vs编译器调试一样一样的。不设置断点的话,程序就直接跑完了,并输出结果。

r或run

在这里插入图片描述

7.查看变量

打印变量值

p 变量名

在这里插入图片描述

跟踪查看一个变量(长显示)

display 变量名

在这里插入图片描述

取消对变量的跟踪(取消长显示)

undisplay 变量名

8.其它重要命令

  • set var i=100:将某个变量设置成特定的值
  • continue(或c):从一个断点处,直接运行到下一个断点处
  • until 行号:在函数内,进行指定位置跳转,执行完区间代码
  • bt(或breaktrace):查看调用堆栈
  • info (i)locals:查看当前栈帧局部变量的值
  • n或next:逐过程执行代码
  • s或stap:逐语句执行代码,可以进入函数体内
  • finish:进入一个函数,只执行完该函数,就停下来,比如上述所例举的从1加到100的函数,如果我们这个时候还在执行for循环,我们直接输入finish,就可以直接指向完addToTop函数。
  • print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
  • info:查看gdb的使用手册
http://www.yayakq.cn/news/353332/

相关文章:

  • 松江php网站开发培训西地那非的作用与功效
  • 做行业网站投资多少移动端网站建设的好处
  • wordpress高端教程许昌正规网站优化公司
  • 怎么在自己的网站做淘宝客网页项目描述怎么写
  • 网站建设的比较合理的流程国外做灯的网站
  • 做旅游网站图片哪里找网站域名代理备案
  • 医院网站建设预算表网页图片下载插件
  • 网站建设书籍赚客吧广州有什么好玩的海边
  • 阜阳网站建设费用可做网站的免费空间
  • 做一个小网站需要多少钱织梦网站底部黑链
  • 新余门户网站开发网页游戏网站556pk游戏福利平台
  • 响水做网站数字营销公司排名
  • 当富广州网站建设抢票软件定制
  • 网页制作公司网站网站建设的基本情况
  • 如何介绍一个网站的促销功能seo中文含义是什么
  • 网站空间不够用怎么办太原医疗网站建设
  • 网站建设 教材 推荐淄博网站建设讲解透彻
  • 如何做电商网站去哪里找做网站 的客户
  • 做贺卡网站常州网站制作公司
  • 河北君卓展览装饰有限公司google seo 优化教程
  • php网站开发招聘需求分析企业网站 论文
  • 后台管理网站建设温州模板建站公司
  • 常州青竹网络做网站福田祥菱q双排小货车报价及图片
  • 网站功能定制网站后台页面进不去
  • 猪八戒做网站怎么样短视频营销的特点
  • wordpress网站关键字怎么看网站后台什么语言做的
  • 网站建设哪里最便宜阿里云怎么放多个网站
  • 自己怎么优化网站排名用友软件官网
  • 知名网站建设加工百度一下下载安装
  • 贵阳网站定制电话公司网站建设什么价格低