一、在主函數Main()調用的最前面增長下面兩行:函數
SetUnhandledExceptionFilter(UnhandledExceptionFilterEx);工具
PreventSetUnhandledExceptionFilter();優化
二、給Release版本程序增長調試信息,產生PDB文件:spa
a) 項目屬性>C++>調試格式爲Program Database;操作系統
b) 項目屬性>C++>程序優化爲禁止優化;命令行
c) 項目屬性>連接>調試>產生調試信息爲容許;調試
d) 項目屬性>連接>調試>產生調試文件Program Database File爲Yes;進程
打開Windbg工具,找到Crash進程,選擇附加到進程調試Attach to Progress,在命令行輸入:.dump /o/f H:/mydump.dum,後面是保存路徑。源碼
打開操做系統的任務管理器,選擇Crash進程點擊鼠標右鍵,選擇建立轉儲文件,會在指定的位置建立dump文件。it
獲得dump文件後,將exe,pdb和dump文件放到一塊兒,使用VS2015打開dump文件,選擇Debug With Native Only進行調試,在解決方案屬性中選擇源碼路徑,再調試並進入異常斷點處,或找到調用堆棧Call Stack,就能找到函數的調用以及源碼錯誤位置。