GDB 逐步执行中显示的未知代码
Unknown code showing in GDB step through
我正在运行GDB,在逐步执行一些简单的C++代码时,它开始显示下面的代码。有没有人知道这段代码是什么?
_Unwind_SjLj_Register (fc=0x28feac) 在。。/../../../src/gcc-4.6.1/libgcc/../gcc/unwind-sjlj.c:126126 ../../../../src/gcc-4.6.1/libgcc/../gcc/unwind-sjlj.c:没有这样的文件或目录。 在。。/../../../src/gcc-4.6.1/libgcc/../gcc/unwind-sjlj.c(GDB) 步骤128 英寸 ../../../../src/gcc-4.6.1/libgcc/../gcc/unwind-sjlj.c(GDB) 步骤131 英寸 ../../../../src/gcc-4.6.1/libgcc/../gcc/unwind-sjlj.c(GDB) 步骤133 英寸 ../../../../src/gcc-4.6.1/libgcc/../gcc/unwind-sjlj.c
从源代码(不知道这是否是你正在使用的确切版本,但应该足够接近以获得这个想法):
//
// Called at start of each function that catches exceptions
//
EXPORT void _Unwind_SjLj_Register(struct _Unwind_FunctionContext* fc)
{
fc->prev = __Unwind_SjLj_GetTopOfFunctionStack();
__Unwind_SjLj_SetTopOfFunctionStack(fc);
}
通常,在后台的编译C++代码中会发生很多事情。单步执行代码时,您经常会遇到名称神秘的编译器生成的函数、库函数(如您遇到的函数)等。
unwind
通常表示异常处理代码,因此看起来您已经进入了throw
指令。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 为什么我得到以下代码地址清理器:未知地址错误的SEGV
- 在带有模板的函数中传递未知大小的 std::数组.如何更正此代码?
- CudaError未知代码= 30在任何cuda调用上
- 未知 使用用于C++代码的标头编译 C 代码时char16_t未知类型名称
- 代码在我的系统中运行良好,但 coursera 自动评分器给了我未知的信号
- 模板函数的返回类型未知,使用 decltype 时代码重复
- 示例代码 (C++) 中的未知异常格式
- GDB 逐步执行中显示的未知代码
- 在Cocoa/Objective-C项目中包含C++代码时'class'未知类型名称
- 如何调试未知代码中的异常
- 克鲁斯卡尔算法代码因未知原因而崩溃
- 排序算法代码中的未知问题
- 在 Visual Studio 中编译 gcc 代码会导致错误 C3646:"__attribute__":未知的覆盖说明符
- 代码中出现未知错误