Debugger Command Cheat Sheet (windbg/gdb/lldb)
たまに gdb や lldb を使うときは、いつも基本的なコマンドをググるのに時間を費やしているので、自分用にコマンドをまとめてみました。こうしてみると、やはり Windows Debugger のコマンドはシンプルで洗練されていて好き。gdb と lldb のコマンドは長すぎるし、そもそもソースコードがあることが前提で、最適化済みのコードや、アセンブリを見てデバッグすることがほとんど想定されていないように思える。随時更新予定です。
(2015/8/3 追記).gdbinit や .lldbinit という設定ファイルを作ってカスタム コマンドを定義する方法があるらしい。GitHub に、いろいろな人の設定ファイルが公開されているので、使いやすいものを選んで利用することも可能。
(このブログ、テーブルのスタイルが指定できない・・? 後で何とかしないと。)
| 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
- Linux Tutorial - GNU GDB Debugger Command Cheat Sheet
http://www.yolinux.com/TUTORIALS/GDB-Commands.html - LLDB to GDB Command Map
http://lldb.llvm.org/lldb-gdb.html