原文:如何定位Release 版本中程序崩潰的位置 ---利用map文件 攔截windows崩潰函數

案例描述 作為Windows程序員,平時最擔心見到的事情可能就是程序發生了崩潰 異常 ,這時Windows會提示該程序執行了非法操作,即將關閉。請與您的供應商聯系。呵呵,這句微軟的 名言 ,恐怕是程序員最怕見也最常見的東西了。 在一個大型軟件的測試過程中,初期出現程序崩潰似乎成了不可避免的事。其實測試中出現程序崩潰並不可怕,反而是測試的成功。作為開發的我們更需要關心的是程序中的哪個函數或哪一行導 ...

2014-10-13 23:11 0 3127 推薦指數:

查看詳情

dump文件定位程序崩潰代碼行

1.dump文件 2.程序對應的pdb 步驟一:安裝windbg 步驟二:通過windbg打開crash dump文件 步驟三:設置pdb文件路徑,即符號表路徑 步驟四:運行命令!analyze -v,這是windbg提供的一個自動分析命令,正常情況下,會顯示出導致崩潰的行為,其所在文件 ...

Wed Dec 30 02:45:00 CST 2015 0 3512
windows程序崩潰生成dump文件

第一種: 通過任務管理器:這種適用在程序掛了(crash)的時候進程還未退出,比如我運行程序,出現了下面的錯: 此時打開任務管理器,右擊相應進程,點擊"Create Dump File“: 一會創建完成: 然后把這個DMP文件拷到開發機器上,用VS打開: 會出現下面的界面,要想 ...

Sat Feb 11 06:30:00 CST 2017 0 10474
Debug不崩潰Release版本崩潰的一種原因

今天有一個工程Debug是正常,Release崩潰,郁悶至極。 研究了一下下午,原因是一個類成員變量沒有構造函數中初始化。而Debug版本正好沒有問題。 所以定義類成員,一定不能忘記初始化!! ...

Thu Jun 16 06:58:00 CST 2016 0 1586
(Windbg調試二)Windows下c++程序崩潰問題定位

Windows下c++程序崩潰問題定位 一,WinDbg調試 二,地址偏移計算驗證 三,通過map文件定位程序崩潰代碼行數 Windows下c++程序崩潰問題定位主要依賴於代碼編譯過程中生成的調試信息文件,比如.map和.pdb ...

Sat Feb 06 22:12:00 CST 2021 0 455
利用Android的崩潰日志來定位問題

之前項目打包混淆的時候,都沒有留下什么有意義的文件,導致運營那邊反饋過來的崩潰日志(最典型的就是Google Play), 都沒有好好利用,因為里面的日志很多都是混淆過的類、方法與變量,很難定位問題。 最近發現了: 只要在混淆的時候,加入以下的命名,就可以生成一個類、方法與變量的混淆 ...

Thu Aug 30 21:20:00 CST 2012 2 6144
Windows 程序 dump 崩潰調試

Windows 程序捕獲崩潰異常 生成dump 概述 事情的起因是,有個同事開發的程序,交付的版本程序,會偶爾隨機崩潰了。 悲催的是沒有輸出log,也沒有輸出dump文件。 我建議他給程序代碼加個異常捕獲,在崩潰時生成dump,方便找出問題點。 隔了一天之后,短暫交流,發現他沒有這個開發 ...

Mon Sep 10 20:07:00 CST 2018 0 1520
Debug版本正常運行,Release版本編譯通過但運行崩潰

解決這個問題之前,第一個想的是Debug版本Release版本有什么區別 Debug版: 經過編譯器編譯出的項目.exe文件大,而且生成的二進制命令沒有經過編譯器的優化。項目中包含着豐富的調試信息,供programer調試程序。這就是為什么,當我們在Debug程序的時候,為什么程序就會 ...

Thu Mar 22 00:36:00 CST 2018 0 1561
Windows進程崩潰問題定位方法

  Linux上進程崩潰通常會生成core文件,用gdb打開后執行bt命令即可查看堆棧。而在Windows平台上,我們通常會采用MiniDumpWriteDump來進行堆棧轉儲,而這需要對系統Api有一定的了解和編寫一些代碼。本文就結合實際項目經驗,總結了一種無需編碼即可記錄進程崩潰堆棧的方法 ...

Thu Apr 02 19:37:00 CST 2015 4 1998
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM