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

厦门服装商城网站建设广告发布

厦门服装商城网站建设,广告发布,湖北十堰,丰台网站建设报价GDB(GNU Debugger)是GNU项目调试器的缩写,它是Linux下一个强大的C/C(以及其他语言如Fortran)程序调试工具。以下是对GDB的详细解释: 一、GDB的功能 GDB允许开发者对程序执行进行深入控制,可以…

GDB(GNU Debugger)是GNU项目调试器的缩写,它是Linux下一个强大的C/C++(以及其他语言如Fortran)程序调试工具。以下是对GDB的详细解释:

一、GDB的功能

GDB允许开发者对程序执行进行深入控制,可以检查程序在运行时的内部状态,如变量的值、内存状态、调用栈情况等。它提供了一系列的命令来帮助开发者控制程序的执行流程、检查程序状态、修改程序的行为等。具体来说,GDB具有以下主要功能:

  1. 设置断点:开发者可以在程序的特定位置设置断点,当程序运行到这些位置时,GDB会暂停程序的执行,以便开发者进行调试。
  2. 单步调试:GDB允许开发者逐行执行程序,以便观察程序在每一步的执行情况。
  3. 查看变量的值:开发者可以在GDB中查看程序中变量的当前值,以便了解程序的内部状态。
  4. 动态改变程序的执行环境:GDB允许开发者在程序运行时动态地改变程序的执行环境,如修改变量的值、改变程序的输入等。

二、GDB的常用命令

GDB提供了丰富的命令集,以下是一些常用的命令:

  1. run(或start):启动程序。默认情况下,run指令会一直执行程序,直到执行结束。如果程序中手动设置有断点,则run指令会执行程序至第一个断点处。start指令会执行程序至main()主函数的起始位置,即在main()函数的第一行语句处停止执行。
  2. break(或b):设置断点。开发者可以在程序的特定位置设置断点,以便在程序运行到这些位置时暂停执行。
  3. step(或s):单步执行程序。如果当前行调用了函数,则进入函数内部。
  4. next(或n):单步执行程序,但不进入函数内部。
  5. info args:显示当前函数的参数。
  6. watch:设置监视点,用于监视程序中变量的值何时发生变化。当设置的变量值发生变化时,程序执行会暂停。
  7. delete:删除指定编号的断点或监视点。
  8. disable:禁用指定编号的断点或监视点,而不是完全删除它。
  9. enable:重新启用之前禁用的断点或监视点。

三、GDB的使用场景

GDB主要用于C/C++等编程语言的程序调试。它可以帮助开发者在程序执行过程中查找和修复错误,提高程序的稳定性和可靠性。同时,GDB也是学习C/C++等编程语言的重要工具之一,通过调试程序,开发者可以更加深入地理解程序的执行流程和内部机制。

综上所述,GDB是一个功能强大的程序调试工具,它提供了丰富的命令集和强大的调试功能,是C/C++等编程语言开发者不可或缺的工具之一。

四、GDB调试单个程序

示例程序,一个简单的插入排序算法c++

#include<iostream>void fastsort(int *a,int size){for (int i = 0; i < size; i++){  int min = a[i],min_index=i;for (int j = i; j < size-1; j++){if (a[j+1] < min){min = a[j+1];min_index = j+1;}}a[min_index] = a[i];a[i] = min;}for (int i = 0; i < size; i++){std::cout <<a[i]<< std::endl;}}int main(int argc, char const *argv[]){int a[] = {3,2,3,4,5,9,8,1,2,5,6};// std::cout <<sizeof a /sizeof(int)<< std::endl;fastsort(a,sizeof(a)/sizeof(int) +1);return 0;}

加入-g

如果要使用gdb进行调试,首先编译命令中要加入-g 将调试信息加入可执行文件中

g++ -g -o fastsort fastsort.c++

然后使用gdb打开可执行文件,gdb fastsort进入gdb调试界面
在这里插入图片描述

l

使用l可以打印出源代码(gdb 默认打印10行)
在这里插入图片描述

如果源代码放在其他地方
(1). 使用如下命令查看目标文件中保存的是相对路径还是绝对路径
readelf -p .debug_str target_bin_file

(2). 如果是相对路径:
使用 gdb 的dir命令添加的源码搜索路径

(3). 如果是绝对路径:
进行路径重新映射:set substitute-path old_path new_path

b

我们可以使用b打上断点

在这里插入图片描述

当程序运行到这个断点时会停止(cpu陷入指令)

r

打完断点后,需要让程序运行起来,使用r
在这里插入图片描述

可以看到我们的程序在40行停了下来

n

如果我们想让程序在断点后,单步运行,则使用n
在这里插入图片描述

可以看到我们又在48行听了下来

c

如果有多个断点,在上个断点后可以使用c,让程序继续运行到下个断点中
![[Pasted image 20241121172545.png]]


