鞍山市信息网站网站灰色建设

news/2025/9/24 0:37:39/文章来源:
鞍山市信息网站,网站灰色建设,建设自己网站教程,网络推广需要做哪些工作File/file 装入想要调试的可执行文件 run(r) 执行当前被调试的程序 kill(k) 终止正在调试的程序 quit(q) 退出gdb shell 使用户不离开gdb就可以执行Linux的shell命令 backtrace(bt) 回溯跟踪#xff08;当对代码进行调试时#xff0c;run后…        File/file 装入想要调试的可执行文件     run(r) 执行当前被调试的程序     kill(k) 终止正在调试的程序       quit(q)  退出gdb   shell 使用户不离开gdb就可以执行Linux的shell命令                  backtrace(bt) 回溯跟踪当对代码进行调试时run后出现错误则可以使用bt命令查出详细的错误信息         frame n  定位到发生错误的代码段n为backtrace命令的输出结果中的行号位于行首。    (1) 设置断点break   break function          在进入指定函数时被停住。C可以使用class::function或functiontype,type格式来指定函数名。 //在该处停止断点该处不执行下同 break linenum 在指定行号停住 break filename:linenum   在源文件filename的linenum行处停止 break filename:function   在源文件filename的function函数的入口处停止 break    没有参数表示在下一条指令处停止 break *address 在程序运行的内存地址处停止 break与step结合使用时step(s)确认后执行上一次显示的未执行命令并且显示出将要执行的下一行程序。使用单步调试命令step来跟踪程序它一次只执行程序中的一行代码。 info break(i b)  命令  可以显示所有断点的信息 (2) 查看运行时的数据 在调试程序的过程中需要查看程序中某些表达式或变量的值以判断程序运行是否正确。 print命令(p) 在调试程序时当程序被停住时如在断点处可以使用printp命令或其同义命令inspect来查看当前程序的运行数据。 print expr  //输出表达式的值 print /f expr  //按某种格式输出表达式的值如/x 则为16进制 (gdb) print n1 $1 4 (gdb) inspect n1 $2 4 (gdb) print n1 $3 4 (gdb) print n2 $4 5 (gdb) print $2 $5 4     //$2的值 (gdb) print $   //$5的值 $6 4 (gdb) print $ $  //$5的值    注意之间没有空格  这是防止CSDN编辑器转义而加上的空格 $7 4 (gdb) print $ $6 //$4的值 $8 5 每一个print都会被gdb记录下来并且会以$1、$2、$3······这样的方式为每一个print命令编号。于是可以使用这个编号访问以前的表达式。 另外要注意print命令的表达式中两个具有特殊意义的符号$、$ $。print $表示显示当前序号的前一个序号的值$ $表示给定序号的前两个序号如果未给定序号则默认当前序号为给定序号。 另外info local命令可以显示当前本地的所有变量的值。 print命令的功能除了打印表达式或变量的值以外还有对变量进行赋值和打印内存中某个变量开始的一段区域的内容。 gdb的数据输出格式 x 十六进制格式     d 十进制格式   u 十六进制格式无符号整型 o 八进制格式       t 二进制格式    a 十六进制格式等价x c  ASCII字符格式     f 浮点数格式     s字符串格式   i指令地址指令文件 p /x n1    //以十六进制格式显示n1的值 自动显示命令display 当程序停住时或单步跟踪时这些变量会自动显示。 display expr        display /f expr    display /f addr  addr表示内存地址 display /i $pc  $pc为gdb的环境变量表示指令的地址/i则表示输出格式为机器指令码也就是汇编。该句指令表示当程序停下后就会出现源代码和机器指令码相对应的情形。 即输出当前指令的地址程序运行到当前处以机器指令码的格式输出从而出现源代码和机器指令码汇编代码相对应的情形。 查看内存examine(x) examine(简写为x)指令可以查看内存地址中的值格式 x /n/f/u addr n、f、u为可选的参数可以独立使用也可以联合使用。 n为一个正整数表示显示内存的长度即从当前地址向后显示几个地址的内容。 f表示显示的格式即地址所指内容以什么样的格式显示出s为字符串如果所指的内容为指令地址则为i。 u表示从当前地址往后请求的字节数如果不指定则默认为4个Bytes。u参数可以用下面的字符代替b表示单字节h表示双字节w表示四字节g表示八字节。 addr表示一个内存地址 x /4uh 0x48723  // 从内存地址0x48723读取内容h表示以双字节为1个单位4表示4个单位u表示按16进制显示。 gdb的环境变量 可以在gdb的调试环境中定义自己的变量用来保存一些调试程序中的运行数据。set命令用于定义gdb的环境变量gdb的环境变量与Linux一样都是以$起始。 set $foo*object_ptr 第一次使用环境变量时需要创建这个变量set以后使用直接对其赋值即可环境变量没有类型可以给环境变量定义任意的类型包括结构体和数组。 在gdb的调试过程中show convenience 命令用于查看当前设置的所有环境变量 查看寄存器 在调试程序的过程中有时需要查看某些寄存器中的值。寄存器存放了程序运行时的数据比如程序当前运行时的指令地址IP程序的当前堆栈地址SP等。可以使用info命令来查看寄存器中的值。 info registers //查看寄存器的情况不包括浮点寄存器 info all-registers //查看所有寄存器的情况包括浮点寄存器 info registersname1,name2,······  //查看指定寄存器的情况name表示寄存器名 也可以使用print命令来访问寄存器的情况只需要在寄存器名字前加一个$就可以了如print $ip。 查看源程序list(l) 在程序的调试过程中有时需要查看源程序的内容以及源代码在内存中的情况。用list命令可以显示程序的源代码。 list linenum 显示程序第linenum行周围的源程序 list filenamelinenum  显示某个.c文件中的第linenum行周围的源程序对于多个源文件的编译 list function 显示函数名为function的函数的源程序 list filenamefunction list 显示当前行后面的源程序 list - 显示当前行前面的源程序 list first,last 显示从first行到last行之间的源代码 list ,last 显示从当前行到last行之间的源代码 可以使用info line命令来查看源代码在内存中的地址info line命令后面也可以跟行号、函数名、文件名行号、文件名函数名等从而显示指定的源代码在内存中的地址。如要显示zsx.c源文件中calculate( )函数在内存中的地址 info line zsx.c:calculate  (3) 改变程序的执行 修改变量的值。print命令还可以修改被调试程序中运行时的变量值。如 print x9 跳转执行。可以修改程序的执行顺序让程序执行随意跳跃。 jump linespec  linespec可以是文件的行号可以是file:linenum格式表示下一条运行语句从哪里开始。 jump address  address是代码行的内存地址 注意jump命令不会改变当前的程序栈中的内容。 程序运行时有一个寄存器用于保存当前代码所在的内存地址所以jump命令也就是改变了这个寄存器中的值。可以使用set $pc来更改跳转执行的地址set $pc0x485。 (4) 具体事例 15           for (i 0; i len; i) (gdb) b 15 if i5 Breakpoint 1 at 0x4008d3: file ../src/main.c, line 15. (gdb) b 27 Breakpoint 2 at 0x400936: file ../src/main.c, line 27. (gdb) i b Num     Type           Disp Enb               Address                      What 1       breakpoint     keep y        0x00000000004008d3  in main at ../src/main.c:15 stop only if i5 2       breakpoint     keep y        0x0000000000400936  in main at ../src/main.c:27 //断点编号id 断点类型    断点是否可用y表示可用n表示不可用 断点地址  断点的详细信息 (5) 总结重点内容 运行程序start开始运行只执行一步就停住run开始运行在断点处停住continue(c)继续运行到下一个断点处停止steps单步执行进入函数内部nextn单步执行不进入函数内部u跳出循环体执行循环体后面的第一个语句。 set var i10  //将变量i的值设为10比如在一个循环体中i为控制变量当单步执行时i依次增加如果想让变量i循环到10时才停住则可以set var i 10。 gdb调试: 1. 启动gdb start -- 只执行一步 n -- next s -- step(单步) -- 可以进入到函数体内部 c - continue -- 直接停在断点的位置 2. 查看代码: l -- list l 10或者函数名 l filename行号或者函数名 3. 设置断点: 设置当前文件断点: b -- break b 10或函数名 设置指定文件断点: b fileName:行号或函数名 设置条件断点: b 10 if value19 删除断点: d 断点编号 获取编号i b 4. 查看设置的断点 info break   i b 5. 开始 执行gdb调试 执行一步操作:  start 继续执行:  n s 执行多步, 直接停在断点处:  continue 5. 单步调试 进入函数体内部: s 从函数体内部跳出: finish如果在循环处有断点, 需要将断点删掉 不进入函数体内部:n 退出当前循环: u //该退出是指直接一次性执行完该循环体 6. 查看变量的值: p -- print 7. 查看变量的类型: ptype 变量名 8. 设置变量的值:  set var 变量名 赋值  //注意同理不是硬性的 9. 设置追踪变量 display 取消追踪变量 undisplay 编号 获取编号 info display 10. 退出gdb调试 quit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南阳医疗网站制作价格网站建设应走什么会计科目

