MDB的接球投掷的替代品?



我对gdb和mdb不是很专家,但我所知道的是:-

      `(gdb) catch throw` 

这将在引发
异常时中断 我在 mdb 中是否有任何类似的命令,它会在抛出异常时中断?

不,这本身并不存在;这是因为在 Solaris 上,这取决于您的编译器和/或编译选项正在使用C++哪些 ABI(以及如何抛出异常)。

mdb并没有试图了解所有这些,在 Solaris 上也没有gdb(如果你编译它,catch throw将无法使用旧式或新式的 Sun CC 二进制文件)。

你最好的选择是弄清楚"C++ ABI 钩子"是什么,即在throw()上调用了哪些隐藏/内部函数,以及断点。或者,一旦找到/枚举了这些钩子,编写自己的模块来实现::catch命令(mdb可扩展 - 模块化调试器)。

编辑:(无耻的插件)另请参阅我的这个答案(关于C++异常和DTrace;那里的"隐藏"函数名称也可用于mdb断点)。

相关内容

  • 没有找到相关文章

最新更新