gdb大型工程项目调试(工程中包含多个.cpp文件)

60 篇文章 9 订阅
订阅专栏
31 篇文章 2 订阅
订阅专栏

目录

gdb调试大的工程项目

第一步:添加选项参数-g,生成带有编译信息的可执行文件

第二步:

第三步:配置launch.json文件,进行调试

 第四步:多个源文件设置断点

gdb调试单个.cpp文件

第一步:生成带可调试信息的可执行文件

第二步:code .当我目录下打开VScode

第三步:创建lauch.json文件

第四步:配置lauch.json文件



gdb调试大的工程项目

第一步:添加选项参数-g,生成带有编译信息的可执行文件

打开CMakelists.txt文件; 添加参数选项-g,修改后保存;

另一种 CMakelists.txt文件,要生成带有调试信息的可执行文件,需要设置为"DEBUG"(对应release),参数设置"-g";

第二步:

cd 进入build文件,执行make命令,重新编译;

第三步:配置launch.json文件,进行调试

program——要运行的可执行文件或源代码的绝对路径;

args——要传递给program的参数,运行可执行文件需要输入多个命令:如运行 ./sat_atpg /home/hhh/benchmark/isca85/c17.bench;args填写输入文件的绝对路径;

对于工程中可执行文件的路径,可以打开VScode侧边栏,直接进行复制;

一般创建build后,make编译后生成的可执行文件的默认安装路径在build/bin下

注意:要进行调试前,必须先生成带有可调试信息的文件;

其它:点击底部选择GCC调试;

 第四步:多个源文件设置断点

格式:break  文件路径(名):设置断点处行号

  vscode可直接在工程文件中复制相对路径或绝对路径

gdb调试单个.cpp文件

第一步:生成带可调试信息的可执行文件

以systemclock.cpp为例,生成带调试信息文件dug_systemclock

第二步:code .当我目录下打开VScode

第三步:创建lauch.json文件

注意:若点击Add configuration不显示c/c++:(gdb) 启动;则关闭VScode,打开终端,对带调试信息的文件dug_systemclock执行gdb调试;按quit退出gdb

 再次打开VScode,点击Add configuration即可显示正常显示选项c/c++:(gdb) 启动

第四步:配置lauch.json文件

