繁体   English   中英

如何阅读C ++崩溃信息

[英]How to read C++ crash info

嗨,我面对的是某些事情

*** glibc detected *** /usr/lib/R/bin/exec/R: double free or corruption (out): 0xb1f64430 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x6ebc2)[0xb73f3bc2]
/lib/i386-linux-gnu/libc.so.6(+0x6f862)[0xb73f4862]
/lib/i386-linux-gnu/libc.so.6(cfree+0x6d)[0xb73f794d]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb684680f]
XXX.so(_XXXDXEv+0x30)[0xb66fab00]
...
/usr/local/lib/libboost_thread.so.1.46.1(thread_proxy+0x69)[0xb694a3a9]
/lib/i386-linux-gnu/libpthread.so.0(+0x6d31)[0xb7508d31]
/lib/i386-linux-gnu/libc.so.6(clone+0x5e)[0xb74570ce]
======= Memory map: ========
08048000-08049000 r-xp 00000000 08:05 11536433   /usr/lib/R/bin/exec/R
08049000-0804a000 r--p 00000000 08:05 11536433   /usr/lib/R/bin/exec/R
0804a000-0804b000 rw-p 00001000 08:05 11536433   /usr/lib/R/bin/exec/R
09c38000-0a885000 rw-p 00000000 00:00 0          [heap]
b1a00000-b1aae000 rw-p 00000000 00:00 0 
...

我只是想知道......在我自己的方法结束时,与XXX有关,什么是DxEv? 我自己的所有方法都附加了D0Ev,D1Ev或D2Ev? 这有什么意义吗?

然后呢0x30怎么样? 那是我班上的字节数吗? 还是功能地址? 我能以某种方式解决它吗?

谢谢

_XXXDXEv是一个_XXXDXEv的函数名称 - 使用c++filt进行解码。

(_XXXDXEv+0x30)表示回溯的级别为该函数的代码中的48个字节。

尝试在gdb下重新运行,或者如果有的话,在核心文件上运行gdb,以获取更多详细信息。

它是一个所谓的错位名称(即由编译器使用参数和返回类型进行修饰)。 您可以使用c++filt实用程序来获取函数签名。 0x30是函数代码流的一个偏移量,从起始位置开始,以字节为单位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM