我在Linux下有一个小C项目.当我尝试使用gdb调试可执行文件时,我收到以下错误:
../../gdb/DWarf2read.c:16760: internal-error: follow_dIE_offset:Assertion 'DWarf2_per_objfile->reading_partial_symbols' Failed.A problem internal to GDB has been detected,further deBUGging may prove unreliable.
我已经将项目强烈简化为以下代码并仍然得到相同的错误:
B.h:
#ifndef B_H_#define B_H_#include
B.cpp:
#include "B.h"B::B() {}
D.h:
#ifndef D_H_#define D_H_#include "E.h"class D: public E {public: D();};#endif /* D_H_ */
D.cpp:
#include "D.h"D::D() : E() {}
E.h:
#ifndef E_H_#define E_H_#include
E.cpp:
#include "E.h"voID E::set(const std::function
main.cpp中:
int main() {}
生成文件:
all: Test%.o: %.cpp icpc -c -std=c++11 -g -o $@ $
如果我这样做会发生错误:
gdb Test
然后调用
run
在gdb Cli中.
我的系统:
打开Suse 12.3,64bit
icpc –version:
icpc (ICC) 15.0.1 20141023
icpc -v:
icpc version 15.0.1 (gcc version 4.7.0 compatibility)
gdb –version:
GNU gdb (GDB) SUSE (7.5.1-2.1.1)
gcc –version:
gcc (SUSE linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]
我不知道给定代码有什么问题以及调试器崩溃的原因.例如,如果我注释掉类B的构造函数(它什么也不做,应该等同于默认构造函数),则错误不再出现.最佳答案看到这个帖子:https://software.intel.com/en-us/forums/topic/540685 – 它似乎是gdb中的一个问题,修复于7.9.更新我将gdb升级到7.9,问题真的消失了,对我来说至少. 总结
以上是内存溢出为你收集整理的c – GDB在启动时崩溃(内部错误:follow_die_offset)全部内容,希望文章能够帮你解决c – GDB在启动时崩溃(内部错误:follow_die_offset)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)