調試工具

調試工具  亦稱除錯程式 、 調試器 ， 指一種用於調試其它程式的電腦程式及工具 。 能夠讓程式碼在指令組模擬器 （ ISS ） 中可以檢查運行狀況以及選擇性地運行 ， 以便排錯 、 除錯 。 當開發的進度遇到瓶頸或找不出哪裏有問題時 ， 這技術將是非常有用的 。 但是將程式運行在除錯器之下 ， 這將比直接在運作的平臺以及處理器上執行還要來得慢 。 當程式當機時 ， 如果除錯器是屬於來源階段除錯器 （ source - level debugger ） 或象徵階段除錯器 （ symbolic debugger ） ， 除錯器即可以顯示出錯誤所在位置的原始碼 ， 並使其於整合開發環境裏也能看見 。 要是屬於低階除錯器 （ low - level debugger ） 或機器語言除錯器 （ machine - language debugger ） 的話 ， 它將能顯示的是一行一行的反組譯碼 （ 這裏指的當機情況是指 ， 當發生原因是因爲程式設計師在設計上的疏失 ， 使得程式無法繼續正常執行的情況 。 例如程式嘗試去調用某個對在該版本的CPU上而言是不合理的操作 ， 或者是對保護或無法存取的記憶體位置進行寫入 ） 。 典型的除錯器通常能夠在程式執行時擁有以下這些功能 ， 例如單步執行 （ single - stepping ） 、 利用中斷點 （ breakpoint ） 使程式遇到各種種類的事件 （ event ） 時停止 （ breaking ） （ 一般用於使程式停止在想要檢查的狀態 ） 、 以及追蹤某些變數的變化 。 有些除錯器也有能力在想要除錯的程式在執行狀態時 ， 去改變它的狀態 ， 而不僅僅只是用來觀察而已 。 一個好的除錯器存在的重要性不誇張 。 就算一個程式語言 / 平臺在電腦的行程裏運作非常良好 。 有無除錯器以及除錯器的好壞 ， 對於一個程式語言及平臺來說 ， 經常是能不能正常執行的重要因素 。 總之 ， 軟體要能夠 （ 或經常 ） 執行在不同的除錯器下進行測試 ， 是非常重要的 。 不過由於除錯器出現將做對軟體程式的內部時間的不可避免的變動 。 所以 ， 即使是一個幾近完美的除錯器 ， 在多工環境或分散式系統下 ， 它也會更難去測試到執行時 （ runtime ） 的問題 。 一個除錯器除了能夠用來除錯 （ debug ） ， 同樣的 ， 它也經常被用來作爲破解軟體的工具 ， 像是用來跳過軟體的防拷貝保護 ， 還有破解序號驗證 ， 以及其它軟體保護功能 。 大部份的主流除錯工程 ， 譬如gdb和dbx提供基於主控臺的命令提示介面 （ console - based command line ） 。 除錯器前端應用 ， 現在普遍是提供給整合式開發工具 （ IDE ） 做爲除錯引撆 、 動態化 、 視覺化等特點 。