【问题标题】:CLion LLDB doesn't break on uncaught exceptionCLion LLDB 不会因未捕获的异常而中断
【发布时间】: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 端的某个人应该能够很容易地修复它。

标签: c++ winapi dll clion lldb


【解决方案1】:

您是否在 Run 菜单 - View breakpoints 窗口中启用了异常中断?

【讨论】:

    【解决方案2】:

    这经常发生在我身上,而且几乎总是罪魁祸首是标记为Disable until hitting the following breakpoint: 的部分设置为Any Exception。只需将该值更改为None,调试器就会在抛出异常时中断。

    我不知道此设置如何或为什么将自身更改为该值,但无论何时,异常断点都会停止工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-30
      • 2020-04-04
      • 1970-01-01
      • 2013-06-02
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      相关资源
      最近更新 更多