現在の関数スコープを表示または変更します。
このコマンドは、現在のフレームを表示または変更します。
現在のフレームをコールスタック中の関数のコールフレームに変更するには、func_name パラメーターを指定します。コールスタックで関数が 2 回以上発生した場合、その関数に対して最も新しく入ったコールフレームが現在のコールフレームになります。
現在のコールフレームの関数の名前を表示するには、パラメーターを指定せずに func コマンドを実行します。
デフォルトの現在の関数スコープに戻るには、func 0 コマンドを使用します。
選択できるフレームがない場合、デバッガー・コンテキストは名前が指定された関数の静的コンテキストに設定されます。現在のスコープと現在の言語はその関数に基づいて設定されます。これで、その関数に対してローカルな型と静的変数が参照でき、評価できるようになります。
デバッガーを特定のフレームレベルに移動するには、num でレベルを指定します。これは、レベル 0 関数で up n を入力するのと同じです。
関数とクラスに同時にスコープを設定することはできません。スコープをクラスに設定すると、関数スコープが無効になります。またその逆もしかりです。デフォルトの (現在の関数) スコープに戻るには、func 0 コマンドを使用します。
クラス B は B::doAFoobar の外側のコンテキストです。次の例は、クラス B の関数メンバー、doAFoobar 関数にコンテキストを設定します。
(idb) func B::doAFoobar