Solaris的异常处理机制
Exception handling mechanism on Solaris
我正在为c++应用程序构建一个错误处理机制。现在,我使用VectoredExceptionHandling完成了windows部分,我想知道Solaris上是否有类似的概念。基本上,无论何时从程序中的任何地方抛出异常,我都希望调用回调。在windows下,您可以使用AddVectoredExceptionHandler()
注册回调。如何在Solaris上执行此操作?
如果不能100%工作,但您可以尝试模仿gdb的捕获点工作方式:参见http://www.delorie.com/gnu/docs/gdb/gdb_31.html关键信息是:
"要在调用异常处理程序之前停止,您需要了解一些实现知识。在GNU c++中,异常是通过调用名为__raise_exception的库函数引发的,该函数具有以下ANSI C接口:
/* addr is where the exception identifier is stored.
id is the exception identifier. */
void __raise_exception (void **addr, void *id);
要使调试器在任何堆栈展开之前捕获所有异常,请在__raise_exception"
上设置断点所以,我的猜测是,你可以安装自己的__raise_exception通过LD_PRELOAD技巧,例如。相关文章:
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- Firebase C++VS2018 SDL2-在Firebase::app::create(..)上执行异常处理
- 使用 stoi 功能进行异常处理
- 子系统中的异常处理:本机
- 与异常处理程序中的操作员<<不匹配
- 数组 C++ 上的异常处理程序
- 异常处理:如果用户输入不是三个特定字符之一
- C++ 异常处理错误输出
- 视觉 std::矢量无异常:警告 C4530:使用了C++异常处理程序,但未启用展开语义.指定 /EHsc
- C++交换机状态异常处理
- 在字符串类上的成员函数和out_of_range异常处理
- 奇怪的消息 (_Base_bitset::_M_do_to_ulong) 从溢出异常处理程序中打印出来
- 执行视觉工作室异常处理模式
- 为什么隐式转换在异常处理中从派生到基?
- C++执行期间的类成员函数错误/异常处理
- C++ 中未处理的异常处理程序
- 用户定义的异常处理
- 与Java的InputMismatchException和IOException Handling等效的C++异常处理机制是什么
- Solaris的异常处理机制