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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[原译]11个高效的VS调试技巧

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [原译]11个高效的VS调试技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

調試是軟件開發周期中的一個很重要的部分,有時很有挑戰性,有時候則讓程序員迷惑,有時候讓程序員發瘋,但是。可以肯定的是,對于任何不是太那個微不足道的程序來說,調試是不可避免的。近年來,調試工具的發展已經使得很多調試任務簡單省時了。

?

本文總結了十個調試技巧,當你使用VS的時候可以節省你很多時間。

1.懸停鼠標查看表達式

調試有時候很有挑戰性,當你步入一個函數想看看哪塊出錯的時候,查看調用棧來想想值是從哪來的。另一些情況下,則需要添加一些監視表達式,或者查看局部變量列表,這通常還是花費一些時間的,但是。如果你把你鼠標指向你感興趣的一個變量。你會發現事情簡單多了。而且,類和結構體可以通過單擊展開。這樣。你就可以方便快捷的找到你想查看的變量了。

?

2實時改變值

調試器不僅僅是一個分析程序崩潰或是異常結果的工具了,許多bug都可以通過步入新寫的函數,檢查函數是否如期望的那樣運行來預防。有時候你可能會好奇“如果條件為真函數會正確運行嗎”大多數情況下,根本不需要改變代碼重啟挑起,僅僅把鼠標懸停到一個變量上,雙擊值然后輸入一個新值就可以了。。

?

3.設置下一條語句

一個典型的調試情況就是通過單步跟蹤分析為什么一個函數調用失敗了。當你發現一個函數調用的另一個函數返回錯誤的時候你會怎么做?重啟調試?有更好的方法。拖動這個黃色的語句標識到你想下一步執行的語句前就可以了。比如你剛才失敗的那塊,然后步入。簡單,不是嗎?

?

4.編輯然后繼續

調試一個復雜的程序,或是一個插件的時候,在一個被調用很多次的函數處發現一個錯誤。但是不想浪費時間停下來,重新編譯然后重新調試。沒問題,僅僅在該處改正代碼然后繼續單步就可以。VS會修正程序然后繼續調試不需要重啟

?

注意,編輯然后繼續有大量的已知限制,首先,64位代碼是不行的。如果他如果為你的C#程序工作。就去工程設置的生成選項,然后目標平臺為x86.不要擔心。發布版的目標平臺和調試的時候是分開的。可以被設置為任何平臺。。

?

第二.編輯然后繼續改變在一個方法里應該是局部的。。如果你改變了方法簽名,添加一些新方法或是類。你就不得不重啟程序了。或者撤銷改變來繼續。改變方法也包含lambda表達式隱式修改的自動生成的代理類,因此也不能繼續。

?

5.方便的監視窗口

大概現代的調試器都有一個監視窗口,無論如何。VS允許你簡單的添加或移除變量。單擊空行,輸入你的表達式按下回車,或者是在不需要的表達式上按下Delete鍵就可以刪除了。

而且。從監視窗口你不僅僅可以看到“正常”的變量。你可以輸入$handles 來追蹤你的程序打開了多少句柄(可以方便的修復內存泄漏),輸入$err 可以看到上一個函數的錯誤碼,然后使用工具-錯誤信息可以看到更詳細的描述,或者輸入@eax(64位是@rax)來查看包含函數返回值的寄存器。

?

6.帶注釋的反匯編

使用交互式的反匯編模式可以使得優化程序的關鍵部分變得很容易,VS給出對應你代碼每一行的匯編指令,并且運行單步運行。同時,可以在任何位置設置斷點。而且,表達式的查看和修改也像在C++代碼里一樣

?

7.帶有棧的線程窗口?

調試多線程的程序是痛苦的。。或者也可以是很有趣的。取決于你的調試器。VS2010真正優美的特性是線程窗口的棧視圖,通過窗口的調用棧你可以方便的總覽線程。

?

8.條件斷點

如果你嘗試通過斷點再現一個罕見的事件,該情況引發了一些嚴重的錯誤。你可以添加條件斷點。定義一個斷點的條件,然后如果條件不成立,VS會忽略該斷點

?

9.內存窗口?

有些bug由不正確的結構體定義引起,忽略的對齊屬性等等。查看內存中的內容可以定位然后修復bug。VS提供了一個放百年的內存窗口,可以把值以8/16/32/64位的形式展示。還有浮點值。也允許實時改變他們。就像在文本編輯器里一樣。

?

?

10.轉到定義

這個特性不是直接關于調試的,而是關于瀏覽大項目的。如果你嘗試找到一些不是你自己寫的代碼中的錯誤,快速知道“這個類型是什么”或者“這個函數是干嘛的”,可以節省很多時間,VS通過一個轉到定義命令方便了你。

?

11.命令窗口

第十一的技巧chaau已經建議過了。確實可以節省很多時間,VS支持命令窗口,可以通過,視圖-其他窗口-命令窗口來啟動。一旦激活,你可以輸入不同的命令來自動化調試。舉個例子。你可以通過如下命令 簡單的模擬MFC COleDateTime? 變量。

? dt.Format("%Y-%m-%d %H:%M:%S")

許可

本文包括源代碼和文件在CPOL下授權。

?

原文地址:10plus-powerful-debugging-tricks-with-Visual-Studi

著作權聲明:本文由http://leaver.me?翻譯,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者博客鏈接,謝謝!

from:?http://www.cnblogs.com/lazycoding/archive/2012/10/03/2710738.html

總結

以上是生活随笔為你收集整理的[原译]11个高效的VS调试技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

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