デバッグ作業では、Sun Performance WorkShop に組み込まれている 2 つのデバッグツールのうちどちらかを使用します。デバッグツールには、dbx とデバッガがあり、互いに密接な関係を持っています。
dbx は、ソースレベルの対話型コマンド行ツールです。dbx では、プログラムの実行制御、停止したプログラムの状態の検査、パフォーマンスデータの収集など、プログラムの動的実行を全面的に制御することができます。
標準の dbx に組み込まれているマルチスレッド開発機能を利用して、認識されているスレッドと、その現在の状態、基底関数、現在の関数をすべて特定することができます。また、スレッドのスタックトレースを調べることもできます。プログラムが正しく実行されていることを確認したい場合は、スレッド間をナビゲートして、ステップごとのデバッグや、スレッド全体のデバッグを行います。プログラムの実行は、その後いつでも再開できます。
dbx を使用して、マルチスレッド化されたアプリケーションをデバッグする場合は、リンク時に -lthread オプションを指定します。
dbx よりもグラフィカルインタフェースの方が扱いやすい場合は、デバッガ (Sun WorkShop の「デバッグ」ウィンドウ) を使用します。dbx は、プログラムの実行中にプログラムの動作に関する詳細情報を取得し、通信プロトコルを使って、この情報をデバッガに渡します。デバッガでは、GUI のボタンをクリックするだけで、ほとんどのコマンドを実行することができるため、デバッグを簡単に行うことができます。
また、デバッガからエディタを開いてプログラムを編集できるため、ツールを変更する手間が省けます。
デバッガの修正継続 (Fix and Continue) 機能を利用すると、ソースコードを変更した後、ファイルを再度コンパイルしてプログラムの実行を継続することができます。このとき、デバッガを終了させる必要はありません。また、プログラムのリンクや読み込みを再度行う必要もありません。
実行時検査 (Runtime Checking、RTC) によって、検出の難しいメモリーアクセスエラーやメモリーリークを開発段階で検出することができます。この検査は、シングルスレッドのアプリケーションでもマルチスレッドのアプリケーションでも有効です。実行時検査によって、アプリケーション内の実行時エラーが自動検出されると、デバッガがプログラムの実行に割り込み、関連するソースコードを表示します。ここで、検出されたバグを修正することができます。
科学計算や数値計算を行うソフトウェア開発者は、一般に、大量のデータを扱っています。このような場合は、計算結果を「見て確認する」ことができれば、解析処理の能率が上がります。そこで、Sun WorkShop では、デバッグ時にデータを画像表示する手法を採用し、大量の複雑なデータセットの調査と理解、結果のシミュレート、対話形式による計算手順の指示を可能にしました。この処理を行っている間に、必要に応じて、指定したブレークポイントや時間間隔でデータを更新することもできます。
大域プログラム検査機能を使用すると、Fortran アプリケーションのデバッグが容易になります。この検査では、ソースプログラム内の矛盾や、実行時間に関する潜在的な問題点を検出し、解析することができます。また、ルーチンの引数、共通ブロック、パラメータの定義や使用方法に整合性があるかどうかを確認することもできます。