gdb no symbol 问题
最近在rhel6上发现奇怪的问题,g++ -g 编译的程序,在gdb中打印不出任何变量的值。直到搜到了[这个]
原因
原版装的gcc低于4.8,因为项目中需要c++11的功能,将gcc升级到了4.8.2,而没有升级gdb,而gcc4.8生成的默认调试信息格式改为了DWARF4,老版的gdb不能解析。解决方法
gcc -gdwarf-3
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
1.7k累计阅读
1.7k平均单平台
已同步平台
CSDN
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄20年
最近在rhel6上发现奇怪的问题,g++ -g 编译的程序,在gdb中打印不出任何变量的值。直到搜到了[这个]
原因
原版装的gcc低于4.8,因为项目中需要c++11的功能,将gcc升级到了4.8.2,而没有升级gdb,而gcc4.8生成的默认调试信息格式改为了DWARF4,老版的gdb不能解析。
解决方法
gcc -gdwarf-3
C++(Qt)软件调试---验证GCC编译优化和生成调试信息(8)
我们可以通过学习GCC编译器参数,在程序编译时选择合适的优化参数和生成调试信息参数,在运行性能、程序大小、调试方便三个方向进行权衡利弊。 例如在不需要考虑性能时可以完全关闭优化,生成尽可能多的调试信息,以方便调试; 而有些程序运行需要一定的性能,就可以选择开启一定较低级别的优化。 文章中所述内容多有不足,欢迎一起交流学习。
gdb与symbol符号表文件的调试
今天在调试程序的时候发现,在测试部测试的程序都是剥离了符号表的,导致用gdb无法调试,只有找到符号表文件才能继续gdb调试,好在符号表文件是和程序一起发布的。之前一直没有用符号表文件进行调试过,今天记录一下。
出现GDB No symbol "xxx" in current context的几种原因分析
在进行gdb调试时(包括使用core dump文件调试),经常出现GDB No symbol “xxx” in current context问题,常见的几种原因如下: 1、使用gcc编译的时候未使用-g选项。或者加了-g选项,同时使用了-o选项。建议编译的时候使用-g选项的时候,同时使用-Og可以关闭编译优化(-O选项较低gcc版本不支持)。 2、编译的可执行程序的调试信息格式与GDB所支持的...
【Linux】Linux下调试器-gdb
gdb
gdb 看变量遇到问题之No symbol “fmt_out“ in current context
【代码】gdb 看变量遇到问题之No symbol “fmt_out“ in current context。
GDB调试入门与“No symbol in current context“问题
Linux下打开终端输入GDB,可以看到相关信息: 输入help获取帮助信息: 输入带调试程序: #include<stdio.h> void f() { printf("f() is called!!!\n"); } int main(int argc, char* argv[]) { printf("1\n"); printf("2\n"); printf("3\n"); printf("4\n"); f(); .
GDB调试No symbol “a“ in current context.问题笔记
(这里博主是个初见程序设计一个月的大学牲,个人经验仅供参考,如有错误欢迎指正)这个问题出现在使用watch命令监视变量a的时候。
初次使用gdb调试器,出现的No symbol table is loaded. Use the "file" command.问题
初次使用gdb调试器,中间出了好多问题,例如标题所说的No symbol table is loaded. Use the "file" command.问题,是最常见的。看书时,开章就提示注意-g问题,结果还是在这个-g上栽了沟,请初次使用者一定要注意这个问题! 总结一下进入gdb环境的基本步骤: 1. 首先使用gcc -g .c文件 -o 可执行文件名 进行编译,再使用
gdb调试出现的No symbol table is loaded. Use the "file" command.问题
初次使用gdb调试器,中间出了好多问题,例如标题所说的No symbol table is loaded. Use the "file" command.问题,是最常见的。看书时,开章就提示注意-g问题,结果还是在这个-g上栽了沟,请初次使用者一定要注意这个问题! 总结一下进入gdb环境的基本步骤: 1. 首先使用gcc -g .c文件 -o 可执行文件名 进行编译,再使用...
CentOS下gdb升级(解决No symbol "***" in current context问题)
gcc升级到了发现gdb调试看不到中间变量信息了,提示:No symbol "***" in current context。网上查资料怀疑是 1、下载最新版gdb 7.10.1源码包 http://ftp.gnu.org/gnu/gdb/, 我下载的是7.10版本http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.gz,将源码包放在/us
GCC升级到4.8之后,gdb调试No symbol "XXXXX" in current context问题
将GCC升级到4.8之后,使用旧版本的gdb,在调试时会出现以下2个问题: 1. 编译选项设为-g -O0,但是cgdb进去时不在main函数入口处。 2. 提示No symbol "XXXXX" in current context 以上问题是由于GCC 4.8使用dwarf4(gcc.gnu.org/gcc-4.8/changes.html),而GDB不识别。 解决方法有2种: 1
初次使用gdb调试器,出现的No symbol table is loaded. Use the “file“ command.问题
初次使用gdb调试器,中间出了好多问题,例如标题所说的No symbol table is loaded. Use the "file" command.问题,是最常见的。看书时,开章就提示注意-g问题,结果还是在这个-g上栽了沟,请初次使用者一定要注意这个问题! 总结一下进入gdb环境的基本步骤: 1. 首先使用gcc -g .c文件 -o 可执行文件名 进行编译,再使用gdb + 可执行文件名进入gdb环境,进行调试。 命令如下如: (1) gcc -g test.c -...
gdb调试时No symbol "var" defined in current context,局部变量不可查看问题
调试程序时,在gdb内p var,会提示 No symbol "var" in current context. 即使没有使用任何编译优化选项,仍然不能查看,放狗搜了一下,可能是这些变量被优化到寄存器中,gdb无法读取。 解决方案: 在编译是加入 ‘-gstabs+’ 选项,比如: g++ -g -Wall -gstabs+ -o main.o main.cpp gdb main,
gdb调试中出现No symbol table is loaded. Use the "file" command.问题
在unix/linux系统下使用gdb进行调试时,如果出现: No symbol table is loaded. Use the "file" command. 原因是没有在Makefile中添加-g调试参数,或者添加位置出错,解决的办法是在Makefile文件的第一行加上: CFLAGS = -g 然后重新make即可。 转载于:https://www.cnblogs.com/soph...
出现GDB No symbol “xxx“ in current context的几种原因分析
编译的时候,如果使用了-g选项,GCC4.8及其以上的版本默认使用-gdwarf-4 -fno-debug-types-section选项,也就是使用DWARF4调试信息格式。如果gdb的版本只支持DWARF2或者DWARF3,在使用gcc编译的时候可以使用-gdwarf-2或-gdwarf-3选项来指定调试信息格式,已和gdb保持一致。建议编译的时候使用-g选项的时候,同时使用-Og可以关闭编译优化(-O选项较低gcc版本不支持)。2、编译的可执行程序的调试信息格式与GDB所支持的不一致。
linux环境gdb调试出现“No symbol table is loaded. Use the "file" command.”的问题
在linux环境下使用gdb调试的时候,出现了“No symbol table is loaded. Use the “file” command.”这样的提示,于是心生疑惑,这是为什么呢? 原来,在调试二进制文件的时候,我们需要在二进制文件中加入调试信息,而调试信息是怎么添加的呢?它是在编译的时候,通过-g选项添加的,即类似于gcc -g test.c -o test这样的命令。 因此,通...
gdb调试遇到的智障问题**No symbol table is loaded. Use the “file“command.**
No symbol table is loaded. Use the "file"command. gdbt调试使用list出现了以上错误 原因:编译可执行文件时遗漏了-g;
1023

被折叠的 条评论
为什么被折叠?



