メインコンテンツへスキップ

デバッグ時によく使うGDBコマンドメモ

··684 文字·2 分·
ソフトウェア プログラミング GDB
著者
Admin
目次
自分用に作成したメモを公開したもの。
随時更新予定。

CPU
#

レジスタ一覧
#

info regs

変数
#

ローカル変数一覧
#

info locals

現在の関数の引数一覧
#

info args

配列変数をファイルへダンプ
#

dump binary value filename expr

filenameは保存するファイル。
exprは変数名。
raw binary以外のフォーマットも選べる。 詳しくはhelp dumpで。

dumpにはデフォルトでサイズ制限が掛かっているため、制限を超えると、value requires 131072000 bytes, which is more than max-value-sizeのようなエラーが出る。
その場合、set max-value-size n(n bytes)かset max-value-size unlimited(無制限)で制限を変更することができる。
show max-value-sizeで現在の制限を確認できる。

スタックトレース、コールスタック
#

死んだときによく使う。

コールスタック表示
#

bt full

シンボル
#

関数一覧表示
#

info functions regex

regexは正規表現パターン。

コマンドについてのhelp表示
#

help command

help x

関連コマンド、テクニック等
#

Shell上でファイルのデータを16進数で表示
#

hexdump -ve '1/1 "%.2x"' target_file

🔗https://stackoverflow.com/questions/2614764/how-to-create-a-hex-dump-of-file-containing-only-the-hex-characters-without-spac

llvm-mcで逆アセ
#

以下の記事で解説しています。

多くの命令セットに対応したllvm-mcを利用してシェル上でアセンブル、逆アセンブルする方法
··844 文字·2 分
プログラミング ソフトウェア llvm-mc LLVM cli アセンブリ 逆アセ

Related

自分でビルドしたLinuxカーネルをQEMUでエミュレートしてGDBでデバッグするための環境構築メモ
··2165 文字·5 分
プログラミング Linux Linux Linuxカーネル QEMU GDB デバッグ
QEMU+GDBでLinuxカーネル開発環境を整える。
VSCodeのCMakeToolsのUIからCMakeプロジェクトをconfigure&ビルドする際にパラメーター、設定をプロジェクト別に設定する
··844 文字·2 分
プログラミング VSCode CMakeTools
僕はCMakeを書き続けるべきだったんだ。誰のためでもなく、彼女のために
[Linux] mmvで複数ファイルをパターンで一括でリネーム、コピー、移動する方法
··455 文字·1 分
Linux ソフトウェア mmv Linux
まったく、mmvは最高だぜ!!