8

アセンブリの出力を見たかったのfunction signature + offset:ですが、C++ でプログラミングしており、関数のシグネチャが完全に解決されているという事実を除いて、TUI ではクールな出力が得られることがわかりました。そのため、関数を sig にする名前空間とテンプレート パラメーターを取得します。 2 行以上の長さ。もちろん、これは TUI で切り捨てられるため、アセンブリ命令を表示することさえできません。

短縮する方法、プレフィックスを変更する方法 (おそらくファイル/行形式に変更する方法) はありますか、またはこのプレフィックスをアセンブリ命令にまったく出力しない方法はありますか?

4

2 に答える 2

4

現時点ではこのプレフィックスを切り詰める方法はありませんが、focus asmコマンドを使用してアセンブリ ウィンドウにフォーカスを設定し (asm ウィンドウにフォーカスがない場合)、を使用してアセンブリ ウィンドウをright arrow keyスクロールすることで回避できます。最終的にアセンブリ出力を表示する右側のウィンドウ。

ノート:

    これは回避策ですが、ウィンドウをステップ移動またはスクロールすると最初の列に戻るため、まだ問題がありCMDます。また、コマンドを実行するnextと、現在のコマンドのプレフィックス全体とそのアセンブリ コードが ASM ウィンドウに表示され (つまり、切り捨てられず)、画面に回り込んで表示が乱れるようです。煩わしいですが、これCtrl-Lは画面を更新することで修正できます。
    またASMウィンドウを上下にスクロールすると、実際にデバッガーがクラッシュする可能性があります。これはおそらくバッファ オーバーランが原因であるため、これを行うことはお勧めできません。必要な場合にのみアセンブリ ウィンドウを表示し、そうでない場合は非表示にすることをお勧めします。

hasturkunによって提案された別の回避策オプションはset print max-symbolic-offset N(その説明を見つけるために下にスクロールする必要があります)です。これは、「最も近い以前のシンボルとアドレスの間のオフセットが N より小さい場合にのみ、アドレスのシンボリック形式を表示するように gdb に指示します」 N. N を 1 に設定すると、ほとんどのプレフィックスが削除されますが、どの命令がどのソース行に一致するかを推測できます。

于 2013-06-05T13:53:16.903 に答える
0

私は方法があるとは思わない。

これは bugzilla に対する合理的な機能要求であると思いますが、TUI はあまり愛されていないことに注意してください。

于 2013-06-05T04:17:57.033 に答える