idb デバッガを使用することによって、言語が混在したプログラムをデバッグできます。異なる言語で書かれたサブプログラム間のプログラム・フロー制御は透過的に行われます。
デバッガは、実行ファイルに埋め込まれた情報に基づいて、現在のサブプログラムまたはコード・セグメントの言語を自動的に識別します。例えば、プログラムの実行が、Fortran で書かれたサブプログラムで停止した場合、現在の言語は Fortran になります。また、デバッガが C で書かれた関数で停止した場合、現在の言語は C になります。デバッガは現在の言語を使用して、式の評価に使う有効な式構文とセマンティクスを判断します。
デバッガは $lang 環境変数に、現在のサブプログラムやコード・セグメントの言語を設定します。$lang 環境変数を手動で設定すると、デバッガは、指定された言語の規則とセマンティクスに従って、コマンドで入力される式を解釈します。 例えば次のように、$lang の現在の設定をチェックし、設定を変更することができます:
(idb) print $lang
"C++"
(idb) set $lang = "Fortran"
$lang 環境変数に「Fortran」が設定されている場合、名前の大文字・小文字は区別されません。-names as_is オプションでプログラムをコンパイルした場合に、名前の大文字・小文字を区別するには、$lang 環境変数に C などの別の言語を指定して、その変数を表示し、その後に $lang 環境変数に「Fortran」を設定します。