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