使用gdb调试出现 No debugging symbols found in a.out

2023-11-05

使用常规的gcc编译或者使用带调式信息-g的编译都有可能会在使用gdb工具的时候出现No debugging symbols found in a.out错误。

1. 常规编译

使用常规编译生成的可执行文件正常一定会出现No debugging symbols found in a.out错误。

imaginemiracle@ubuntu:test$ ls
test.c
imaginemiracle@ubuntu:test$ gcc test.c 

imaginemiracle@ubuntu:test$ gdb a.out 
Reading symbols from a.out...
(No debugging symbols found in a.out)
(gdb) 

2.带调试编译

即使使用带调试信息-g编译时,有时候也会出现这种情况。

imaginemiracle@ubuntu:test$ gcc -g test.c 
imaginemiracle@ubuntu:test$ ls
a.out  test.c

imaginemiracle@ubuntu:test$ gdb a.out 
Reading symbols from a.out...
(No debugging symbols found in a.out)
(gdb) 

3. 解决办法

我们先使用-c -g生成带调试信息的只进行过预处理、编译、汇编,但没有被链接的目标文件,再利用目标文件链接、重定位后生成可执行文件,使用这个可执行文件便不会出现问题。

imaginemiracle@ubuntu:test$ rm a.out 
imaginemiracle@ubuntu:test$ gcc -c -g test.c 
imaginemiracle@ubuntu:test$ ls
test.c  test.o
imaginemiracle@ubuntu:test$ gcc test.o
maginemiracle@ubuntu:test$ gdb a.out 
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...
(gdb) l
1	int main(int argc, char **argv)
2	{
3	    int a = 10;
4	    int b = 20;
5	
6	    int result = 0;
7	
8	    result = a + b / a;
9	
10	    return 0;
(gdb) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用gdb调试出现 No debugging symbols found in a.out 的相关文章

随机推荐

  • 使用gpt和mindshow快速制作PPT

    目录 准备工具 PPT制作大体流程 工具 步骤 获取PPT大纲 注意 要markdown格式 编辑 打开MindShow 找不到的可以私信我 编辑 创建ppt 编辑 选择ppt基本样式 编辑 点击下载 不过要提前登录一下就好 编辑 添加动画
  • Qt(c++)调用python一直报错slot、hypot等

    最近在Qt里调用python代码 参考教程 https blog csdn net a137748099 article details 119217197 引入python的include libs之后 在c 里写了简单的调用python
  • 各种通信方式对比

    各种通信方式对比 2011年11月09日 16 58 25 horatio2010 阅读数 444 通信名称 连接端 通信方式 传输顺序 通信速度 I2C scl sda 2 串行 高位 低位 标准模式速度100kbit s 快速模式
  • 前后端常见的几种鉴权方式

    本文链接 https blog csdn net wang839305939 article details 78713124 最近在重构公司以前产品的前端代码 摈弃了以前的session cookie鉴权方式 采用token鉴权 忙里偷闲
  • C#深拷贝和浅拷贝的区别

    先上代码 后解释 public class Person public int Age public DateTime BirthDate public string Name public IdInfo IdInfo
  • C++ Templates:实例化

    延迟实例化 当隐式实例化类模板时 同时也实例化了该模板的每个成员声明 但并没有实例化相应的定义 然而 存在例外 1 如果类模板包含了一个匿名的union 那么该union定义的成员同时也被实例化了 2 作为实例化类模板的结果 虚函数的定义可
  • react ref和组件API

    介绍 昨天学习到了生命周期 今天我们接着昨天的知识点继续学习 今天学习一下state setState以及ref和组件API 大家感兴趣的话可以跟随文章进行学习呦 state和setState state 组件自身状态 setState u
  • 【100%通过率 】【华为OD机试真题】模拟商场优惠打折(一)【2022 Q4

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 模拟商场优惠打折 有三种优惠券可以用 满减券 打折券和无门槛券 满减券 满100减10 满200减20 满300减30 满400减40 以此类推
  • 辛普森悖论

    本系列主要为大家带来一整套的博弈论问题 广义 因为在面试的过程中 除了常规的算法题目 我们经常也会被问到一些趣味题型来考察思维 而这类问题中 很多都有博弈论的影子存在 这些公司里以FLAG Facebook LinkedIn Amazon
  • webpack5.x性能优化之 代码分包 配置文件分离 多入口 SplitChunks cacheGroups runtimeChunk dynamic import(动态导入) 懒加载 魔法注释

    webpack优化 文章目录 webpack优化 代码分离 认识代码分离 多入口起点 Entry Dependencies 入口依赖 SplitChunks chunks 其他的splitChunks属性 很少手动配置 minSize和ma
  • java多线程---C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。

    多线程 Java 的特点之一就是内置对多线程的支持 多线程允许同时完成多个任务 实际上多线程使人产生多个任务在同时执行的错觉 因为目前的计算机的处理器在同一时刻只能执行一个线程 但处理器可以在不同的线程之间快速地切换 由于处理器速度非常快
  • uni-app 和 spring boot 实现通知栏消息推送 (第二版)

    背景 上次第一版打包上线后 无法使用推送失效 第一版使用的是 websocket h5puls 原因 估计是云打包后对这个做了一些编译处理 导致失效 解决方案 用官网的教程 走个推服务器 取消后端自己的websocket实现 虽然麻烦 但是
  • 深度学习入门(四):经典网络架构(Alexnet、Vgg、Resnet)

    一 经典网络架构 Alexnet 2012年ImageNet竞赛冠军 8层神经网络 5层卷积层 3层全连接 二 经典网络架构 Vgg 2014 年ImageNet 竞赛冠军 VGG 最大的特点就是它在之前的网络模型上 通过比较彻底地采用 3
  • Excutor线程池原理详解

    目录 一 线程池的创建以及参数 二 任务提交的方法 三 线程池参数解释 四 线程池原理 五 线程池原理图 六 execute方法执行流程图 一 线程池的创建以及参数 public ThreadPoolExecutor int corePoo
  • vue3.0版本给对象新增属性

    对象新增属性 Reflect set 目标对象 属性名 值 Reflect set val middle middle
  • Spring Cloud Alibaba 2021.0.1.0 版本发布啦

    01 什么是 Spring Cloud Alibaba Aliware Spring Cloud Alibaba 是由阿里巴巴 后文简称 阿里 中间件团队于 2018 年 7 月开源 为业界提供的一套基于阿里内部分布式技术的一站式微服务构建
  • JavaWeb学习-Servlet处理解析JSON文件导出Excel实例

    文章目录 前言 一 实例要求 二 主要问题点 1 保存请求中的文件 2 JSON的简单处理 3 Servlet共享数据 实现勾选信息导出为excel 三 源码 总结 前言 这里是javaweb小白第一次尝试写博客 主要是想记录一下自己在学习
  • vue 简单实现vuex原理

    效果图如下 1 准备好环境 使用 vue cil 初始化项目配置 npm install g vue cli 全局安装 vue cli vue create demo vue 创建项目 yarn add vuex安装vuex创建一个stor
  • 什么是区块链?区块链相关知识区入门

    初识区块链 1 区块链家族 一 去中心化 父亲 基本概念 中心化和去中心化就是集权与分权 去中心化是一种哲学中思想 在人类存在时即有 主旨为弱化中心 实现人与人之间的直接沟通 交易的一种方式 去中心化 不是不要中心 而是由节点来 自由选择中
  • 使用gdb调试出现 No debugging symbols found in a.out

    使用常规的gcc编译或者使用带调式信息 g的编译都有可能会在使用gdb工具的时候出现No debugging symbols found in a out错误 1 常规编译 使用常规编译生成的可执行文件正常一定会出现No debugging