什么是代碼調試(debugging)?進行代碼調試的基本方法有哪些?

文章目錄

  • 前言
  • 一、什么是代碼調試?
  • 二、常見的代碼調試方式
    • 2.1、手工跟蹤(hand trace)
    • 2.2、手工跟蹤的適用范圍
    • 2.3、使用調試工具
    • 2.4、調試工具具備的特性
  • 總結


前言

我們在項目開發過程中,經常遇到需要進行調試的代碼模塊。對于初學者而言,手工跟蹤最為有效和方便,一方面可以重新對于系統的內部邏輯進行一次梳理,另一方面還可以找到產生問題的地方。而對于高階的開發者而言,手工跟蹤的方式極大地浪費了時間,所以需要調試工具的幫忙。通過本文我將為大家介紹何為代碼調試?如何進行手工跟蹤和使用調試工具進行代碼調試,調試工具又該具備什么特性?

在這里插入圖片描述


一、什么是代碼調試?

查找和改正錯誤的過程稱為調試(debugging)。

調試的一般途徑是采用各種方法逐步縮小程序中 bug 所在的范圍。

二、常見的代碼調試方式

2.1、手工跟蹤(hand trace)

手工跟蹤(hand trace)程序(即通過讀程序找錯誤),也可以插入打印語句,顯示變量的值或程序的執行流程。

2.2、手工跟蹤的適用范圍

這種方法適用于短小、簡單的程序。

2.3、使用調試工具

對于龐大、復雜的程序,最有效的調試方法還是使用調試工具。

JDK 包含了一個命令行調試器 Jdb,結合一個類名來調用該命令。

Jdb 本身也是一個 Java 程序,運行本身的一個 Java 解釋器的拷貝。

2.4、調試工具具備的特性

所有的 Java IDE 工具,比如 Eclipse 和 NetBeans 包含集成的調試器。調試器應用讓你可以跟蹤一個程序的執行。他們因程序的不同,但是大都支持以下特征中的多數:

  • 一次執行一條語句:調試器允許你一次執行一條語句,從而可以看到每條語句的效果。
  • 跟蹤進入或者一步運行過一個方法:如果一個方法正在被執行,你可以讓調試器跟蹤進入方法內部,并且一次執行方法里面的一條語句,或者你可以讓調試器一步運行過整個方法。如果你知道方法是可行的,你應該一次運行過整個的方法。比如,通常都會一步運行過系統提供的方法,比如,System.out.println
  • 設置斷點:你可以在一條特定的語句上面設置斷點。當遇到一個斷點時,你的程序將暫停。你可以設置任意多的斷點。當你知道程序錯誤從什么地方可能開始的時候,斷點特別有用。你可以將斷點設置在那條語句上,讓程序先執行到斷點處。

對 Eclipse 斷點調試內容感興趣的同學可以點擊——Eclipse 答疑:如何使用 Eclipse 進行斷點(Breakpoints)調試?

  • 顯示變量:調試器讓你選擇多個變量并且顯示他們的值。當你跟蹤一個程序的時候,變量的內容持續更新。
  • 顯示調用堆棧:調試器讓你跟蹤所有的方法調用。當你需要看到程序執行的流程的宏觀圖景的時候,這個特征非常有用。
  • 修改變量:一些調試器允許你在調試的過程中修改變量的值。當你希望用不同的示例來測試程序,而又不希望離開調試器的時候,這是非常方便的。

總結

本文給大家介紹了什么是代碼調試,作為開發者,初學者和高階應如何選擇代碼調試的方式,不同的代碼調試方式又有何種不同,代碼調試工具應該具備什么特性可以滿足開發者需求。而現在我們常見的代碼調試工具多集成到了開發 IDE 中,如 Eclipse 和 IDEA。同時給大家引入了如何使用 Eclipse 進行斷點調試,作為拓展你會使用 IDEA 進行代碼調試嗎?

在這里插入圖片描述


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530763.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530763.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530763.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 格式轉換:利用格式轉換實現隨機數生成隨機 char 字母及 string 字母串

