溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用windbg調試分析dump文件解決Unity問題

發布時間:2021-12-28 14:36:37 來源:億速云 閱讀:801 作者:柒染 欄目:大數據

今天就跟大家聊聊有關如何用windbg調試分析dump文件解決Unity問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

術語、縮略語

windbg 

windows平臺下,強大的用戶態和內核態調試工具。

dmp

內存映像文件,一般是系統錯誤產生的文件。

Pdb

程序數據庫文件。

Symbol

符號文件(Symbol Files)是一個數據信息文件,它包含了應用程序二進制文件(比如:EXE、DLL等)調試信息


概述

Windbg是Windows平臺下強大的工具。相比較于Visual Studio,它是一個輕量級的調試工具,所謂輕量級指的是它的安裝文件大小較小,但是其調試功能,卻比VS更為強大。它的另外一個用途是可以用來分析dump數據,還可以調試進程死鎖之類的。調試功能,類似于Visual Studio,還支持命令方式。該文檔只適用于VC++,而C#的還需要額外進行一些配置,原理大致相同。

Windbg只是一個工具,要掌握其基本的使用方法,和調試命令,在實踐中不斷完善自己的調試手段。同時可以參考一下大師們的文獻《Windows用戶態程序高效排錯》,《Windows高級調試》,《軟件調試》


下載

Windbg使用非常廣泛,網上非常多的下載版本,而且文檔也比較多,可以到CSDN或者其他網站下載,支持綠色包運行。


配置

Windbg在使用前,需要進行配置。

1.1環境變量

1、添加環境變量:_NT_SYMBOL_PATH

2、環境變量值:

C:\MyCodesSymbols;SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols

環境變量配置

3、根據環境變量值,在C盤下新建文件夾:MyCodesSymbols,MyLocalSymbols這兩個文件夾主要存放windows的符號文件,也就是系統默認的一些pdb文件,這些文件不是系統自帶的,需要配置好鏈接,第一次調試的時候windbg默認下載需要的缺失的symbol文件。


Windbg工具配置

符號配置Symbol File Path

C:\MyCodesSymbols;SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols

符號配置

源碼路徑配置Source File Path

工具不會智能定位到相應的源碼,所以要配置你的源碼工程的路徑,是工程文件(例如這種格式的文件:*.vcxproj)所在的路徑。

編譯器配置

支持VC6以上的Visual Studio編譯器,設置相關的屬性

生成程序數據庫文件

使用

工具進行使用前配置后,可以進行工作了。這里介紹綁定進程進行調試的操作步驟。


綁定進程

注意,進程要先啟動再進行綁定設置,因為Attach to Process窗口不會像任務管理器一樣實時刷新進程。選中進程名稱,點擊Ok確認。

綁定進程


調試

綁定進程后,可以在命令窗口輸入g字母命令,然后回車?;蛘哂每旖萱IF5。即可在調試中運行進程了。注意:須要pdb文件,和exe或dll放在一起,或者上文提到的把pdb文件放在C:\MyCodesSymbols目錄。因為調試信息都是根據pdb的文件時間戳進行定位歷史文件的,所以在發布版本后,最好備份一下代碼和文件。否則版本發出去了,原生源碼進行編譯了,pdb不一樣了,源碼被修改了,那么抓取到的*.dmp內存映像就不能準確地調試。

程序被windbg綁定后,F5運行,現在可以正常操作軟件了。這時候軟件有異常,命令窗口會打印相關的異常命令。

調試

輸入小寫字母k命令,即可打印堆棧。左窗口也是相應的源碼,像vs那樣調試。

調試工具欄

如局部變量數據展示窗口:Locals

命令

除了基本的可視化調試之外,windbg支持命令進行其他的內核調試,可以根據實際需要進行使用,下面簡單介紹常用的命令:

1、查看版本信息:version、vertarget。

2、查看模塊信息:lm、!dlls、!lmvi等。

3、調用棧:用k命令顯示調用棧,用.frames命令切換棧幀。

4、內存操作:讀內存用d命令,寫內存用e命令。

5、自動分析:!analyze、!owner等。

6、符號命令:.reload加載符號, .sympath設置符號路徑, !sym設置符號選項。

7、進程線程:!process顯示進程信息;.process顯示當前進程,或用.process /i切換當前進程;!peb顯示進程環境塊內容;~命令顯示線程列表,用~n s可切換當前線程,n表示線程號;.thread顯示當前線程。

分析dmp文件

Windbg是調試的利器,可以綁定進程進行調試,也可以調試進程的內存映像*.dmp文件,一般是進程崩潰后系統產生的dmp文件,或者程序try catch用代碼生成的dmp文件。分析dmp文件,也大致上以上步驟,只不過上面是綁定文件,這個是打開dmp文件而已。

擴展

綁定進程,調試dmp文件,當然除了windbg之外,還可以直接用vs編譯器,這是最好不過的事,只是vs編譯器體積實在太大了,沒有windbg小巧方便。

看完上述內容,你們對如何用windbg調試分析dump文件解決Unity問題有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女