可以参照 Stanford大神DaphneKoller的概率图模型,里面贝叶斯网络一节讲到了explaining away。我看过之后试着谈谈自己的理解。 explainingaway指的是这样一种情况:对于一个多因一果的问题,假设各种“因”之间都是相互独立的,如果…

一例电动车充电器防反接电路分析

家里电动车充电器不充电了,经过拆开测试,二次侧输出电压正常;且输出线未出现断路,因此判断是防反接晶闸管故障,更换晶闸管后,电路正常工作。简略原理图如下:VCC为二次侧输出电源正极。该防反接电路,不是控正,…

做网站一天能接多少单windows 2008 wordpress

文章目录 前言一、数组的概念二、一维数组的定义三、一维数组的初始化四、一维数组的使用及举例1. 元素顺次前移的问题2. 数组元素逆序调整问题3. 统计输入的各个数据的个数 五、课后练习1. 从数组中查找某个元素2. 求一个数组中元素的平均值和均方差3. 编程统计某班某次考试的…

网站建设蓝图pptwordpress启用特色

在软件开发过程中,项目的构建是一个不可避免的环节。而随着项目规模的增大,手动管理编译过程变得越来越繁琐。为了简化构建流程并实现跨平台支持,CMake作为一种流行的构建系统被广泛采用。本文将介绍CMakeLists.txt文件的结构,以及…

