GDB调试入门

 

调试符号-g 是在编译的时候产生,而非链接的时候产生;所以: 编译成.o文件时候,需要带这个选项.

 

与调试相关的几个知识点:

1. 执行命令: gdb [可执行文件]

    如果不是-g选项编译出来的,会直接告诉你,不能调试

 

2.  通过list标出文件

    多个源文件可以是: list a.cpp:10 表示列出源文件a.cpp的第十行(不指定行号,此命令将无效)

    并

3. 通过break + 行号 打断点

    break 10 在第十行打印结果

    break 46 if testsize==100  有条件的 break

 

   注意,不要将断点设置在无意义的字段,比如 int a; 程序将跑到下一个有效的语句上面。

 

   next, continue, step区别:

 

    next表示跳往当前代码栈中的下一条指令,如果下一条指令是函数调用,并且函数中存在断点,则直接跑到该断点中止。

    continue 表示跳往下一个断点, next和continue的区别是: 在当前代码堆栈中,step和next都会一条条的执行,而continue直接跑到下一个断点去执行去了。 如果当前代码中调用的是函数栈,则next和continue没有任何区别【直接跑到断点处中止】。

 

    step 和next 在当前代码栈中相似,都是一条条语句执行,不同的是在函数栈调用时,next进入的方式直接跑到断点处中止(所以叫做"下一个"),step是从函数栈的起始位置中止(所以叫做“单步”)。

 

4.  执行run指令,则遇到断点,就会停止,通过watch + 变量名 查看结果, next执行到下一个断点, continue下一个断点,kill结束

 

 

5. 为加快调试速度,以上命令都可以简写为第一个字母。在 gdb 提示符下按回车健将重复上一个命令。

 

转载一篇文章,非常详细

 

http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml

 

该文中列举的常用的断点管理命令:

 

1.所有断点信息 info break 


2.  删除指定的某个断点:delete breakpoint 1  该命令将会删除编号为1的断点,如果不带编号参数,将删除所有的断点 


3.禁止使用某个断点 disable breakpoint 1 该命令将禁止断点 1,同时断点信息的 (Enb)域将变为 n 

 

4.允许使用某个断点 enable breakpoint 1 该命令将允许断点 1,同时断点信息的 (Enb)域将变为 y

 
5.清除原文件中某一代码行上的所有断点:clean number

 

6.  函数调用 call function(arg1, arg2)

 

 

 

附注环境知识:

 

文本环境和GUI环境的切换[ubuntu下]

 

ctrl+alt+F1可以,但是只是切换到文本模式,图形界面还在运行; alt+ctrl+f7返回

 

 

世界地图矢量数据可以通过多种网站进行下载。以下是一些提供免费下载世界地图矢量数据的网站: 1. Open Street Map (https://www.openstreetmap.org/): 这个网站可以根据输入的经纬度或手动选定范围来导出目标区域的矢量图。导出的数据格式为osm格式,但只支持矩形范围的地图下载。 2. Geofabrik (http://download.geofabrik.de/): Geofabrik提供按洲际和国家快速下载全国范围的地图数据数据格式支持shape文件格式,包含多个独立图层,如道路、建筑、水域、交通、土地利用分类、自然景观等。数据每天更新一次。 3. bbbike (https://download.bbbike.org/osm/): bbbike提供全球主要的200多个城市的地图数据下载,也可以按照bbox进行下载。该网站还提供全球数据数据格式种类齐全,包括geojson、shp等。 4. GADM (https://gadm.org/index.html): GADM提供按国家或全球下载地图数据的服务。该网站提供多种格式的数据下载。 5. L7 AntV (https://l7.antv.antgroup.com/custom/tools/worldmap): L7 AntV是一个提供标准世界地图矢量数据免费下载的网站。支持多种数据格式下载,包括GeoJSON、KML、JSON、TopJSON、CSV和高清SVG格式等。可以下载中国省、市、县的矢量边界和世界各个国家的矢量边界数据。 以上这些网站都提供了世界地图矢量数据免费下载服务,你可以根据自己的需求选择合适的网站进行下载
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值