如何阅读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
是一个修改过的函数名-使用c++filt
来修改它
(_XXXDXEv+0x30)
表示回溯的级别为该函数的代码的48字节。
尝试在gdb下重新运行,或者如果有的话,在核心文件上运行gdb,以获得更多详细信息。
这是一个所谓的混乱的名称(即由编译器用参数和返回类型装饰)。您可以使用c++filt
实用程序来获取函数签名。0x30
是从开始到函数码流的偏移量,单位为字节。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 正在查找文档以获得PS4平台的C++中的设备信息
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 如何设置一个范围来提取我想要获得的信息
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- 我的单例中的数组在离开函数后没有保留信息,然后在尝试再次访问信息时崩溃
- 如果构造函数从调用到 std::make_shared 崩溃,GDB 是否可以显示崩溃的详细信息
- 程序崩溃,没有错误信息
- 如何阅读c++崩溃信息
- 如何从核心文件中获取有关崩溃的信息
- 记录器在崩溃后没有将记录的信息存储到文件中
- 排序算法在试图打印列表信息时崩溃