【问题标题】:lldb - breaking before C++ exception thrownlldb - 在抛出 C++ 异常之前中断
【发布时间】:2015-11-18 23:38:40
【问题描述】:

在 lldb 中,我想在 C++ 抛出异常之前中断,在实际信号生成时。我想为任何类型的异常执行此操作。

以下命令将在 C++ throw catcher 上中断 断集-E c++

我想中断异常的原因并忽略 C++ 抛出/捕获,就好像应用程序正在崩溃一样。我也想为没有源的应用程序这样做。

我可以在这里使用任何 lldb voodoo 吗?

【问题讨论】:

    标签: c++ macos exception-handling lldb


    【解决方案1】:

    我不完全确定你在问什么。

    C++ 中的异常抛出做两件事,创建异常对象,然后直接调用一些运行时例程(大多数 Unixen 上的 __cxa_throw)来实现展开。后者是异常断点停止的点。没有比这更初步的东西了。

    您可以在分配异常对象时尝试中断。在 OS X 和 Linux 上,这是 __cxa_allocate_exception,但我不知道它是否总是会被调用,或者是否有其他方法可以产生异常......我不知道你会从中获得多少好处,但是,它是只需几条指令,您就会看到对 throw 方法的调用。

    但也许如果您描述您实际尝试解决的问题,我们可以更有帮助地回答...

    【讨论】:

      猜你喜欢
      • 2013-10-02
      • 1970-01-01
      • 2016-11-01
      • 2011-03-05
      • 2013-03-17
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      相关资源
      最近更新 更多