当 CRT 函数获取无效参数时,我正在使用 _set_invalid_parameter_handler 覆盖程序的默认行为,该参数会因 0xc0000417 (STATUS_INVALID_CRUNTIME_PARAMETER) 而崩溃。
这是我的处理程序:
void my_invalid_parameter_handler(
const wchar_t * expression,
const wchar_t * function,
const wchar_t * file,
unsigned int line,
uintptr_t pReserved
)
{
Log(L"Invalid parameter detected");
Log(L"expression= %s", expression);
Log(L"function= %s", function);
Log(L"file= %s", file);
Log(L"line= %d", line);
Log(L"pReserved= %p", pReserved);
}
我想记录信息并发送错误报告。在 Debug 构建中,我得到了有用的参数信息,但在 Release 构建中,所有参数都是 NULL,这不是很有用。有没有办法在发布版本中添加有用的信息?