デバッグ作業では、Sun Visual WorkShop に組み込まれている 2 つのデバッグツールのうちどちらかを使用します。デバッグツールには、dbx とデバッガがあり、互いに密接な関係を持っています。
dbx は、ソースレベルの対話型コマンド行ツールです。dbx では、プログラムの実行制御、停止したプログラムの状態の検査、パフォーマンスデータの収集など、プログラムの動的実行を全面的に制御することができます。
標準の dbx に組み込まれているマルチスレッド開発機能を利用して、認識されているスレッドと、その現在の状態、基底関数、現在の関数をすべて特定することができます。また、スレッドのスタックトレースを調べることもできます。プログラムが正しく実行されていることを確認したい場合は、スレッド間をナビゲートして、ステップごとのデバッグや、スレッド全体のデバッグを行います。プログラムの実行は、その後いつでも再開できます。
dbx を使用して、マルチスレッド化されたアプリケーションをデバッグする場合は、リンク時に -lthread オプションを指定します。
dbx よりもグラフィカルインタフェースの方が扱いやすい場合は、デバッガ (Sun WorkShop の「デバッグ」 ウィンドウ) を使用します。dbx は、プログラムの実行中にプログラムの動作に関する詳細情報を取得し、通信プロトコルを使って、この情報をデバッガに渡します。デバッガでは、GUI のボタンをクリックするだけで、ほとんどのコマンドを実行することができるため、デバッグを簡単に行うことができます。
また、デバッガからエディタを開いてプログラムを編集できるため、ツールを変更する手間が省けます。
デバッガの修正継続 (Fix and Continue) 機能を利用すると、ソースコードを変更した後、ファイルを再度コンパイルしてプログラムの実行を継続することができます。このとき、デバッガを終了させる必要はありません。また、プログラムのリンクや読み込みを再度行う必要もありません。
実行時検査 (Runtime Checking、RTC) によって、検出の難しいメモリーアクセスエラーやメモリーリークを開発段階で検出することができます。この検査は、シングルスレッドのアプリケーションでもマルチスレッドのアプリケーションでも有効です。実行時検査によって、アプリケーション内の実行時エラーが自動検出されると、デバッガがプログラムの実行に割り込み、関連するソースコードを表示します。ここで、検出されたバグを修正することができます。