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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

编程技巧 --- VS如何调试.Net源码

發(fā)布時(shí)間:2023/11/29 asp.net 39 coder
生活随笔 收集整理的這篇文章主要介紹了 编程技巧 --- VS如何调试.Net源码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

如題,在VS中如何調(diào)試 .Net 源碼呢?

一般來說,VS2022,都是默認(rèn)啟用 F12 轉(zhuǎn)到定義能夠看到源碼,如果大家發(fā)現(xiàn)自己無法使用 F12 查看源碼,可以在 "工具" -> "選項(xiàng)" -> "文本編輯器" -> "C#" -> "高級(jí)" -> "轉(zhuǎn)到定義",勾選所有選項(xiàng)就對(duì)了。

但是光以上的操作還是不夠的,這樣的可以查看源碼中類型和成員的聲明,但不能看到其實(shí)現(xiàn)。
比如,在WPF中,Code-Behind 中使用 FindResource() 查找資源,那我們直接 F12 轉(zhuǎn)到定義,則像這樣:

我們僅能看到他是 FrameworkElement 類型下的一個(gè)方法。并沒有具體實(shí)現(xiàn)。

示例

那我們?cè)趺纯此木唧w實(shí)現(xiàn)呢?

首先,我們需要有對(duì)應(yīng)的配置,那就是需要啟用源代碼單步執(zhí)行。

  1. 在"工具"(或"調(diào)試") -> "選項(xiàng)" -> "調(diào)試" -> "常規(guī)"下,確保:
    • 取消選擇"啟用僅我的代碼"。
    • 選擇"啟用源鏈接支持"。
  2. 在"工具"(或“調(diào)試”) -> "選項(xiàng)" -> "調(diào)試" -> "符號(hào)"下,選擇"Microsoft 符號(hào)服務(wù)器"。

這樣配置完之后,我們就可以使用"調(diào)用堆棧"窗口下載和加載符號(hào)進(jìn)行源碼調(diào)試。

這里需要注意,當(dāng)你配置完上述設(shè)置后,第一次啟動(dòng)應(yīng)用會(huì)有較長的一段符號(hào)加載的時(shí)間,耐心等待。

準(zhǔn)備

首先新建一個(gè)WPF項(xiàng)目,窗體中放置一個(gè)“測(cè)試按鈕”,然后創(chuàng)建一個(gè) Buttonstyle,像這樣:

<Window.Resources>
    <Style x:Key="buttonStyle" TargetType="Button">
        <Setter Property="Background" Value="Red" />
        <Setter Property="FontSize" Value="22" />
        <Setter Property="Foreground" Value="Yellow" />
    </Style>
</Window.Resources>
<Grid>
    <Button
        x:Name="button"
        Width="200"
        Height="80"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Content="測(cè)試按鈕"/>
</Grid>

然后,我們主窗體的 Loaded 事件中通過 FindResource() 來給這個(gè)按鈕綁定樣式,如下:

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
   button.Style = FindResource("buttonStyle") as Style; 
} 

調(diào)試

接下來調(diào)試就很簡單了,我們?cè)?Loaded 事件中打斷點(diǎn),命中斷點(diǎn)后,我們就可以直接通過 F11 進(jìn)入 FindResource() 的源碼方法體中了,如下:

從圖中也可以看出,它是可以進(jìn)行單步調(diào)試的,且也能獲取到上下文或參數(shù)的值。

小結(jié)

本文講解了如何通過 VS2022 調(diào)試 .Net 源碼,學(xué)會(huì)源碼調(diào)試,是一項(xiàng)強(qiáng)有力的技能。

通過調(diào)試源碼,可以逐步跟蹤代碼的執(zhí)行流程,觀察數(shù)據(jù)的變化,更直觀地理解代碼的運(yùn)行方式,深入理解框架工作原理。

更重要的是通過它分析問題根源,在調(diào)試過程中,你可以找到問題的根源,比如變量的狀態(tài)、方法的調(diào)用流程等,提升我們解決BUG的效率。

建議大家動(dòng)手實(shí)踐,提升自己的調(diào)試技巧。

參考鏈接

https://learn.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-dotnet-framework-source?view=vs-2022

總結(jié)

以上是生活随笔為你收集整理的编程技巧 --- VS如何调试.Net源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。