たまに gdb や lldb を使うときは、いつも基本的なコマンドをググるのに時間を費やしているので、自分用にコマンドをまとめてみました。こうしてみると、やはり Windows Debugger のコマンドはシンプルで洗練されていて好き。gdb と lldb のコマンドは長すぎるし、そもそもソースコードがあることが前提で、最適化済みのコードや、アセンブリを見てデバッグすることがほとんど想定されていないように思える。随時更新予定です。

(2015/8/3 追記)
.gdbinit や .lldbinit という設定ファイルを作ってカスタム コマンドを定義する方法があるらしい。GitHub に、いろいろな人の設定ファイルが公開されているので、使いやすいものを選んで利用することも可能。

(このブログ、テーブルのスタイルが指定できない・・? 後で何とかしないと。)

Debugger Commands (Last update: Aug. 2, 2015)
Windows Debugger GDB LLDB
bp b br set [-n <func>] [-a <addr>]
bp <addr> "<commands>" commands # br command add
bl info break br list
bc* delete break br del -f
bc# d # br del #
be enable br enable
bd disable br disable
~ info threads th list
.frame frame frame select
gc c c
g <addr>    
q q q
p ni ni
t si si
gu fin fin
r info registers reg r
r rax=0 set $rax = 0 reg w rax 0
k bt bt
dv info locals frame variable
dv <var> p p, po
dt ptype type lookup
u . l1 info line
info frame
frame info
uf disass /r d -b
ln l *<addr> l <addr>
x info line image lookup -n
dd <addr> l10 x/16wx <addr> x/16wx <addr>
dq <addr> l10 x/16gx <addr> x/16gx <addr>
dc <addr> l10 x/16c <addr> x/16c <addr>
db <addr> l10 x/16b <addr> x/16x <addr>
u <addr> l10 x/16i <addr> x/16i <addr>
ed <addr> <value> set *(int*)<addr>=<value> memory write -s 4 <addr> <value>
windbg.exe C-x C-a
C-x C-1
C-x C-2
gui

Other cheat sheets