事前定義済み変数の使用
         特定の読み取り専用の ksh    事前定義済み変数が用意されています。次の表に示す変数は常に有効です。
        
            
            | 
                
                
                
                    
                        |  |  |  
                        | $ins | 現在の命令の逆アセンブル |  
                        | $lineno | 現在の行番号 (10 進数) |  
                        | $vlineno | 現在の表示行番号 (10 進数) |  
                        | $line | 現在の行の内容 |  
                        | $func | 現在の関数の名前 |  
                        | $vfunc | 現在の表示関数の名前 |  
                        | $class | $func が所属するクラスの名前 |  
                        | $vclass | $vfunc が所属するクラスの名前 |  
                        | $file | 現在のファイルの名前 |  
                        | $vfile | 現在表示しているファイルの名前 |  
                        | $loadobj | 現在のロードオブジェクトの名前 |  
                        | $vloadobj | 現在表示している現在のロードオブジェクトの名前 |  
                        | $scope | 逆引用符表記での現在の PC のスコープ |  
                        | $vscope | 現在表示している逆引用符表記での PC のスコープ |  
                        | $funcaddr | $func のアドレス (16 進数) |  
                        | $caller | $func を呼び出している関数の名前 |  
                        | $dllist | dlopen イベントまたは dlclose イベントのあと、ロードされた、またはアンロードされた直後のロードオブジェクトのリストが格納されます。dllist の先頭の単語は、dlopen または dlclose のどちらが発生したかによる + (プラス記号) または - (マイナス記号) です。 |  
                        | $newhandlerid | 最後に作成されたハンドラの ID。この変数は、ハンドラを削除するコマンドのあとの未定義の値です。ハンドラを作成した直後に変数を使用します。dbx では、複数のハンドラを作成する 1 つのコマンドに対してすべてのハンドラ ID を取り込むことはできません。 |  
                        | $firedhandlers | 停止の原因となった最近のハンドラ ID のリストです。リスト上のハンドラは、status コマンドの出力に * (アスタリスク) でマークされます。 |  
                        | $proc | 現在デバッグ中のプロセスの ID |  
                        | $lwp | 現在の LWP の ID。 |  
                        | $thread | 現在のスレッドの ID |  
                        | $newlwp | 新しく作成された LWP の ID。 |  
                        | $newthread | 新しく作成されたスレッドの ID。 |  
                        | $prog | デバッグ中のプログラムの絶対パス名 |  
                        | $oprog | $prog の前の値で、これは exec() のあとにデバッグしていたものに戻るために使用され、このときにプログラムのフルパス名は - (ダッシュ) に戻ります。$prog がフルパス名に展開され、$oprog がコマンド行または debug コマンドに指定されているプログラムパスを含みます。exec() が 2 回以上呼び出されると、オリジナルのプログラムには戻れません。 |  
                        | $exec32 | dbx バイナリが 32 ビットの場合は true です。 |  
                        | $exitcode | プログラムの最後の実行ステータスを終了します。この値は、プロセスが実際には終了していない場合、空文字列になります。 |  
                        | $booting | イベントがブートプロセス中に発生すると、true に設定されます。新しいプログラムは、デバッグされるたびに、共有ライブラリのリストと位置を確認できるよう、まず実行されます。プロセスはそのあと終了します。このシーケンスは「ブート」と呼ばれます。 ブートが起こっても、イベントはすべて使用可能です。この変数は、たとえばデバッグの実行中に発生する sync および syncrtld イベントと、通常の実行中に発生するイベントを区別するために使用します。 |  
                        | $machtype | プログラムがロードされた場合、そのマシンタイプ sparcv8、sparcv8+、sparcv9、x86、または x86_64 を返します。そうでない場合、unknown を返します。 |  
                        | $datamodel | プログラムがロードされた場合、そのデータモデル ilp32 または lp64 を返します。そうでない場合、unknown を返します。ロードしたばかりのプログラムのモデルを見つけるには、.dbxrc ファイルで次を使用します。 when prog_new -perm {
     echo machine: $machtype $datamodel;
}  |  | 
        
        次の例に、whereami を実装できることを示します。
        function whereami {
  echo Stopped in $func at line $lineno in file $(basename $file)
  echo "$lineno\t$line"
}
        
            when コマンドに対して有効な変数
              
               このセクションで説明する変数は、when コマンド本体内でのみ有効です。
            
                $handlerid
                本体の実行中、$handlerid は本体が属する when コマンドの ID です。次のコマンドは同等です。
                when X -temp { do_stuff; }
when X  { do_stuff; delete $handlerid; }
            
        
        
            when コマンドと特定のイベントに対して有効な変数
            特定の変数は、以下の表に示すように、when コマンドの本体内および特定のイベントに対してのみ有効です。
            
                表 3  sig イベントに固有の変数
                   
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $sig | イベントを発生させたシグナル番号 |  
                            | $sigstr | $sig の名前 |  
                            | $sigcode | 適用可能な場合、$sig のサブコード |  
                            | $sigcodestr | $sigcode の名前 |  
                            | $sigsender | 必要であれば、シグナルの送信者のプロセス ID |  | 
            
            
                表 4  exit イベントに固有の変数
                   
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $exitcode | _exit(2) または exit(3) に渡された引数の値、または main の戻り値 |  | 
            
            
                表 5  dlopen および dlclose イベントに有効な変数
                       
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $dlobj | dlopen または dlclose されたロードオブジェクトのパス名 |  | 
            
            
                表 6  sysin および  sysout イベントに有効な変数
                       
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $syscode | システムコール番号 |  
                            | $sysname | システムコール名 |  | 
            
            
                表 7  proc_gone イベントに固有の変数
                   
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $reason | signal、exit、kill、または detach のいずれか |  | 
            
            
                表 8  thr_create イベントに固有の変数
                   
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $newthread | 新しく作成されるスレッドの ID (t@5 など) |  
                            | $newlwp | 新しく作成される LWP の ID (l@4 など) |  | 
            
            
                表 9  access イベントに有効な変数
                   
                
                | 
                    
                    
                    
                        
                            |  |  |  
                            | $watchaddr | アドレスが書き込まれたり、読みだされたり、実行されたりします。 |  
                            | $watchmode | 次のいずれかです。r は読み込み、w は書き込み、x は実行。そのあとに次のいずれかが続きます。a は後、b は前。 |  |