lldb - 在抛出C ++异常之前中断

时间:2015-11-18 23:38:40

标签: c++ macos exception-handling lldb

在lldb中,我希望在C ++抛出异常之前中断,在生成实际信号时。我想为任何类型的例外做这件事。

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

我想打破异常的原因并忽略C ++ throw / catch,就像应用程序崩溃一样。对于没有源代码的应用程序,我也喜欢这样做。

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

1 个答案:

答案 0 :(得分:1)

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

C ++中的异常抛出做两件事,创建异常对象,然后直接调用一些运行时例程(大多数Unixen上的__cxa_throw)来实现展开。后者是异常断点停止的点。除此之外,还没有任何可以挂钩的初步信息。

您可以在分配异常对象时尝试中断。在OS X& Linux这是__cxa_allocate_exception,但我不知道是否总会被调用或者是否有其他方法可以进行异常......我不知道你将从中获得多少收益,但是,它& #39;稍后您将看到对throw方法的调用。

但也许如果你描述了你实际上想要解决的问题,我们可以更有帮助地回答......