程序在调试模式下崩溃:“无法解散”?
Posted
技术标签:
【中文标题】程序在调试模式下崩溃:“无法解散”?【英文标题】:Program crashes in debug mode: "unable to demangle"? 【发布时间】:2016-06-04 17:07:25 【问题描述】:在 Eclipse CDT 中,我的代码无法在调试模式下运行。我收到以下消息:
/build/gdb-HnfxP_/gdb-7.10/gdb/cp-support.c:1595: demangler-warning: 无法对 '_ZdvI7Vector3dESt6vectorIDTdvcvT__EcvT0__EESaIS4_EERKS1_IS2_SaIS2_EERKS1_IS3_SaIS3_EE' 进行解角(解角器因信号 11 而失败) 无法转储内核,请在下次执行 GDB 之前使用 `ulimit -c unlimited'。
使用https://d.fuqu.jp/c++filtjs/发现错位符号对应
std::vector<decltype (((Vector3)())/((double)())), std::allocator<decltype (((Vector3)())/((double)()))> > operator/<Vector3, double>(std::vector<Vector3, std::allocator<Vector3> > const&, std::vector<double, std::allocator<double> > const&)
为什么这会给我一个错误,我该如何解决?
【问题讨论】:
这看起来像是一个 GDB 问题,考虑添加一个适当的 GDB 标记,并带有 minimal reproducible example。它也看起来像一个 GDB 错误,可能是这个:sourceware.org/bugzilla/show_bug.cgi?id=19330? 【参考方案1】:我在gdb-7.10
上重现了此故障,并且可以确认此故障已在gdb-7.11
及更高版本中得到修复。我还没有找到修复此失败的确切提交。
除了升级到更高版本的 GDB 之外,您无法修复此问题。
【讨论】:
在我看到你的答案之前,我来这里是为了说同样的话——我从 gdb-7.10 升级到 gdb-7.11 并解决了这个问题。谢谢!以上是关于程序在调试模式下崩溃:“无法解散”?的主要内容,如果未能解决你的问题,请参考以下文章