首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solaris上的异常处理机制

Solaris上的异常处理机制
EN

Stack Overflow用户
提问于 2011-09-09 15:49:10
回答 1查看 271关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-09 17:36:21

不是100%,但你可以尝试模仿gdb的收集点的工作方式:参见http://www.delorie.com/gnu/docs/gdb/gdb_31.html关键信息如下:

“要在调用异常处理程序之前停止,您需要一些实现知识。在GNU C++的情况下,通过调用名为__raise_exception的库函数来引发异常,该库函数具有以下ANSI接口:

代码语言:javascript
运行
复制
/* addr is where the exception identifier is stored.
   id is the exception identifier.  */
void __raise_exception (void **addr, void *id);

若要使调试器在任何堆栈展开发生之前捕获所有异常,请在__raise_exception上设置断点。

所以,我猜你可以通过LD_PRELOAD技巧安装你自己的__raise_exception。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7358588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档