asp.net的各種調試方法


  一眨眼的功夫,自己已經學習asp.net的有一年的功夫了。雖然稱不上什么大神,但是也有一點知識的積累。就寫一片調試的入門文章給那些剛剛入門迷茫的童鞋們。希望你學習了我這篇文章能從迷茫的生活中找回編程的你。

  對於程序員說永遠也逃不了調試這個門檻。曾經記得有次,那是我還大一,學習的是c在vc下面,同學寫了一段代碼,就是計算每月的幾日對應找出這年的第幾天。這個非常簡單的問題我想誰都會有思路,但是我朋友代碼寫出來了,編譯運行也都通過了,但偏偏就是得到的結果不對。我一看他的代碼也沒發現什么問題,這個讓我情何以堪,於是我當即設置了斷點,運行了一下,一步一步的調試不到5分鍾吧問題解決了。問題的所在是他把這個月的天數多加進去了也就是在月這個for語句里面多了一個等號。這個很小的問題是不容易發現的。舉這個例子是為了告訴讀者調試對於程序員來說多么重要。我獨家之言:不會調試的人永遠不會編程。

  好了現在我們言歸正傳。寫這邊文章的目的是為了告訴那些開發asp.net的程序員如何調試,如何找到問題的所在。

  調試技巧1:

  最正規的調試,那就是配合系統的斷點調試功能。首先我們新建一個頁面,為了方便,我直接把代碼寫在頁面的Page_load函數里面。這里我寫的例子還是為了說明某月某日是這一年的第幾天的問題。代碼如下:

protected void Page_Load(object sender, EventArgs e)
    {
        //這里假設這一年是平年,每一個月的天數用枚舉法列出來就可以計算出某月某日是第幾天了
        //先簡單的測試一下我們輸入的數據是否正確 對其所以的天數求和
        Int32[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

        //利用Linq方法對其求和
        months.Sum();


    }

我們先把這個在解決方案里面找到這個頁面然后右擊這個頁面把它設置為起始頁。

然后在寫代碼的最左邊左機一下設置一下斷點。

好了一切的工作都已經完成了,我們開始調試把。按下F5,

我們的程序已經進入了調試的頁面了如下:

在紅色的里面多了一個黃色的箭頭,表示程序調試到這里。這里有一點需要注意,就是黃色這句還沒有執行。調試的命令這里備注一下F5表示的繼續的執行到下一個斷點,不管中間是什么代碼,程序順序的執行到下一個斷點。如果沒有斷點,那就直接跳轉到運行狀態了。F10表示的單句的執行調試命令但是如果遇到調用函數之類就直接跳過函數調試,如果你覺得是函數有問題那就按F11;如果你的函數很有信心,那就按f10跳過函數的調試。個人覺得f10和f11唯一的區別就是是否調試函數。

我這里調試按了一下f10跳轉到下一個調試點。就說明這個跳水點以上的語句都執行了。

我們可以看一下months.Sum()的結果為多少了。右擊months這個變量,然后選擇快速查看

然后輸入你想要查看的數據,比如我想查看months的和。

看到了沒這里顯示了value為365,就說明了我們數據是正確的。其實我們還有一種辦法。查看我們的數據

在底部找到一個watch1的對話框點擊它,

然后再他的Name中輸入Months.Sum(),在右邊就能顯示了我們需要的數據了。

正規的調試方法就寫到這里。

調試技巧2:

  巧用Response.Write方法。我想很多的從asp和php轉行過來的朋友都習慣用這種方法吧。比如我們要把要看一下求和的數據是多少,那就直接把結果Response.Write一下就可以了。

在用這個方法調試的時候記得在Response.Write后面加個return。原因很簡單,就是你希望把你執行到這個地方的語句統統的顯示出來。用處:這種調試的方法對於在服務器上調試錯誤還是有幫助的。因為服務器上不需要安裝開發環境,我們只能把出錯前面的代碼顯示出來看一下哪里有問題。(我以前也碰到過這樣的例子,我寫的動態的菜單,就是根據權限顯示不同的菜單選項。我這些寫好了整合到我同事那邊也ok,可是過了3天問題來了,同時說放到服務器上出現問題了,但是自己也是調試不出來,幸好有個工作了10年的同事過來幫忙,用Response.Write語句把sql語句輸出來,發現了sql語句里面的in是空的,沒有數據當然會報錯了,原來同事沒有吧我寫的數據腳本在服務器上運行,當時我也成長了)。

 

調試技巧3:

  這種方法說白了不算是真正的調試方案,因為他的調試需要和數據庫中查看哪里輸錯了。開發過項目的人都知道,一般的錯誤都是和數據庫交互的時候產生的,比較說,當我們插入的數據的長度超過了數據庫規定的長度,那就出錯了。好了那我該告訴你怎么調試了。首先打開SQL Server Profiler軟件,如果你的sql沒有自帶的那就網站找一下 安裝一下。

然后選擇新建跟蹤。文件菜單下面的圖標。然后輸入用戶名密碼登陸,在選擇事件對話框中把只要選擇RPC:completed、SQL:BatchCompleted、SQL:batchStarting這三個選項,然后選擇運行對話框。

這個時候我們在asp.net與數據庫操作試試看看發現了什么~

剛剛執行的語句被捕獲到了,哈哈

是不是很神奇,這里需要注意幾點,無論是數據庫自己的操作或者是asp.net與數據庫交互的操作這個SQL Server Profiler都會捕獲到。其實如果你長久的開着這個頁面會有很多的數據,那調試的時候,不希望在這么多條數據找東西吧,先清空一下跟蹤的記錄,在運行代碼就可以顯示運行代碼的語句了。

當然了這個SQL Server Profiler其實真正的用處不是這樣的,他是sql 用來調優用的,我這里只是大材小用,希望微軟不要找我哈哈。

就寫到這里了。分享是一種快樂,但是分享者希望得到的更多地是讀者的支持!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM