私はddd、nemiver、emacs、vim、またはその他のフロントエンドを使用する必要があると返信しないでください。
~/.gdbinit
を微調整して色を付けることができます。ここから入手できるmammonの.gdbinit
を使用できます。
https://github.com/gdbinit/gdbinit
必要なだけ調整することもできます。 this SO answer のおかげでこれを見つけました。以下のような出力が得られます。
GitHubリポジトリも利用可能です: https://github.com/gdbinit/Gdbinit
ちなみに、同じ考えは lldbに適用 でした。
同じ概念に従って、 GDBダッシュボード は、PythonでGDBのモジュラービジュアルインターフェイスを提供します。
別の同様のプロジェクトは、GDBのPythonサポートを使用して拡張性を高めるため、チェックアウトする価値があります。 https://github.com/dholm/voidwalker
また、@ dholmは、以前のものに触発された独自の 。gdbinit を提供します。
一部のプロジェクトでは、表示の改善など、一連の便利な機能を提供しています。 [〜#〜] peda [〜#〜] または pwndbg の場合です。後者の説明は次のとおりです。
PEDAの代替品。私たちの親友
windbg
の精神で、pwndbg
はpwnd-bag
と発音されます。
- 速度
- 弾力性
- きれいなコード
PEDAのものと同様のデバッグとエクスプロイト開発をサポートするコマンドを提供し、表示を改善します(ただし、これはプロジェクトの主な焦点ではありません)。ソフトウェアはまだ開発中であり、まだ適切にリリースされていません。
project 説明の状態:
Voltronは、ハッカー向けの拡張可能なデバッガUIです。これにより、他のターミナルで実行されているユーティリティビューをデバッガー(LLDBまたはGDB)にアタッチして、逆アセンブリ、スタックの内容、レジスタ値などの有用な情報を表示しながら、以前と同じデバッガーCLIを使用できます。
.gdbinit
を変更して、自動的に統合できます。ただし、ディスプレイ自体はGDBの外部にあります(たとえば、tmuxスプリット内)。
[〜#〜] gef [〜#〜] は別のオプションであり、次のように記述されます。
Python APIを使用してGDBに追加機能を提供し、動的分析およびエクスプロイト開発のプロセスを支援するために、主にエクスプロイトおよびリバースエンジニアが使用することを目的としています。
色ではありませんが、gdbの text gui を検討してください。これは、gdbの使用方法に大きな違いをもたらします。
以下で起動できます:
gdb -tui executable.out
スクリーンショット:
ご覧のとおり、主な機能は次のとおりです。
フロントエンドが必要ないことは知っています。しかし、 cgdb はgdbに非常に近いです。テキストモードですが、ソースウィンドウがあり、コードの構文が強調表示されています。
色を使用することにより、gdbの外観を大幅に向上させることができます。これは、次のいずれかの方法で実行されます。
「プロンプトの設定」による色付きプロンプト。たとえば、プロンプトを太字で赤にします。
set Prompt \033[1;31m(gdb) \033[m
または、プロンプトを新しい形、太字と赤にします。
set Prompt \033[01;31m\n\n#####################################> \033[0m
フックによる色付けされたコマンド
すべての例は、Michael Kelleherが書いた次のブログ投稿で入手できます。
#into .gdbinit
Shell mkfifo /tmp/colorPipe
define hook-disassemble
echo \n
Shell cat /tmp/colorPipe | c++filt | highlight --syntax=asm -s darkness -Oxterm256 &
set logging redirect on
set logging on /tmp/colorPipe
end
define hookpost-disassemble
hookpost-list
end
define hook-list
echo \n
Shell cat /tmp/colorPipe | c++filt | highlight --syntax=cpp -s darkness -Oxterm256 &
set logging redirect on
set logging on /tmp/colorPipe
end
define hookpost-list
set logging off
set logging redirect off
Shell sleep 0.1s
end
define hook-quit
Shell rm /tmp/colorPipe
end
define re
hookpost-disassemble
echo \033[0m
end
document re
Restore colorscheme
end
警告:バギー。 TUIサポートなし、「ユーザーモード」ハック。
メイン部分 here を見つけて、少し変更しました。ハイライトが必要、c ++ filt。色がおかしくなったら、reコマンドを発行してください。
cgdb
はgdb -tui
ニート、coloutを使用してこのハックを見つけました: https://github.com/nojhan/colout/blob/master/colout/example.gdbinit
私は次のように強調したかったです:(ライブラリではなく)ソースファイルに属するスタックトレースの行を強調します。
解決策は、gdb-pythonを使用することでした(MSYSでは、Linuxでは通常gdb
にPython組み込み済み?)が付属しています)、フックbacktrace
、使用
python stack_trace = gdb.execute('backtrace', False, True')
次に、stack_trace
Pythonの正規表現を使用して、それらを出力します。太字およびその他の色は、次のような関数によって実現されます。
def term_style(*v):
"""1 is bold, 30--37 are the 8 colours, but specifying bold may also
change the colour. 40--47 are background colours."""
return '\x1B['+';'.join(map(str, v))+'m'
#Use like this:
print term_style(1) + 'This will be bold' + term_style(0) #Reset.
print term_style(1,30) + 'This will be bold and coloured' + term_style(0)
print term_style(1,30,40) + 'Plus coloured background' + term_style(0)
今後の新機能GDB 8.3!
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/NEWS
CLIおよびTUIでターミナルスタイリングが使用できるようになりました。 GNUソースハイライトは、ソースコードスニペットのスタイリングを提供するためにさらに使用できます。詳細については、以下の「スタイルの設定」コマンドを参照してください。
色の別の適切な組み合わせは、 この構成 で与えられます。バックトレースの検査がはるかに簡単になります。使用するには、そのファイルを~/.gdbinit
として保存し、通常どおりgdbを実行します