返信しないでください。ddd、nemiver、emacs、vim、またはその他のフロントエンドを使用する必要があります。そのままgdbを使用したいのですが、端末の色で出力を確認したいと考えています。
l
実装されている現在の行を強調表示したら、sourceware.org/bugzilla/show_bug.cgi?id=21044を追加l
し、aに追加してhook-stop
Dev Nirvanaと入力します。
返信しないでください。ddd、nemiver、emacs、vim、またはその他のフロントエンドを使用する必要があります。そのままgdbを使用したいのですが、端末の色で出力を確認したいと考えています。
l
実装されている現在の行を強調表示したら、sourceware.org/bugzilla/show_bug.cgi?id=21044を追加l
し、aに追加してhook-stop
Dev Nirvanaと入力します。
回答:
微調整~/.gdbinit
して色を付けることができます。.gdbinit
ここで入手できるマモンを使用することができます:
https://github.com/gdbinit/gdbinit
好きなだけ調整することもできます。私はこのSOの答えのおかげでこれを見つけました。取得できる出力の種類は次のとおりです。
GitHubリポジトリも利用できます:https : //github.com/gdbinit/Gdbinit
同じ概念に従って、GDBダッシュボードは、PythonでGDBのモジュール式ビジュアルインターフェースを提供します。
別の同様のプロジェクトでは、GDBのPythonサポートを使用して拡張性を高めているため、チェックする価値があります。https://github.com/dholm/voidwalker
@dholmまた彼自身の提供.gdbinit前のものからインスピレーションを得ています。
一部のプロジェクトは、表示の改善など、一連の便利な機能を提供します。これは、PEDAまたはpwndbgの場合です。後者は以下の説明を与えます:
PEDAの代替品。私たちの良き友人の精神では
windbg
、pwndbg
発音されますpwnd-bag
。
- 速度
- 弾力性
- クリーンなコード
PEDAと同様のデバッグとエクスプロイトの開発をサポートするコマンドを提供し、表示を改善します(ただし、これはプロジェクトの主な目的ではありません)。このソフトウェアはまだ開発中であり、まだ適切にリリースされていません。
プロジェクトの説明状態:
Voltronは、ハッカー向けの拡張可能なデバッガーUIです。他の端末で実行されているユーティリティビューをデバッガー(LLDBまたはGDB)にアタッチして、逆アセンブリ、スタックの内容、レジスター値などの役立つ情報を表示しながら、使い慣れた同じデバッガーCLIを提供できます。
を変更して.gdbinit
、自動的に統合することができます。ただし、ディスプレイ自体はGDBの外部にあります(例:tmux split内)。
GEFは別のオプションであり、次のように説明されています。
動的分析とエクスプロイト開発のプロセス中に支援するためにPython APIを使用してGDBに追加機能を提供するために、主にエクスプロイターとリバースエンジニアによって使用されることを目的としています。
色ではありませんが、gdbのテキストguiを検討してください。これは、gdbの使い方に大きな違いをもたらします。
あなたはそれを起動することができます:
gdb -tui executable.out
スクリーンショット:
ご覧のとおり、主な機能は次のとおりです。
色を使用することにより、gdbの外観を大幅に向上させることができます。これは、次のいずれかの方法で行われます。
「設定プロンプト」を介して色分けされたプロンプト。たとえば、プロンプトを太字と赤にします。
set prompt \033[1;31m(gdb) \033[m
または、プロンプトを太字と赤の新しい形状にします。
set prompt \033[01;31m\n\n#####################################> \033[0m
フックによる色分けされたコマンド
すべての例は、Michael Kelleherが書いた次のブログ投稿で入手できます。
今後のGDB 8.3の新機能!
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/NEWS
端末スタイリングがCLIおよびTUIで使用できるようになりました。さらに、GNU Source Highlightを使用して、ソースコードスニペットのスタイルを提供できます。詳細については、以下の「set style」コマンドを参照してください。
gdb 8.3
medium.com / @ simonconnah /…をインストールする方法に関するチュートリアルがあります。マシンに最低512MBのRAM が必要であることに注意してくださいgcc
。そうしないと、コンパイラがゴミを出し始めます。
#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サポートなし、「ユーザーモード」ハック。
ここ で主要部分を見つけて少し修正しました。ハイライトが必要です、c ++ filt。色がめちゃくちゃになる場合は、コマンドを再発行してください。
cgdb
よりはるかに優れています gdb -tui
きちんと、私はcoloutを使用してこのハックを見つけました:https : //github.com/nojhan/colout/blob/master/colout/example.gdbinit
bash: colout: command not found
私が走るときそれは私に言うbt f
(ライブラリではなく)ソースファイルに属するスタックトレースの行を強調します。
解決策は、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)
この構成により、色の別の適切な組み合わせが得られます。これにより、バックトレースの検査がはるかに簡単になります。それを使用するには、そのファイルをとして保存し、~/.gdbinit
通常どおりgdbを実行します
好きな色を手に入れることができます。
# gdb
(gdb) shell echo -en '\E[47;34m'"\033[1m"
...
anything is now blue foreground and white background
...
(gdb) shell tput sgr0
... back to normal