我正在使用_set_invalid_parameter_handler重寫程序的默認行爲,當CRT函數獲取一個無效的參數,它將與0xc0000417(STATUS_INVALID_CRUNTIME_PARAMETER)崩潰。_invalid_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,這不是很有用。有什麼方法可以在發佈版本中添加有用的信息?
'除非使用CRT庫的調試版本,''參數都具有值NULL。 ' – 2012-03-10 16:02:52
謝謝。那麼回答我的問題。如果您將發佈爲答案,我會選擇它作爲正確的答案。 – sashoalm 2012-03-10 16:28:56