如何在不调试符号的情况下确定从外部库引发的异常
How do you determine what exception is thrown from an external library without debugging symbols?
我在使用一段类似于下面的C++代码时遇到了一些问题:
try {
/* some code here */
} catch(...) {
/* ... */
}
我正在使用gdb逐步遍历try块中包含的代码,在某个时刻会抛出一些东西。我真的不知道它是什么,因为抛出的函数调用来自一个库,并且没有与之相关的调试符号
gdb有没有办法确定catch块中捕获了什么?
您可以尝试call current_exception()
,如果您的平台支持它,它将为当前异常返回exception_ptr
。然而,它并没有确切地指定exception_ptr中包含的内容,但您可以使用x
对其进行检查,看看是否能找到一些东西。
也有可能某个寄存器包含当前的异常数据,但您没有指定使用的体系结构。
相关文章:
- C++编程从外部文本文件定义数组大小
- 如何在 C/C++ 中从外部库调用函数
- OpenGL - 从外部文件绘制点
- 当使用lambda进行变量的复杂初始化时,如何处理从内部抛出的lambda外部异常
- C++使用其他命名空间中的符号,而不使它们可从外部访问
- 从外部文件C++调用函数
- 奇怪的消息 (_Base_bitset::_M_do_to_ulong) 从溢出异常处理程序中打印出来
- 如何将值从外部传递到结构函数
- 我可以有一个从外部不可见但未在标头中定义的静态友元函数吗?
- 从外部更改名称空间变量值(C )
- 可以从外部进程[C /Windows]移动/调整Windows
- 通过引用从 c++ 函数异常返回对象是否安全
- 如何从外部CMake设置CMAKE_TRY_COMPILE_TARGET_TYPE
- QT如何从外部C 类中处理按钮式事件
- Qt的GUI线程在从外部对象调用方法时是否会在引擎盖下生成线程?
- 在本地网络中从外部计算机到计算机的连接
- 如何使用shared_ptr从外部提供mock对象
- C ++ tiny-js 从外部文件执行 JavaScript 函数
- 我应该包括外部库的src代码还是从外部库构建的静态库
- 如何在不调试符号的情况下确定从外部库引发的异常