文章目錄前言一、char 型與數值型轉換規則二、隨機數生成隨機字母三、隨機數生成隨機字母串總結前言 我們都知道在 Java 語言中有八種基本數據類型,而不同數據類型之間的轉換你了解多少呢?今天我們通過本文帶你了解利用格式轉換實現 char 和 String 產生…

ssh 配置:在 Linux 中 ssh 配置無密碼登陸完整步驟以及易錯點分析

文章目錄前言一、什么是 SSH?二、ssh 配置無密碼登陸原理三、Linux 系統上生成 SSH 密鑰和公鑰四、登錄驗證總結前言 對于 Hadoop 的偽分布式和全分布式而言,Hadoop 的名稱節點(NameNode)需要啟動集群中所有機器的 Hadoop 的守護進…

Apache Hadoop 啟動報錯:masternode:ssh: connect to host master port 22: Connection timed out 總結

文章目錄前言一、錯誤場景描述二、問題總結及解決辦法2.1、IP 配置錯誤及解決方法2.2、端口被防火墻禁用及解決方法總結前言 最近在 Win10 系統上配置了ubuntu-18.04.3,在配置集群的 ssh 無秘鑰登錄時,經常能碰到 ssh: connect to host master port 22: …

大數據入門系列 1:全網最全,Windows 安裝 VMware Workstation 虛擬機完整步驟及需要注意的問題

文章目錄前言一、下載正版虛擬機不同版本1.1、通過官網進行下載 VM 虛擬機1.1.1、選擇所需版本下載1.1.2、VM 15.1.0 Pro for Windows 下載1.2、免注冊賬號又安全地下載虛擬機1.2.1、瀏覽器搜索下載需要的版本1.2.2、校驗下載包的安全性二、虛擬機安裝步驟2.1、進入安裝向導2.2…

Apache Hadoop 答疑:解決 Apache Hadoop 啟動時 DataNode 啟動異常的問題

文章目錄前言一、啟動 HDFS 并顯示當前所有 Java 進程二、DataNode 啟動異常場景描述三、DataNode 啟動異常解決方式四、Web 界面檢查 Hadoop 信息總結前言 本文用于解決 Apache Hadoop 啟動時 DataNode 啟動異常的問題,但是請注意這會刪除 HDFS 中原有的所有數據&a…

Java 跨平臺運行機理:Dos 命令在桌面新建文件夾,并在其中編譯、運行一段 Java 程序

文章目錄前言一、打開 Dos 命令界面二、Dos 查看桌面文件目錄序列三、Dos 創建文件夾四、相關 Windows 系統 Shell 命令補充五、Dos 進入文件夾編寫 Java 文件六、Dos 執行編譯命令編譯 Java 文件七、查看 .class 文件八、Dos 運行 Java 文件輸出信息九、Dos 刪除文件總結前言 …

大數據入門系列 5:全網最全,Hadoop 實驗——熟悉常用的 HDFS 目錄操作和文件操作

文章目錄前言一、實驗目的二、實驗平臺三、實驗內容和要求3.1、HDFS 目錄操作3.1.1、創建用戶目錄3.1.2、顯示 HDFS 中與當前用戶對應的目錄內容3.1.3、列出 HDFS 上的所有目錄3.1.4、用戶目錄下創建一個 input 目錄3.1.5、根目錄下創建 input 的目錄3.1.6、刪除子目錄3.2、HDF…

Java 操作符:Java 中操作符優先級、一二三元操作符及邏輯操作符的中德模佛定理

文章目錄前言一、操作符介紹與優先級表二、一元運算符與二元運算符的區別?三、Java 中唯一的三元操作符四、邏輯操作符中的德模佛定理總結前言 在 Java 中我們常見的操作符分為三種,分別是邏輯操作符、關系操作符、算術操作符,其優先級和結合…

Java 答疑:編譯器和解釋器有何區別?Java 語言屬于編譯型編程語言還是解釋型編程語言?

文章目錄前言一、Java 與 Java 字節碼二、什么是編譯器(Compiler)三、什么是解釋器(Interpreter)四、編譯器與解釋器有何區別?五、Java 語言屬于哪種語言?總結前言 我們都知道開發語言整體分為兩類&#xf…

