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

GDB

一、GDB 是什么?
GDB(GNU Debugger)是 Linux/macOS 下的命令行调试工具,核心作用是:
定位程序崩溃的具体代码行(如段错误、浮点异常);
实时查看 / 修改变量值、寄存器状态;
单步执行代码,逐步排查逻辑错误;
分析程序的函数调用栈(崩溃时的执行路径)
GDB 是定位 “非正常结束” 的核心工具,能精准找到崩溃的根源(而非猜原因)。
二、GDB 调试前置条件

  1. 编译程序时添加调试信息
    必须在 CMakeLists.txt 中添加 -g -O0(保留调试信息,关闭编译器优化),否则 GDB 无法定位到具体代码行:
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -march=native -fPIC")
  2. 确保程序可复现崩溃
    调试前确认:运行 ./pose_estimation_3d3d 1.png 2.png 1_depth.png 2_depth.png 能稳定触发崩溃(段错误 / 退出)。
    、GDB 核心调试流程
    步骤 1:启动 GDB 并加载程序
    gdb ./pose_estimation_3d3d
    启动后会进入 GDB 交互界面(提示符为 (gdb)),此时程序未运行。
    步骤 2:设置程序运行参数
    你的程序需要传入图像 / 深度图路径,在 GDB 中通过 set args 设置参数:
    (gdb) set args 1.png 2.png 1_depth.png 2_depth.png
    输出:
点击查看代码
Starting program: /home/vipuser/桌面/slambook2/ch7/ch7_gzj/cmake-build-debug/pose_estimation_3d3d 1.png 2.png 1_depth.png 2_depth.png
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe9a92700 (LWP 5965)]
[New Thread 0x7fffe9291700 (LWP 5966)]
[New Thread 0x7fffe8a90700 (LWP 5967)]
[Detaching after fork from child process 5968]
[Detaching after fork from child process 5969]
[Detaching after fork from child process 5970]
[Detaching after fork from child process 5971]
[Detaching after fork from child process 5972]
-- Max dist: 94.000000 
--Min dist: 4.000000 
一共找到了79组匹配点
3d-3d pairs:72
W=  10.871 -1.01948  2.54771
-2.16033  3.85307 -5.777423.94738 -5.79979  9.62203
U=  0.558087  -0.829399 -0.0252034-0.428009  -0.313755   0.8475650.710878   0.462228   0.530093
V=  0.617887  -0.784771 -0.0484806-0.399894  -0.366747   0.8399890.676979   0.499631   0.540434
ICP via SVD result:
R = [0.9969452351705234, 0.05983347594296961, -0.05020112774999547;-0.05932607556034211, 0.9981719680327525, 0.01153858709846636;0.05079975225724825, -0.008525103530306, 0.9986724727258676]
t = [0.1441598281917405;-0.06667849447794805;-0.03009747343724256]
R_inv = [0.9969452351705234, -0.05932607556034211, 0.05079975225724825;0.05983347594296961, 0.9981719680327525, -0.008525103530306;-0.05020112774999547, 0.01153858709846636, 0.9986724727258676]
t_inv =[-0.1461462830262245;0.05767443636940816;0.03806387978797152]
calling bundle adjustment
pose_estimation_3d3d: /usr/include/eigen3/Eigen/src/Core/MapBase.h:196: void Eigen::MapBase<Derived, 0>::checkSanity(typename Eigen::internal::enable_if<(Eigen::internal::traits<OtherDerived>::Alignment > 0), void*>::type) const [with T = Eigen::Map<Eigen::Matrix<double, 3, 6, 0, 3, 6>, 32, Eigen::Stride<0, 0> >; Derived = Eigen::Map<Eigen::Matrix<double, 3, 6, 0, 3, 6>, 32, Eigen::Stride<0, 0> >; typename Eigen::internal::enable_if<(Eigen::internal::traits<OtherDerived>::Alignment > 0), void*>::type = void*]: Assertion `( ((internal::UIntPtr(m_data) % internal::traits<Derived>::Alignment) == 0) || (cols() * rows() * minInnerStride * sizeof(Scalar)) < internal::traits<Derived>::Alignment ) && "data is not aligned"' failed.Thread 1 "pose_estimation" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: 没有那个文件或目录.
http://www.gsyq.cn/news/194207.html

相关文章:

  • 对RSA私钥泄露攻击
  • 偷一句去调戏你家男人
  • 东方博宜OJ 1953:新生舞会 ← STL map / 结构体
  • 论文降重技巧Top6:智能工具与创新方法全解析
  • 离散元后处理工具集:使用PFC数据绘制云图并导入MATLAB生成三维图形
  • ​​​​​​​从翻页功能都搞不定,到主导资产系统落地:我的第一个项目成长记
  • 论文查重优化方案:六大AI工具高效改写指南
  • 2026大专机械设计与制造专业必考证书清单(就业与薪资导向)
  • 基于遗传算法的车辆优化调度与成本最小化:考虑多配送中心与供应惩罚的Matlab完整代码
  • Linux环境下前后端分离项目(Spring Boot + Vue)手动部署全流程指南
  • 别再熬夜赶论文?8个免费AI生成器让效率直飙300%!
  • 四参数随机生长法QSGS算法:随机孔隙结构与微观孔隙优化处理的生成与处理
  • MindSpore开发之路(十七):静态图 vs. 动态图:掌握MindSpore的两种执行模式
  • centOS stream 9 安装rabbitMQ4.2
  • springboot基于Java的宠物用品系统的设计与实现
  • 深度学习毕设项目:基于YOLOv8模型监控视频中的车辆检测与识别应用
  • 电力系统暂态稳定性仿真:Matlab/Simulink 实战
  • 深度学习计算机毕设之基于YOLOv8模型监控视频中的车辆检测与识别应用
  • 【毕业设计】基于YOLOv8模型监控视频中的车辆检测与识别应用
  • 先序遍历、中序遍历和后序遍历【牛客tracker 每日一题】
  • 支付宝消费券回收新渠道,这样变现更划算 - 京顺回收
  • 项目1-C:手写体识别系统handwriting_ocr_system的深度学习系统_数据准备
  • ysyx-南大数电实验2,3,6,7,8
  • AI 论文写作工具精选10款,助力高效复现数学建模优秀论文并优化内容
  • No.867 ‘基于西门子S7-200 PLC和组态王自动售货机五种货物‘的概述
  • 持续集成CI
  • 深度测评!研究生必备AI论文平台TOP9:开题文献综述全解析
  • 如何成为一名渗透测试专家:核心技能与职业路径
  • 开源项目分享 : Gitee热榜项目 2026-1-1 日榜
  • 8款AI论文写作辅助工具对比:智能降重与高效创作效果评测