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

lldb - breaking before C++ exception thrown

本文关键字:中断 异常 C++ lldb-      更新时间:2023-10-16

在lldb中,我想在C++抛出异常之前中断,在生成实际信号时中断。对于任何类型的异常,我都愿意这样做。

以下命令将中断C++投掷捕捉器中断集-E c++

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

这里有我可以用的lldb巫毒吗?

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

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

您可以在分配异常对象时尝试中断。在操作系统X&Linux这是__cxa_lallocate_exception,但我不知道它是否总是会被调用,或者是否有其他方法可以引起异常。。。我看不出你会从中得到什么,但是,只需几条指令,你就会看到对throw方法的调用。

但如果你描述一下你真正想解决的问题,我们可以更有用地回答。。。