Java 案例練習:編寫 Java 程序,輸入年份和月份,使用 switch 結構計算對應月份的天數。月份為 1、3、5、7、8、10、12 時,天數為 31 天。月份為 4、6、9、11 時,天數為

文章目錄一、練習題目二、使用 switch 語句實現代碼三、將代碼改寫回 if else 的選擇結構一、練習題目 編寫 Java 程序,輸入年份和月份,使用 switch 結構計算對應月份的天數。 月份為 1、3、5、7、8、10、12 時,天數為 31 天。 月份為 4、6、…

SRA 案例練習:解釋 CRUD 矩陣方法,并從上面 “用于化學品跟蹤管理系統的 CRUDL 矩陣示例”圖中找出被遺漏的需求,并解釋是如何找的?

文章目錄 一、練習題目二、CRUD 矩陣介紹三、矩陣分析四、尋找遺漏需求一、練習題目 解釋 CRUD 矩陣方法,并從上面 “用于化學品跟蹤管理系統的 CRUDL 矩陣示例”圖中找出被遺漏的需求,并解釋是如何找的。 二、CRUD 矩陣介紹 CRUD 矩陣是用于尋找遺漏需求比較精確的方法,其…

《軟件需求分析(第二版)》第 14 章——需求管理的原則和實踐 重點部分總結

文章目錄 前言一、討論二、簡答題三、名詞解釋總結前言 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清…

《軟件需求分析(第二版)》第 15 章——變更管理 重點部分總結

文章目錄 前言一、討論二、判斷題三、簡答題總結前言 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰…

《軟件需求分析(第二版)》第 16 章——需求鏈中的聯系鏈 重點部分總結

文章目錄 前言一、討論總結前言 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求。本文是…

《軟件項目管理(第二版)》第 10 章——項目收尾 重點部分總結

文章目錄 前言一、討論二、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 10 章——項目…

《軟件項目管理(第二版)》第 9 章——項目監督與控制 重點部分總結

文章目錄 前言一、討論二、選擇題三、判斷題四、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版…

SSM(Spring+Spring MVC+Mybatis)整合 1:整體概述、目錄內容及實驗環境介紹

文章目錄 前言一、概述二、系列文章全目錄三、實驗環境總結前言 通過本次 Java EE 三大框架(Spring、Spring MVC、MyBatis)原理、技術和方法的整合,大量的項目實踐實際動手能力,解決總結在 SSM 項目中存在的問題,為畢業設計以及后期從事 Java 相關開發工作打下堅實的基礎。…

Tomcat 服務:解決 Apache Tomcat 更新后 Tomcat9w.exe 無法啟動 Tomcat 服務的問題

解決 Tomcat9w.exe 無法啟動 Tomcat 服務的問題/解決 Apache Tomcat 更新后 Apache Tomcat 9.0 Tomcat9 Properties 配置不匹配的問題 文章目錄解決 Tomcat9w.exe 無法啟動 Tomcat 服務的問題/解決 Apache Tomcat 更新后 Apache Tomcat 9.0 Tomcat9 Properties 配置不匹配的問題…

IDEA 新手入門:創建項目/包/類、運行/關閉/導入項目、字體/字號設置、常用快捷鍵等使用詳解

文章目錄前言一、創建新項目 Project1.1、選擇“Create New Project”1.2、選擇左下角的“Empty Project”1.3、輸入項目名稱并選擇保存路徑二、創建新模塊 Module2.1、在彈出的“New Module”窗口中,點擊“New”2.2、根據項目需要,選擇合適的 SDK2.3、對…

IDEA/Tomcat 原理:如何將 Tomcat 集成到 IDEA?實現由傳統部署延伸到熱部署 Java EE 項目?

文章目錄前言一、將 Tomcat 集成到 IDEA 中1.1、進入 IDEA Tomcat 配置頁面1.2、配置并集成 Tomcat1.3、配置完成說明1.4、集成檢查1.4.1、檢查主頁面信息及服務器配置信息二、創建并部署 Java EE 項目2.1、創建新項目或者模塊(自行選擇)2.2、進行 Java …