我想使用类似于以下内容的代码来报告被零除,访问冲突等等。我的问题是,尽管设置了标志FORMAT_MESSAGE_IGNORE_INSERTS
,但消息在插入位置被截断
__try
{
int *p=0;
int i = *p; // access violation
}
__except (EXCEPTION_EXECUTE_HANDLER)
{
char message[1024];
FormatMessageA(
FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_IGNORE_INSERTS,
GetModuleHandleA("NTDLL.DLL"),
GetExceptionCode(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
message,
sizeof (message),
0);
OutputDebugStringA(message);
}
上面的代码在调试输出中产生"The instruction at 0x"
,这不是非常有用。
我做错了吗?