1

我们正在开发基于 Windows CE 的应用程序。目前,我们正在与许多仅在发布版本中发生的数据中止异常作斗争。我们只有有限数量的开发设备,它们实际上将它们的调试流输出到串行端口上。现在我们想知道是否可以使用 OemDataAbortHandler 来访问异常的内容(即写入调试流的所有内容),以便为诊断目的收集数据。理想情况下,我们可以创建一个包含如下数据的文本文件:

    Exception 'Data Abort' (4): Thread-Id=05a70002(pth=8252169c),
 Proc-Id=03cf000e(pprc=824f3d70) 'XXXX.exe', VM-active=03cf000e(pprc=824f3d70) 'XXXX.exe'
    PC=400323cc(coredll.dll+0x000223cc) RA=4003361c(coredll.dll+0x0002361c) SP=0102f27c, 
BVA=6464646c

现在,OemDataAbortHandler 的签名是:

void OEMDataAbortHandler(void);

有什么方法可以访问写入调试流的数据?

4

1 回答 1

0

您应该能够使用结构化异常处理 ( __try/ __except) 来过滤数据中止异常。异常时的处理器状态在内部函数的CONTEXT参数中返回。GetExceptionInformation请参阅try/except 的文档

于 2013-05-23T00:02:51.203 回答