Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solaris上的异常处理机制 我正在为C++应用程序构建一个错误处理机制。现在,我使用VectoredExceptionHandling完成了windows部分,我想知道Solaris上是否有类似的概念。基本上,每当从程序中的任何地方抛出异常时,我都希望调用回调。在windows下,您可以使用AddVectoredExceptionHandler()注册回调。对于Solaris,我该如何做到这一点?_C++_Exception Handling_Solaris - Fatal编程技术网

Solaris上的异常处理机制 我正在为C++应用程序构建一个错误处理机制。现在,我使用VectoredExceptionHandling完成了windows部分,我想知道Solaris上是否有类似的概念。基本上,每当从程序中的任何地方抛出异常时,我都希望调用回调。在windows下,您可以使用AddVectoredExceptionHandler()注册回调。对于Solaris,我该如何做到这一点?

Solaris上的异常处理机制 我正在为C++应用程序构建一个错误处理机制。现在,我使用VectoredExceptionHandling完成了windows部分,我想知道Solaris上是否有类似的概念。基本上,每当从程序中的任何地方抛出异常时,我都希望调用回调。在windows下,您可以使用AddVectoredExceptionHandler()注册回调。对于Solaris,我该如何做到这一点?,c++,exception-handling,solaris,C++,Exception Handling,Solaris,如果这能起作用,则不是100%,但您可以尝试模仿gdb的要点的工作方式:请参见以下关键信息: “在调用异常处理程序之前停止,您需要了解实现。在GNU C++中,通过调用一个名为y.raseeExExtExchange的库函数来引发异常,该函数具有以下ANSI C接口: /* addr is where the exception identifier is stored. id is the exception identifier. */ void __raise_exception

如果这能起作用,则不是100%,但您可以尝试模仿gdb的要点的工作方式:请参见以下关键信息:

“在调用异常处理程序之前停止,您需要了解实现。在GNU C++中,通过调用一个名为y.raseeExExtExchange的库函数来引发异常,该函数具有以下ANSI C接口:

/* addr is where the exception identifier is stored.
   id is the exception identifier.  */
void __raise_exception (void **addr, void *id);
要使调试器在堆栈展开之前捕获所有异常,请在_raise_exception上设置断点


所以,我猜您可以通过LD_预加载技巧安装自己的u raise_异常 VCTERDEXCEPROCEDATION处理< /COD>是SEH,不是C++异常。Solaris没有SEH异常。@ MalSalts:在Windows上的SEH之上不是C++异常吗?@马克西姆:MSVC++异常位于Win32,不确定Win64上的英特尔C++或MSVC++。我实际上不知道,我正在注册回调,它在抛出异常时被调用(通过抛出“…”);非常感谢。老实说,在UNIX世界中看到一个更“合适”的解决方案会给我留下深刻的印象——它的功能真是太奇怪了。。。我是说,人们编写异常处理程序是为了处理异常情况,对吗?那么,除非你是一个调试器,否则你为什么要在上面安装一些东西呢?但是,微软人有他们的想法,我相信他们在提供这种“向量化异常处理”时考虑到了这一点。