在CWndApp :: ProcessWndProcException中获取callstack信息(CException * e,const MSG * pMsg)

时间:2015-06-05 21:45:27

标签: c++ visual-c++ mfc callstack

我有一个广泛使用MFC的应用程序。每当MFC内部断言失败时,我的用户就会得到一个无用的“遇到错误的论点”弹出窗口。我想在这些问题中添加额外的日志记录以更好地帮助追踪实际问题,因此我想使用CWndApp :: ProcessWndProcException。但是,我不知道除了“遭遇不正确的参数”之外,如何从异常中获取任何信息,这只是MFC产生的默认消息。有没有办法在此消息中获取调用堆栈信息(或异常来源)?

1 个答案:

答案 0 :(得分:0)

CException不保留catch语句的调用堆栈信息。

您可以从CException派生一个类型,为堆栈跟踪字符串添加额外字段,为原始异常添加InnerException,然后使用catch处理程序包装异常抛出代码,该处理程序在堆栈遍历后重新抛出包装器异常。