套餐网站樊城网站建设

史上最全的JAVA面试题总结 为什么要做这件事情前言JAVA基础开发框架springSpringMVCmybatisdubbospringbootspringcloudnacos 数据库mysqloracle 缓存redismongodbElasticSearch 消息队列rabbitmqrocketmqkafka 监控prometheusgraylogzabbix 工具篇tcpdumpgitjenkins 容器docke…

烟台做网站价格石家庄正定网站建设

1、PTP模型 Point-to-Point,点对点通信模型。PTP是基于队列(Queue)的,一个队列可以有多个生产者,和多个消费者。消息服务器按照收到消息的先后顺序,将消息放到队列中。队列中的每一条消息,只能由一个消费者进行消费&a…

做的漂亮的家居网站做网站业务员

计算机基础知识同步练习题一、判断题下列各题中,您认为对的请在括号中填入“是” ,错的填入“非” 。1. 世界上第一台电子计算机是 1946 年在美国研制成功的。 ( )2. 电子计算机的用途是进行各种科学研究的数值计算。 ( )3. 电子计算机的计算速度很快但计…

太原做网站直通车17网站一起做网店优势与劣势

一、自定义信号,信号emit 1、自定义信号 在头文件中 加入signals: 就可以编写信号 2、emit emit的作用是通知信号发生 二、跨UI控件传参 每次按Dialog添加按钮主控件数字会增长 // .h private slots:void on_btnAdd_clicked(); signals:void sign…

凡科建设网站怎样收录百度政务网站建设需求

JWT(JSON Web Token)是一种基于 JSON 格式的轻量级令牌(token)协议,它被广泛应用于网络应用程序的身份验证和授权。相较于传统的 session-based 认证机制,JWT 具有更好的扩展性和互操作性,同时也…

营销型网站建设细节网站开发与运用

数据预处理是数据分析过程中至关重要的一步,它涉及到清洗、转换和整理原始数据,以便更好地适应分析模型或算法。以下是一些常见的数据预处理方法和规则: 数据清洗: 处理缺失值:检测并处理数据中的缺失值,可…

自己做的网站如何在网络上展示软件开发交付流程

文章目录 前言    文章目录 前言 一、指针运算 1.指针-整数 2.指针-指针 3.指针关系运算 二、野指针 1.概念 2.野指针的成因 1.未初始化 2.指针越界访问 3.指针指向的空间释放 3.避免野指针 1.指针初始化 2.小心指针越界 3. 指针变量不再使用时,及时置NULL 总结 …

网站建设能赚多少钱优化方案2022

前言 由于用户越来越注重 Web应用 的使用体验,随之而来的是 Web应用 需要提供了更加完善的 Web 动画 效果来实现以平滑的状态贯穿于用户的整个使用过程中。现在,这已经是司空见惯了,用户潜意识是希望可以获得更快的反馈响应和更友好的用户界…

如何做二级域名网站网络营销推广策划的步骤

一、Condition Condition 是在 Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作。比如说,只有满足某一个条件才能创建这个 Bean,否则就不创建。 SpringBoot 是如何知道要创建哪个 Bean 的?比如 Sp…

情侣博客网站模板下载微营销平台

关于导入三方SDK.framework之后,启动崩溃之后如下报错的解决方式: 截屏2020-10-14 上午9.55.09.png 在正常导入framework之后,做如图示操作, image.png 以上步骤之后,重新启动运行xcode,即可成功运行。

人设生成器网站做移动端活动页面参考网站

日期/时间类型是一种数据类型,用于表示日期和时间的值。在PostgreSQL数据库中,日期/时间类型通常包括以下几种形式: 名字存储大小描述最低值最高值最小单位timestamp [(p)][without time zone]8字节日期和时间(无时区公元前4713年294276 AD1…

手机网站建设品牌好html网页设计大赛作品

文章目录 1. 动静分离的好处2. 分离静态文件3. 修改 Nginx 配置文件4. location 命令修饰符优先级 1. 动静分离的好处 Apache Tocmat 严格来说是一款java EE服务器,主要是用来处理 servlet请求。处理css、js、图片这些静态文件的IO性能不够好,因此&…

新手学做网站pdfwordpress外贸建站怎么加左侧边栏

字节码指令简介 Java虚拟机指令由操作码(Opcode)和跟随其后的零至多个操作数(Operand)组成。 操作码:一个字节长度的,代表某种特定操作含义的数字。 操作数:操作码需要的参数。 字节码与数据…

临平做网站重庆微信网站作公司

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

isEmpty/isNotEmpty/isNotBlank/isBlank-isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank

#isEmpty系列 StringUtils.isEmpty() >>>是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=falseStringUtils.isEmpty(null) = tru…