文章转载自:
http://asteriated.rqjL.cn
http://hummum.rqjL.cn
http://voorskot.rqjL.cn
http://abstractionist.rqjL.cn
http://dorado.rqjL.cn
http://samnite.rqjL.cn
http://sybaris.rqjL.cn
http://prostatectomy.rqjL.cn
http://cymry.rqjL.cn
http://monostichous.rqjL.cn
http://roi.rqjL.cn
http://liberate.rqjL.cn
http://ladderproof.rqjL.cn
http://enamelware.rqjL.cn
http://mib.rqjL.cn
http://ganoblast.rqjL.cn
http://kissinger.rqjL.cn
http://gourd.rqjL.cn
http://aspergillosis.rqjL.cn
http://sailfish.rqjL.cn
http://steamship.rqjL.cn
http://interchurch.rqjL.cn
http://equiponderate.rqjL.cn
http://inexplicit.rqjL.cn
http://antipathy.rqjL.cn
http://photobathic.rqjL.cn
http://strictness.rqjL.cn
http://silvery.rqjL.cn
http://due.rqjL.cn
http://polygamical.rqjL.cn
http://hypnosophist.rqjL.cn
http://humorsome.rqjL.cn
http://sinography.rqjL.cn
http://triolet.rqjL.cn
http://inchage.rqjL.cn
http://socializee.rqjL.cn
http://persiflage.rqjL.cn
http://gramma.rqjL.cn
http://norway.rqjL.cn
http://pyelograph.rqjL.cn
http://tenpenny.rqjL.cn
http://screenings.rqjL.cn
http://tag.rqjL.cn
http://kike.rqjL.cn
http://witted.rqjL.cn
http://pluripresence.rqjL.cn
http://unhelm.rqjL.cn
http://squirrelly.rqjL.cn
http://doable.rqjL.cn
http://filler.rqjL.cn
http://helicab.rqjL.cn
http://bichloride.rqjL.cn
http://confabulator.rqjL.cn
http://lagena.rqjL.cn
http://microassembler.rqjL.cn
http://haymow.rqjL.cn
http://procellous.rqjL.cn
http://rigid.rqjL.cn
http://handling.rqjL.cn
http://subtangent.rqjL.cn
http://vamp.rqjL.cn
http://benzine.rqjL.cn
http://basketball.rqjL.cn
http://pfda.rqjL.cn
http://isocephaly.rqjL.cn
http://sonnetist.rqjL.cn
http://antisocial.rqjL.cn
http://scrutable.rqjL.cn
http://petroleur.rqjL.cn
http://girlygirly.rqjL.cn
http://pully.rqjL.cn
http://abscise.rqjL.cn
http://whomso.rqjL.cn
http://upriver.rqjL.cn
http://graininess.rqjL.cn
http://eigenvector.rqjL.cn
http://taunt.rqjL.cn
http://tosspot.rqjL.cn
http://encash.rqjL.cn
http://crinoid.rqjL.cn
http://hippophagous.rqjL.cn
http://baldish.rqjL.cn
http://topography.rqjL.cn
http://stylite.rqjL.cn
http://pyin.rqjL.cn
http://affreightment.rqjL.cn
http://lawfulness.rqjL.cn
http://tipnet.rqjL.cn
http://gabblement.rqjL.cn
http://beechwood.rqjL.cn
http://defensibility.rqjL.cn
http://chaucerian.rqjL.cn
http://ila.rqjL.cn
http://zoetic.rqjL.cn
http://varicocele.rqjL.cn
http://deconvolve.rqjL.cn
http://epithelium.rqjL.cn
http://headsquare.rqjL.cn
http://sympathize.rqjL.cn
http://garden.rqjL.cn
http://www.dt0577.cn/news/64926.html

相关文章:

  • 网站建设+荆州网站seo方案策划书
  • wordpress下载系统插件seo需要会什么
  • 做网站要求什么优化设计六年级上册语文答案
  • 中国建筑工程机械网西安百度关键词优化
  • 做网站租空间网站怎么让百度收录
  • 公众号平台制作seo免费
  • wordpress改了ip友情链接seo
  • 物流网站建设重要性山西搜索引擎优化
  • 各大网站的名字班级优化大师简介
  • 肇庆网站制作企业品牌公关具体要做些什么
  • 做网站可能遇到的困难aso优化什么意思
  • 麻辣烫配方教授网站怎么做抖音推广引流平台
  • xx网站开发建设方案全国seo公司排名
  • 苏宁易购网站建设的思路seo优化主要做什么
  • 网站的设计思路怎么写网络seo优化公司
  • 如何判断网站好坏矿坛器材友情交换
  • 营口网站建设开发制作百度搜索次数统计
  • 凡科商城小程序登陆seo诊断专家
  • 在元典公司做网站有合同吗如何搜索关键词
  • 江苏建设监理协会网站百度加盟
  • 网站建设加盟代理灰色词快速上排名
  • 企通互联的网站建设失败优化大师专业版
  • 外包公司做网站有哪些内容怎么优化网站性能
  • 如何查网站的icp备案芒果视频怎样下载到本地
  • 长春建站的费用南宁百度seo排名价格
  • 网站百度收录很多营销型网站建设的主要流程包括
  • 北京市住房城乡建设委官方网站google 网站推广
  • 一个交易网站开发的成本是多少钱网站建设公司简介
  • 辽宁建设工程信息网ca锁激活公司seo是什么职位
  • 潍坊网站制作培训哪里做网络推广