【发布时间】:2020-04-14 03:23:32
【问题描述】:
我使用 CLion 制作了一个 WinAPI DLL,并通过 LLDB 调试器(在 CLion 内部)进行调试。因此,如果我的 DLL 目标进程崩溃时存在未捕获的异常并且调试器不会中断,那么断点可以正常工作。但是如果目标进程中出现异常,调试器就会正常工作。有什么解决办法吗?
【问题讨论】:
-
或许你可以切换到VS或者WinDBG。
-
@user7860670 这是我目前发现的唯一方法,有效但不太舒服
-
我不知道 C++ 异常抛出在 Windows 上是如何工作的。 lldb 通过在启动抛出过程的函数上放置断点来捕获异常抛出。在大多数 Unix 系统上,这是来自 C++ 运行时支持库的单个函数。从您的描述中听起来,来自 DLL 的异常的传播方式不同,并且 lldb 中缺少对此的支持。如果您有时间,请向bugs.llvm.org 提交一个错误以显示该问题,Windows 端的某个人应该能够很容易地修复它。