日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扬长避短使用Windbg和Visual Studio高效调试调试你的代码

發布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扬长避短使用Windbg和Visual Studio高效调试调试你的代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

揚長避短使用WindbgVisual Studio高效調試調試你的代碼

?

經常被問及這樣的問題:

你為什么非要使用Windbg調試你的程序?

記得有一次面試的時候筆者也被問到這樣的問題,我的回答是:不是我非要使用Windbg, 只是在不同的情況下使用不同的工具會更加方便而高效。

?

那么這兩者到底有什么區別?在什么情況下用什么工具會更方便呢?

?

所謂尺有所短,寸有所長,那么筆者就總結一下在什么情況下用什么工具會更方便,可能不是100%的全面,但是應該可以說明一定的問題,希望給初學者以指引。

?

Case 1:

分析.dmp文件的時候,可以使用WindbgVisual Studio,但是windbg更高效,.dmp文件是發生問題時的進程轉儲文件,windbg集成了一系列的基本命令和擴展命令,一句話,只要是.dmp文件里面有的,你都可以很快的得到。

?

Case 2

問題沒有辦法重現,就是說測試人員并不知道問題是怎么跑出來的,或者代碼跑了幾個月,跑出來一個問題,沒有辦法調試,只能抓一個.dmp文件,然后就回到了Case 1.

?

Case 3:

內核調試,包括驅動,系統代碼,他們本身是運行在內核級的,而我們的程序運行在用戶態,如果希望調試這部分代碼,Visual Studio似乎有些力不從心,這個時候就是windbg發揮的時候了。

?

Case 4

調試多線程死鎖問題,用windbg很容易分析出來那個線程占用了那個鎖。

?

Case 5

分布式,RPC調用,利用Visual Studio看那個組件調用哪個組件很不方便,而是用windbg卻是一目了然。

?

Case 6

內存破壞問題,Visual Studio如果想查看內存破壞問題簡直比登天還難,除非破壞完了馬上crash,但是大部分的情況是內存破壞了,但是并不來表現出來,包括對破壞,棧破壞,windbg幾個命令就可以輕松搞定。

?

Case 7

內存泄漏問題,結合umdh, leakdiag這兩個工具,再加上windbg的內存分析,可以說沒有查不出來的內存泄漏。

?

注意:Windbg調試.Net代碼需要SOS擴展..

?

總結

首先需要說明的是本文的目的并不是說Visual StudioWindbg這兩個工具哪個好哪個差,只是說在不同的場合不同的工具可能更加高效,請大家不要誤解。另外Visual Studio絕對是Windows開發的利器, 在大多數Windows代碼開發,調試方面具有不可替代的作用,如果說Visual Studio是利器,那么Windbg絕對是個神器,在一些極端的場合絕對可以獨當一面。本文并沒有羅列所有的cases, 如果大家有什么好的建議可以提出來,如果有必要的話,我會繼續補充更多的cases. 待續.. ? ?

轉載于:https://www.cnblogs.com/pugang/archive/2012/06/24/2559697.html

總結

以上是生活随笔為你收集整理的扬长避短使用Windbg和Visual Studio高效调试调试你的代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。