【C语言从入门到构建大型项目】-- 第二章:gdb调试
xiaod_szu的专栏
02-06 478
在跟大家讲解C语言基础之前,先和大家分享下,怎么在linux下进行代码调试。为了加快后面的学习,因为很多时候,在对语法不熟悉的情况下,没有什么是比直接调试代码更好的了。但是,我不推荐,一遇到代码不符合预期运行时就进行调试,而是先在自己的脑袋里运行几遍,实在理解不了,跑不顺时,再用调试工具进行调试。该篇为调试入门篇,后续会有高级部分。 照着一步步做,看完就学会了! 可执行文件调试 从一段简单的代码开始! #include <stdio.h> int main() { int i = 0; i
linux下使用g++编译cpp工程的方法
12-20
C++编程相关文件后缀 1.单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include <iostream> int main(int argc,char *argv[]) { std::cout << "hello, world" << std::endl; return(0); } 程序使用定义在头文件 iostream 的 cout,向标准输出写入一个简单的字符串。该代码可用以下命令编译为可执行文件: $ g++ helloworld.cpp 编译器 g++
linux_GDB调试学习(调试运行、多文件设置断点)_C/C++程序调试
qq_44177918的博客
03-18 3097
linux下C/C++程序调试GDB安装:sudo apt-get install gdb 使用编译器(gcc/g++)的 -g 参数可以做到这一点。如:gcc -g hello.c -o hello 启动GDB命令:gdb program 运行程序参数set args #可指定运行时参数。(如:set args 10 20 30 40 50 )show args #命令可以查看设置好的运行参数。run #运行程序,跑到断点出停止,简写(r) start #运行程序,开始只执行一步break #设置断点
gdb调试c、cpp源代码方法步骤
最新发布
weixin_41999281的博客
07-23 19
1. 代码举例登录后复制 //example.c #include <stdio.h> int addNumbers(int num1, int num2) { return num1 + num2; } int main() { int a = 10; int b = 20;...
[转]gdb调试多进程和多线程命令
weixin_33720452的博客
12-22 125
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(&gt;V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。       follow-fork-mode  detach-on-fork   说明 parent          ...
GDB调试大型工程
Marcelxx的专栏
11-21 5900
1,默认的源码目录在main函数的目录; 2,如果要调试项目不再
GDB调试文件工程
CY的博客
11-25 1495
版权声明:本文为CSDN博主「jianzhibeihang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/jianzhibeihang/article/details/5590461 ———————————————— 以前用GDB调试都只是调试单个的文件,在做DHCP二级relay的时候需要对整个工程进行gdb调试,发现自己竟然不会!现在终于恶补上了,发到博客上与大家分享。 下面就以我调试ISC DHCP代码为例来说
Linux使用gdb调试文件的C程序
NuYoaH502329的博客
08-12 1456
【例】通过vi创建两个.c文件main.c和add.c:一步编译main.c和add.c文件,并加入调试信息:(1)进入gdb,跟踪main程序:(2)显示代码输入显示的是当前main.c的代码: 输入显示另一个文件的代码:输入显示add.c的代码(3)设置断点①在当前显示的文件加断点因为刚刚输入显示add.c的代码,所以此时加断点,是在add.c加断点: ②显示别的文件,在别的文件加断点输入显示main.c的代码:这时可以在main.c加断点:③给指定函数加断点给指定函数加断点是在函数开始的地
gdb调试多个文件
天下任我行
03-09 7318
例程源码如下://add.hextern int add(int,int);//add.cint add(int a, int b){    int r = a + b;    return r;}//mul.hextern int mul(int,int);//mul.cint mul(int a, int b){    int r = a * b;    return r;}
gdb项目(多文件)代码调试
wwcqhh的博客
11-13 4878
针对项目代码,多文件下的gdb调试方法
[vscode]关于windows下使用vscode创建C工程包含多个.c .h文件
qq_37822951的博客
04-05 5319
主要是关于vscode项目的三个.json文件的配置 注意:工程的路径不能包括文字符 cpp_properties.json { // 该文件无需更改 "configurations": [ { "name": "Win32", "includePath": [ "${worksp...
gdb多线程调试文件
03-03
基于Linux64位的多线程小程序,答案就在某个线程的堆栈,请使用gdb命令查看哈
My-code:.cpp
03-19
【标题】"My-code:.cpp" 暗示这是一个与C++编程相关的代码项目,可能包含了一个或多个源代码文件,这些文件以.cpp为扩展名,这是C++语言的标准源代码文件格式。C++是一种静态类型的、编译式的、通用的、大小写敏感的...
三维重建-使用Cpp+CMakeList开发的多图三维重建项目-优质项目分享.zip
01-30
10. **测试与调试**:为了确保代码的正确性,项目可能包含单元测试和集成测试,调试工具如GDBVisual Studio调试器也是必不可少的。 这个项目不仅涵盖了理论知识,还涉及到实际操作,对于学习和掌握三维重建技术...
一文带你搞懂gdb调试C++以及调试多线程
m0_71124168的博客
05-22 1416
当一个程序的多个线程获取多个互斥锁资源的时候,就有可能发生死锁问题,比如线程A先获取了锁1,线程B获取了锁2,进而线程A还需要获取锁2才能继续执行,但是由于锁2被线程B持有还没有释放,线程A为了等待锁2资源就阻塞了;例如需要在程序的第十八行增加一个断点,可以输入下面的命令。多线程问题往往不会出现在编译阶段,而是在运行阶段出现无法预计的错误,所以必须需要熟练使用gdb调试工具,找到出bug的位置,以及bug信息,并且改正,以下使用一个多线程的出现的死锁问题并利用gdb调试工具进行调试解决bug。
linux下gcc编译多个文件gdb的使用方法
weixin_34088583的博客
05-07 848
一. gcc常用编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 2. 选项 -o 用法:#gcc test.c -o test 作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件文件名。...
gdb工程项目调试
饮一盏岁月流香
02-12 1209
c++工程项目gdb调试单个文件调试多个文件工程项目调速参考 单个文件调试 // single.cpp #include "iostream" #include "string" int main() { string astr; astr ="how are you?"; cout <<astr<<endl; astr ="I am fine." return 0; } ...
文件gdb调试
asdlight的专栏
10-14 1397
<br />其实和单文件一样的...makefile稍微修改一下就好了<br /> <br />//hello2.c<br />int hello2()<br /> {<br />         printf("hello2/n");<br /> }<br /> <br />//main.c<br />#include <stdio.h><br /> main()<br /> {<br />         printf("hello/n");<br />         hello2();
GDB文件/不同文件调试
Xuesengxinyi的博客
05-07 6410
1. 首先保证GCC flag 要有"-g",图为CMakeLists.txt的C++ flags设置 . 2. 对于执行文件和源文件不在同一个文件夹的情况,在gdb运行的情况下,如图:test_pipeline为可执行文件,用gdb打开 3. 在打开的gdb命令行下,输入r/run命令(一定要执行,至少我测试了很多次发现只有执行才能找到其他文件),如图为...
make整个工程怎么使用gdb工具
09-19
使用gdb工具来调试整个工程可以分为以下几个步骤: 1. 编译工程时添加调试信息:在编译工程时,需要在编译选项加入"-g"参数,以便生成包含调试信息的可执行文件。 2. 启动gdb:在终端输入"gdb"命令,然后输入可执行文件的路径和文件名,以启动gdb。 3. 设置断点:使用"gdb"命令提示符下的"break"命令来设置断点。可以通过函数名、行号或地址来设置断点。 4. 运行程序:使用"gdb"命令提示符下的"run"命令来运行程序。程序将会在设置的第一个断点处停下来。 5. 执行程序:在程序停止执行时,可以使用"gdb"命令提示符下的"step"命令逐行执行程序。也可以使用"next"命令跳过函数调用,使用"finish"命令执行完当前函数。 6. 查看变量和内存:使用"gdb"命令提示符下的"print"命令来查看变量的值。使用"x"命令来查看内存的内容。 7. 修改变量的值:可以使用"gdb"命令提示符下的"set"命令来修改变量的值。 8. 检查栈信息:使用"gdb"命令提示符下的"backtrace"命令来查看函数调用栈的信息。 9. 单步调试:在程序执行到设置的断点处停下来后,可以使用"gdb"命令提示符下的"next"命令来逐行执行程序,使用"step"命令来进入函数内部。 10. 结束调试:使用"gdb"命令提示符下的"quit"命令来结束调试会话。 以上是使用gdb工具调试整个工程的基本步骤。gdb还有很多其他的功能,比如条件断点、监视变量等,可以根据需要来使用。
写文章

热门文章

  • 关于while循环终止循环的三种方式 50271
  • 字符指针char*用法总结 30568
  • CMake编译工程/第一个CMakeLists.txt(最详细案例演示) 23682
  • c++ new一个结构体 初始化 22943
  • fatal: Incorrect username or password ( access token ) 鉴权失败 19469

分类专栏

  • A & a 6篇
  • C++ 60篇
  • linux 31篇
  • code测试 2篇
  • 科研 3篇
  • C++程序常见报错 3篇
  • SAT-based ATPG 5篇
  • 力扣 2篇
  • c++效率提升 1篇
  • PPT操作 1篇
  • C++常用算法 1篇
  • Git 8篇
  • verilog 1篇
  • c++ 类与对象 1篇
  • 实用技巧 1篇
  • 算法 4篇
  • 数据结构 1篇
  • c++ primer 1篇

最新评论

  • C++: numeric_limits<T>::max() (用法举例)

    weixin_42697546: 记得(std::numeric_limits<double>::max)() 顺序哦

  • 解决vim与外界的复制粘贴(不用安装插件)

    m0_57437773: 所以-clipboard就没办法了吗表情包

  • c++ 计时方法clock()、chrono::high_resolution_clock、system_clock(详细举例)

    weixin_44426507: 说反了吧

  • fatal: Incorrect username or password ( access token ) 鉴权失败

    Miss papa: 万分感谢表情包

  • 服务器添加新用户(并为该用户添加sudo权限)

    2401_85239792: zy999

最新文章

  • C++笔记-八股
  • -- Configuring doneCMake Error: Error required internal CMake variable not set, cmake may not be bu
  • 类模板-----定义、调用、做函数参数、派生子类(c++)
2023年2篇
2022年96篇
2021年27篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

天下网标王罗湖信息网站优化的有效方式优化网站价格东城区网站seo优化排名网站优化流程有哪些沈阳网站seo优化什么价位烟台网站关键字优化长春网站安全优化常州网站优化效果秦皇岛哪有网站优化公司关于淘宝网站的SEO优化方案网站快速优化推选火31星辛集网站快照优化公司百度企业网站优化优化网站导航设计方法高端商务网站优化外包开封搜索引擎网站优化公司嘉兴网站首页优化鸡泽网站优化费用51网站优化皮革网站优化技术沧州网站seo优化网站优化价格是多少钱新乡网站优化选哪家长沙网站seo优化外包要优化多久网站才有排名网站排名优化桨云速捷极度丹灶网站优化规划中文域名对网站优化的影响兰州网站排名优化平台网站标题怎么做优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化