我们正在开发基于Windows CE的应用程序。目前,我们正在与许多数据中止异常作斗争,这些异常仅在发布版本中发生。我们只有有限数量的开发设备,它们实际上将调试流输出到串行端口。现在我们想知道是否可以使用OemDataAbortHandler来访问Exception的内容(即写入调试流的所有内容),以便收集数据用于诊断目的。 理想情况下,我们可以创建包含如下数据的文本文件:
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);
有没有办法访问写入调试流的数据?
答案 0 :(得分:0)
您应该能够使用结构化异常处理(__try
/ __except
)来过滤数据中止异常。在CONTEXT
内在函数的GetExceptionInformation
参数中返回异常时的处理器状态。请参阅documentation for try/except。