gdb 7.0警告:核心文件中的fpregset大小错误
gdb 7.0 warnings: Wrong size fpregset in core file
re在分析核心文件时,我的gdb 7.0会输出几个警告:
warning: Wrong size gregset in core file.
warning: Wrong size fpregset in core file.
warning: Wrong size gregset in core file.
warning: Wrong size fpregset in core file.
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
我不确定它是否相关,但我无法获得回溯:
(gdb) bt
#0 0x00000000 in ?? ()
操作系统体系结构为SUN Solaris 10 SPARC。
问题:
- 这些警告的原因是什么
- 为什么我不能检索回溯
- 如何解决这些问题
问题也可能出现在gdb中的程序中。我建议将gdb更新到最新版本(7.3.1)。此外,创建简单的测试程序并使用gdb分析其核心也会很有帮助,以确保您的实用程序运行良好。
"gregset"和其他错误表明gdb无法从核心文件中读取数据。如果你的程序失控并损坏堆栈,就会发生这种情况。gregset错误意味着gdb无法从核心文件中读取通用寄存器集。fpregset用于浮点寄存器集。预期的寄存器大小取决于平台。
如果您不能正确读取核心文件,bt将不起作用。
当我尝试在Solaris 10上使用gdb 7.6.2处理64位核心转储时,我也收到了fpregset警告(并且没有堆栈跟踪)。原因似乎是,Solaris 10的用户空间应用程序默认使用32位编译,而不支持64位核心cumps。
GDB IRC频道的人给了我以下参数:
--enable-64-bit-bfd
我还编译了一个64位版本的gdb(-m64),但这应该不是必需的。现在gdb可以在没有任何警告的情况下处理64位核心转储并创建堆栈跟踪。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- gdb 7.0警告:核心文件中的fpregset大小错误