一、利用工具,比如crashfinder。先來測試一段簡單除0**出錯。
#include int crash(int x, int y)
int main()
當前**我用vs2008,release模式編譯一下。直接單獨執行一下exe,得到下面的錯誤。位置為 0x00401678。
二、我們把crashfinder放到release目錄下。如下圖所示。(注意,必須保證vs生成有.pdb檔案)
開啟crashfinder,選擇new,然後選exe進去,輸入401678,點find。結果如下圖所示。
程式準確顯示具體地方所呼叫的出錯函式。然後可以進一步仔細檢查。
定位crash問題
使用反彙編精確到一條彙編指令 addr2line可以精確到哪一行 但是一行 可能對應多條指令,所以如果條件允許的話,拿到帶有符號表的演算法庫,反彙編到具體指令。工作中出現乙個crash,首先定位到具體語句 mdevice getpixfmt framemsg mframe,framefmt 如果單看...
定位release的Crash位置
對於已經上線的應用,蘋果測試的應用,或者是release環境包導致的crash,我們就需要一些特殊的手段來通過crash log進行分析定位了。是工程名 1.匯出 crash 通過xcode的organizer檢視某台iphone裝置的devicelog,選擇需要的crash log,匯出 cras...
DSYM 檔案定位crash
重點是dwarfdump uuid命令 我們在ios開發中會碰到的很多crash問題,如果debug除錯模式的話,我們可以往往很容易的根據log的輸出定位到導致crash的原因,但對於已經上線的應用,或者是release環境包導致的crash,我們就需要一些特殊的手段來通過crash log進行分析...