什麼是除錯程式?
除錯程式允許使用者逐行檢視另一個程式。這允許使用者識別不正確的程式碼並找出程式的流程。偵錯程式讓使用者檢視計算機如何看待他們的程式。
偵錯程式對於查詢程式中的語義錯誤非常有用。因此,它很有必要,因為它可以幫助程式設計師視覺化程式流程。偵錯程式可能需要練習才能使用,但它非常值得,因為它可以減少完善程式所需的時間。
除錯程式的功能
除錯程式提供諸如符號解析器、查詢處理器、表示式直譯器等基本功能。還有一些其他功能可用,例如逐步執行程式、停止程式以檢視其當前狀態、跟蹤變數值等。一些除錯程式還可以在程式執行時修改程式。
一些除錯程式中有一個稱為反向除錯的功能。它允許使用者向後檢視程式的執行時間。Microsoft Visual Studio 為 C#、Visual Basic、.Net 等提供反向除錯。反向除錯並不常用,但它是一個非常有用的功能。
偵錯程式列表
一些常用的除錯程式包括:
GNU 偵錯程式 (GDB)
這是一個可移植的偵錯程式。它執行在許多類似於 Unix 的系統上。GNU 偵錯程式也適用於許多程式語言,例如 C、C++、Pascal、Fortran、Java 等。
GDB 中有許多用於跟蹤和更改程式執行的功能。使用者可以使用 GDB 檢視和修改程式的內部變數。此外,程式的功能可以獨立於它們的正常執行進行呼叫。
Microsoft Visual Studio 偵錯程式
這是一個與 Microsoft Visual Studio 一起使用的偵錯程式。使用此偵錯程式,可以在不退出正在執行的程式的情況下立即修改和重新編譯程式程式碼。
Microsoft Visual Studio 偵錯程式提供對 .Net 和 Windows 語言(如 C 和 C++)中程式除錯的支援。此偵錯程式的一個問題是它無法跟蹤核心模式下編寫的程式碼。
Radare2
這也被稱為 r2。它用於反向工程和分析二進位制檔案。Radare2 主要圍繞反彙編器構建,它將機器語言程式碼轉換為組合語言程式碼。
這個除錯程式的學習曲線很陡峭,因為它沒有圖形使用者介面。它確實有一個 Web 使用者介面和一個名為 Cutter 的外部 GUI。
LLDB 偵錯程式
這個偵錯程式具有可重用的元件,並使用了 LLVM 專案中的許多庫。與 LLVM 專案的其他部分一樣,LLDB 是一個免費的開源軟體。
LLDB 支援用 C、C++、Swift 等編寫的多個程式的基本除錯。
Valgrind
這是一個免費的除錯工具,本質上是一個使用即時技術 (JIT) 的虛擬機器。Valgrind 將程式轉換為更簡單的形式,稱為中間表示。之後,它將中間表示轉換為機器程式碼,並讓主機處理器執行它。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP