0
我不是在gdb和mdb但我知道很多专家认为: -mdb的代替gdb的catch throw?
`(gdb) catch throw`
这将中断任何时候抛出一个异常
我要在MDB任何类似的命令,它会随时中断抛出异常?
我不是在gdb和mdb但我知道很多专家认为: -mdb的代替gdb的catch throw?
`(gdb) catch throw`
这将中断任何时候抛出一个异常
我要在MDB任何类似的命令,它会随时中断抛出异常?
不,这并不存在;那是因为在Solaris上,它取决于你正在使用C++ ABI的编译器和/或编译选项(以及如何抛出异常)。
mdb
没有试图知道所有这些,Solaris上也没有gdb
(如果编译它,catch throw
将不适用于旧式或新式Sun CC二进制文件)。
你最好的选择是弄清楚“C++ ABI钩子”是什么,即在throw()
上调用哪些隐藏/内部函数,以及断点。或者,一旦你找到/列举了那些钩子,编写你自己的模块来实现一个::catch
命令(mdb
是可扩展的 - 模块调试器)。
编辑:(无耻插头)也看到this answer of mine(关于C++异常和DTrace的;“隐藏”功能名有可用于mdb
断点以及)。