A.4. GDB の変更点
Red Hat Developer Toolset 10.0 には GDB 9.2 が同梱されています。
以下の機能は、Red Hat Developer Toolset の以前のリリース以降に追加または変更されています。
新機能
-
debuginfod
サーバーがサポートされるようになりました。これは、ELF および DWARF のデバッグ情報およびソースコードを配布するための HTTP サーバーです。
新しい便利な変数および関数
$_gdb_major
$_gdb_minor
GDB の実行中のバージョンをテストするための新しい便利な変数を使用すると、レガシースクリプトを破損することなく新しいコマンドおよび構文を実行できます。
$_gdb_setting
$_gdb_setting_str
$_gdb_maint_setting
$_gdb_maint_setting_str
GDB 設定へのアクセスに、これらの新しい便利な機能を使用すると、現在の GDB 設定に応じてユーザー定義コマンドのロジックを変更できます。
$_cimag
$_creal
この新たな便利な関数を使用すると、年号および実際の数字の部分を取得することができます。
$_shell_exitcode
$_shell_exitsignal
この新しい便利な変数を使用すると、GDB、
shell
、pipe
、make
コマンドが実行するシェルコマンドの終了コードまたは終了ステータスにアクセスできます。
新規コマンドおよび改善されたコマンド
-
たとえば、新しいコマンドオプションインフラストラクチャーがサポートを強化できるように提供されました。たとえば、
CMD -[TAB]
が CMD で利用可能なコマンドオプションが完了したかどうかを確認できるようになりました。 -
コマンド名が
.
文字を使用できるようになりました。
新しいコマンド
define-prefix
このコマンドでは、
abc def
およびabc def ghi
などの独自の接頭辞コマンドを個別に定義できます。| [command] | shell_command
(another name of this command ispipe
)このコマンドは、指定した GDB コマンド を実行し、出力を指定の shell_command に送信します。
with setting [value] [-- command]
このコマンドは、指定の 設定 を 値 に設定し (指定されている場合)、オプションの コマンド を実行して、完了時に 設定 がリセットされます。
変更したコマンド
help
apropos
コマンドでは、新しいタイトルのスタイリングが使用されるようになりました。
printf
eval
このコマンドは、たとえばコアダンプのデバッグ時など、実行中のプロセスなしに C 形式の文字列と Ada 形式の文字列の変数を出力できるようになりました。
info sources [-dirname | -basename] [--] [regexp]
新しいフィルタリングオプションが追加されました。これらを使用することで、ユーザーは、結果を、指定した正規表現に一致するファイル、ディレクトリー、またはベース名に制限できます。
focus
winheight
+
、-
、>
、および<
これらの TUI コマンドが大文字と小文字を区別するようになりました。
backtrace
コマンドが、グローバル表示設定 (
set backtrace
およびset print
設定) を上書きする新しいオプションに対応するようになりました。新規オプションには、-entry-values
、frame-arguments
、-raw-frame-arguments
,-frame-info
、-past-main
、-past-entry
、-full
、-no-filters
、-hide
が含まれます。frame apply
tfaas
faas
このコマンドは、新しい
-past-main
および-past-entry
コマンドオプションに対応するようになりました。info types
このコマンドが、
info variables
および’info functions
などの一部のヘッダー情報の出力を無効にする新しい-q
オプションに対応するようになりました。info variables
info functions
whereis
このコマンドが、出力から非デバッグシンボルを除外する新しい
-n
オプションに対応するようになりました。
設定
set may-call-functions
show may-call-functions
デフォルト値は
on
です。これらの新しいコマンドは、コマンドの実行中 (たとえばprint expression
コマンド) に GDB がプログラムで関数の呼び出しを試みるかどうかを制御します。set print finish
show print finish
これらのコマンドが
on
に設定されていると、finish
コマンドの使用時に、GDB が現在の関数が返す値を出力します。set print max-depth
show print max-depth
これらの新たなコマンドにより、ネストされた構造の表示がレベル数に制限されます。ネストレベルのデフォルトの制限は 20 です。
set print raw-values
show print raw-values
これらの新しいコマンドは、値を出力する際に Pretty-printers の使用をグローバルに上書きします。デフォルト値は
off
です。set style title foreground
set style title background
set style title intensity
set style highlight foreground
set style highlight background
set style highlight intensity
これらの新しいコマンドを使用して、タイトルの表示スタイルをカスタマイズし、スタイルを強調表示できます。
maint set worker-threads
maint show worker-threads
実験的: これらのコマンドが
unlimited
に設定されていると、GDB はマルチスレッドシンボルローディングを使用してパフォーマンスを向上させます。set style tui-border foreground
set style tui-border background
set style tui-border intensity
set style tui-active-border foreground
set style tui-active-border background
set style tui-active-border intensity
これらの新しいコマンドは、さまざまな TUI フレームの表示スタイリングを設定します。
set print frame-info
show print frame-info
この新しいコマンドは、フレームを出力するコマンドによって出力されるフレーム情報を制御します (例
backtrace
、frame
、stepi
)。set tui compact-source
show tui compact-source
これらの新しいコマンドにより、TUI ソースウィンドウの新しい
compact
表示スタイルが有効になります。set debug remote-packet-max-chars
show debug remote-packet-max-chars
これらの新たなコマンドは、
set debug remote
を使用する際にリモートパケットで出力する文字数を制御します。デフォルト値は 512 バイトです。show style
この新しいコマンドで、独自のスタイリングを使用して、すべてのサブコマンドの出力をスタイルできるようになりました。
set print frame-arguments
新しい値
presence
が追加されました。実際の引数名と値を出力する代わりに、…
の引数の有無のみを表示します。set print-raw-frame-arguments
show print-raw-frame-arguments
この 2 つのコマンドは、非推奨の
set/show print raw frame-arguments
コマンドに代わるものです。
言語固有の改善
Fortran
-
GDB は、
::
演算子を使用してネストされた関数またはサブルーチンにブレークポイントを設定できるようになりました。 info modules [-q] [regexp]
この新しいコマンドは、regexp に一致するモジュールの一覧を返します。regexp が指定されていない場合、コマンドはモジュールの一覧を返します。
info module functions [-q] [-m module_regexp] [-t type_regexp] [regexp]
info module variables [-q] [-m module_regexp] [-t type_regexp] [regexp]
これらの新しいコマンドは、モジュールによってグループ化されたすべてのモジュール内の関数または変数の一覧を返します。結果は、モジュールの正規表現、関数、または変数タイプ署名の正規表現、または名前の正規表現によって制限される可能性があります。
Python API
gdb.Value.format_string
この新しいメソッドは、Value オブジェクトを表す文字列を返します。
gdb.Type
objfile
この新しいプロパティーは、タイプが定義されている
objfile
を返します。gdb.lookup_static_symbol
gdb.lookup_static_symbols
この新しい関数は、静的リンクを使用したシンボルの検索をサポートします。最初の関数は、最初に一致した記号を返します。2 つ目は、一致するシンボルをすべて返します。
gdb.Objfile.lookup_global_symbol
gdb.Objfile.lookup_static_symbol
これら新しい関数は、
Objfile
のシンボルの検索に対応しています。これは、グローバルシンボルおよび静的リンクを持つシンボルです。gdb.Block
この関数が Python ディクショナリー構文に対応するようになりました。たとえば、シンボルが
gdb.Symbol
型のsymbol = some_block[variable]
です。
Machine Interface (MI) の改善点
新しいデフォルトの MI バージョン 3 が導入されました (
-i=mi3
)。- マルチロケーションブレークポイントの場所の出力が修正されました。
-
新しい
-fix-multi-location-breakpoint-output
コマンドが追加され、古い MI バージョンの構文エラーを修正するようになりました。
新しいコマンドはすべて、CLI の MI 実装です。
-
-complete LINE
-
-catch-throw
-
-catch-rethrow
-
-catch-catch
-
-symbol-info-functions
-
-symbol-info-types
-
-symbol-info-variables
-
-symbol-info-modules
-
-symbol-info-module-functions
-
-symbol-info-module-variables
-