Eclipse C++ 无法debug 问题

环境:

        ubuntu20.04

        Eclipse CDT(x86_64)

        工程,使用的是默认的CMake Project

现象:       

        1. 使用Eclipse, 加了断点后,debug 无法停在断点;step over 执行后是从main 直接执行到exit , 一步一步运行。

        2. 生成 的可执行文件,使用gdb 调试,在加载完后,报:

        No debugging symbos found.

解决方法:

根据第二步, gdb 的调试,怀疑是编译的执行文件没有带符号表,一般没有带符号表的原因是编译优化导致,所以在CMakeList.txt 文件中加入如下:

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ggdb -O0")

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -O0")

按照道理来说添加以上配置后,增加了gdb 调试信息,以及较小了优化力度后,应该会有符号表了,但是发现依旧无效。

最后看CMakeList.txt 中无CMAKE_BUILD_TYPE 的配置(我以为是Eclipse 会根据界面使用Run/Debug 自动配置). 手动添加,采用build type 为debug:

set(CMAKE_BUILD_TYPE debug)

重新编译后,发现带了符号表文件,可以在eclipse 中或者gdb 里面看到符号信息了。

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

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

相关文章

poi-tl自定义渲染策略学习

文章目录 实现逻辑参考代码注意点 实现逻辑 自定义渲染策略实现逻辑: 找到模板中的表格标签render方法接收java中对应模板表格标签的所有list数据执行自定义渲染逻辑 参考代码 word模板如下: 实体类: Data public class GksxRowData {/…

Linux多进程(二)进程通信方式三 共享内存

共享内存提供了一个在多个进程间共享数据的方式,它们可以直接访问同一块内存区域,因此比使用管道或消息队列等通信机制更高效。在多进程程序中,共享内存通常与信号量一起使用,以确保对共享内存的访问是线程安全的。 一、打开/创建…

07_for循环返回值while循环

文章目录 1.循环返回值2.yield接收for返回值3.scala调用yield方法创建线程对象4.scala中的while循环5.scala中的流程控制 1.循环返回值 for循环返回值是Unit 原因是防止产生歧义; 2.yield接收for返回值 // 2.yield关键字打破循环,可以使for循环输出…

webpack面试题(持续汇总ing。。。)

webpack的编译过程 初始化 此阶段,webpack会将CLI参数、配置文件、默认配置进行融合,形成一个最终的配置对象。对配置的处理过程是依托一个第三方库 yargs 完成的。此阶段相对比较简单,主要是为接下来的编译阶段做必要的准备目前,…

LLaMA 3:大模型之战的新序幕

作者 | 符尧 OneFlow编译 翻译|杨婷、宛子琳、张雪聃 本文要点概览: 文本数据的扩展可能已经达到了极限,因为易于获取的网络文本资源(如Common Crawl、GitHub、ArXiv等)已基本被充分利用。 尽管如此,通过更…

数据结构 - C/C++ - 数组

目录 结构特性 内存布局 结构样式 结构拓展 数据初始 元素访问 插入元素 删除元素 查找元素 修改元素 结构设计 成员变量 构造函数 功能函数 示例代码 结构特性 长度固定:数组的长度在创建时已经被确定,如果需要动态改变数组的长度&#…

C++面向对象程序设计 - 多继承,以及基类与派生类转换

单继承是一个类是从另一个基类派生类而来的,多继承则是一个派生类是同两个或多个基类,派生类从两人或多个基类中继承所需的属性。 声明多重继承的方法: class D: public A, private B, protected C { 类D新增加的成员 } 一、多重继承派生类的…

Vue---组件

Vue—组件 目录 Vue---组件定义组件全局组件局部组件 组件通讯***重点***父子通信之父传子(props)父子通信之子传父($emit)ref属性($refs) 动态组件插槽命名插槽 定义组件 全局组件 vue2中template只能传…

浏览器渲染机制:重排(Reflow)与重绘(Repaint)以及Vue优化策略

浏览器渲染机制是一个复杂但有序的过程,其目的是将HTML、CSS和JavaScript代码转化为用户可以看到和交互的视觉界面。重排(Reflow)与重绘(Repaint)是浏览器渲染过程中对页面元素进行更新的两个重要步骤,理解…

ubuntu22.04安装TensorRT(过程记录)

重要说明:此贴经过多次修改。第一次安装的的为trt8.6.1版本。第二次安装的10.0.0.6版本。有些地方可能没改过来,比如链接向导,我懒得改了,但是流程是对的。 cuda和cudnn版本对应关系 tensorRT历史发行版本 CUDA历史发行版本 cudn…

ENVI不同版本个人使用对比

ENVI不同版本个人使用对比 文章目录 ENVI不同版本个人使用对比前言对比5.3学习版5.6学习版6.0试用版 总结 前言 目前来看,流传较广的可供大家免费获取的ENVI版本主要是5.3学习版 5.6学习版 6.0学习版这三个版本,不同的版本有不同特色,在此做…

C#基础|StringBuilder字符串如何高效处理。

哈喽,你好,我是雷工。 字符串处理在C#程序开发中是使用频率比较高的,但常规的字符串处理方式对内存占用比较多,为了优化内存,减少不必要的内存浪费,引入了StringBuilder类。 下面学习下StringBuilder类的使…

PC-3000 Flash:NAND 闪存设备(包括一体式U盘)数据恢复的重量级工具(一)

天津鸿萌科贸发展有限公司从事数据安全业务20余年,在数据恢复、数据取证、数据备份等领域有丰富的案例经验、前沿专业技术及良好的行业口碑。同时,公司面向取证机构及数据恢复公司,提供数据恢复实验室建设方案,包含 PC-3000 系列数…

LeetCode 热题 100 Day05

矩阵相关题型 Leetcode 73. 矩阵置零【中等】 题意理解: 将矩阵中0所在位置,行|列置换为全0 其中可以通过记录0元素所在的行、列号,来标记要置换的行|列 将对应位置置换为0 解题思路: 第一个思路: 可以…

React | classnames

classnames 这个库在我们的项目中有大量的使用到,它不仅很实用,还非常好用,但还有人不知道这个库,我真的是十分心痛。 通过 classnames,我们可以给组件设置多个 className,还可以根据需要动态设置 classNa…

模块四:前缀和——DP35 【模板】二维前缀和

文章目录 题目描述算法原理解法一:暴力模拟(时间复杂度为O(n*m*q))解法二:二维前缀和(时间复杂度为O(m*n)O(q)) 代码实现解法二:前缀和(C)Java 题目描述 题目链接:DP35 【模板】二维…

三星电脑文件夹误删了怎么办?恢复方案在此

在使用三星电脑的过程中,我们可能会不小心删除了某个重要的文件夹,其中可能包含了工作文件、家庭照片、视频或其他珍贵的数据。面对这种突发情况,不必过于焦虑。本文将为您提供几种有效的恢复方案,希望能帮助您找回误删的文件夹及…

openEuler-22.03安装 mysql8.0.32

一、下载解压 下载地址: MySQL :: Download MySQL Community Server (Archived Versions) tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql-8.0.32 二、安装 最开始安装一直报错 缺少 libcrypto.so.10库文件,安装openssl可以解决 wget http://…

Java客户端如何直接调用es的API

Java客户端如何直接调用es的API 一. 问题二. withJson 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 问题 今天做项目的时候,想要直接通过java客户端调用es的api…

揭秘工业大模型:从人工智能小白到技术先锋

工业大模型的五个基本问题 信息化时代,数字化转型成为企业提升营运效率、应对经营风险和提升核心竞争力的重要途径。在此过程中,数据作为一种客观存在的资源,所产生的价值日益凸显。党的十九届四中全会从国家治理体系和治理能力现代化的高度将…