加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

c – GDB在启动时崩溃(内部错误:follow_die_offset)

发布时间:2021-01-14 09:08:08 所属栏目:Linux 来源:网络整理
导读:我在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 dete

我在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 $@ $<

Test: main.o D.o E.o B.o
    icpc -std=c++11  -o $@ $^

clean: 
    rm -f D.o E.o B.o Test main.o

.PHONY: all clean 

如果我这样做会发生错误:

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,问题真的消失了,对我来说至少.

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读