{"id":5467,"date":"2022-05-26T14:27:28","date_gmt":"2022-05-26T05:27:28","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5467"},"modified":"2022-05-26T15:33:30","modified_gmt":"2022-05-26T06:33:30","slug":"gdb-cheat-sheet","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5467","title":{"rendered":"gdb cheat sheet"},"content":{"rendered":"<h1>gdb cheat sheet<\/h1>\n<p><a href=\"https:\/\/gist.github.com\/rkubik\/b96c23bd8ed58333de37f2b8cd052c30\">\ucc38\uc870<\/a><\/p>\n<h2>\uc2e4\ud589\ud558\uae30<\/h2>\n<pre><code class=\"language-bash\">gdb -help           \ub3c4\uc6c0\ub9d0 \ud45c\uc2dc\ngdb object          \ud504\ub85c\uadf8\ub7a8 \ub514\ubc84\uae45 \uc2dc\uc791\ngdb object pid      \uc2e4\ud589\uc911\uc778 \ud504\ub85c\uc138\uc2a4 \ub514\ubc84\uae45<\/code><\/pre>\n<h2>\ub3c4\uc6c0\ub9d0<\/h2>\n<pre><code class=\"language-bash\"># alias\nhelp           h<\/code><\/pre>\n<pre><code class=\"language-bash\">(gdb) help              \ub3c4\uc6c0\ub9d0 \ud56d\ubaa9\n(gdb) help running      \ud2b9\uc815 \ud56d\ubaa9\uc758 \uc0c1\uc138 \uba85\ub839\ubaa9\ub85d\n(gdb) help run          run \uba85\ub839\uc5b4\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0\n(gdb) help info         info \uba85\ub839\uc5b4\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0\n(gdb) help info line    info \uba85\ub839\uc5b4\uc758 \uc0c1\uc138\uba85\ub839\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0\n(gdb) help show         show \uba85\ub839\uc5b4\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0<\/code><\/pre>\n<h2>\ube0c\ub808\uc774\ud06c \ud3ec\uc778\ud2b8(bpt)<\/h2>\n<pre><code class=\"language-bash\"># alias\nbreak          b\ninfo           i\ndelete         d\nclear          cl\ndisable        dis\nenable         en\ntbreak         tb\ncondition      cond\nwatch          wa\nbreakpoints    b<\/code><\/pre>\n<pre><code class=\"language-bash\">(gdb) break main       \ud2b9\uc815 \ud568\uc218\uc5d0 \ube0c\ub808\uc774\ud06c \ud3ec\uc778\ud2b8(bpt) \uc9c0\uc815\n(gdb) break 101        \ud2b9\uc815 \ub77c\uc778\uc5d0 bpt \uc9c0\uc815\n(gdb) break line if var == 7      \ud2b9\uc815 \ubcc0\uc218\uac00 \ud2b9\uc815\uac12\uc77c \ub54c bpt \ud65c\uc131\ud654\n(gdb) break basic.c:101       \ud2b9\uc815 \ud30c\uc77c\uc758 \ud2b9\uc815 \ub77c\uc778(\ub610\ub294 \ud568\uc218)\uc5d0 bpt \uc9c0\uc815\n(gdb) info breakpoints        bpt \ubaa9\ub85d \ud45c\uc2dc\n(gdb) delete 1         \ubc88\ud638\ub85c bpt \uc0ad\uc81c\n(gdb) delete           \ubaa8\ub4e0 bpt \uc0ad\uc81c\n(gdb) clear            \ud604\uc7ac \ub77c\uc778\uc758 bpt\uc0ad\uc81c\n(gdb) clear function   \ud2b9\uc815 \ud568\uc218\uc5d0 \uac78\ub9b0 bpt \uc0ad\uc81c\n(gdb) clear line       \ub77c\uc778 \ubc88\ud638\ub85c bpt \uc0ad\uc81c\n(gdb) disable 2        \ubc88\ud638\ub85c bpt \ub044\uae30(\uc0ad\uc81c XXX)\n(gdb) enable 2         \ubc88\ud638\ub85c bpt \ucf1c\uae30\n(gdb) tbreak function|line             \uc784\uc2dc bpt \uc124\uc815\n(gdb) commands break-no ... end        bpt \ubc88\ud638\uc5d0 gdb \uba85\ub839 \uc124\uc815\n(gdb) ignore break-no count            bpt \ubc88\ud638\uc5d0 N-1 \ubc88\ub9cc\ud07c \ubb34\uc2dc\n(gdb) condition break-no expression    \uc870\uac74\uc774 \ucc38\uc778 \uacbd\uc6b0\ub9cc bpt \ubc88\ud638 \ud65c\uc131\ud654\n(gdb) condition 2 i == 20              \uc608\uc81c: i \uac00 20 \uc778 \uacbd\uc6b0 bpt \ud65c\uc131\ud654\n(gdb) watch expression                 \ubcc0\uc218\uc5d0 software watchpoint \ud560\ub2f9\n(gdb) info watchpoints                 \ud604\uc7ac watchpoints \uc870\ud68c<\/code><\/pre>\n<h2>\ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\/\uc885\ub8cc<\/h2>\n<pre><code class=\"language-bash\"># alias\nrun            r\nstep           s\nnext           n\ncontinue       cont\nkill           k<\/code><\/pre>\n<pre><code class=\"language-bash\">(gdb) run                         \ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\n(gdb) run args redirection        \ud30c\ub77c\ubbf8\ud130\ub97c \ud3ec\ud568\ud574 \ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\n(gdb) set args args...            \ud30c\ub77c\ubbf8\ud130 \uc124\uc815\n(gdb) show args        \ud30c\ub77c\ubbf8\ud130 \ud45c\uc2dc\n(gdb) cont             \ub2e4\uc74c bpt \uae4c\uc9c0 \ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589\n(gdb) step             \ud604\uc7ac\ub77c\uc778 \uc2e4\ud589, \ud568\uc218\uac00 \uc788\uc73c\uba74 \ud568\uc218 \uc548\uc73c\ub85c \uc9c4\ud589\n(gdb) step count       count \ubc88\ub9cc\ud07c step \uc2e4\ud589\n(gdb) next             step \uc2e4\ud589, \ud568\uc218\uac00 \uc788\uc73c\uba74 \ud568\uc218 \ub2e4\uc74c \ub77c\uc778\uc73c\ub85c \uc9c4\ud589\n(gdb) next count       count \ubc88\ub9cc\ud07c next \uc2e4\ud589\n(gdb) CTRL-C           \ud504\ub85c\uadf8\ub7a8 \uc885\ub8cc\n(gdb) attach process-id        \uc2e4\ud589\uc911\uc778 \ud504\ub85c\uc138\uc2a4\uc5d0 \uc5f0\uacb0\n(gdb) detach           \uc5f0\uacb0 \ud574\uc81c\n(gdb) finish           \ud604\uc7ac \ud568\uc218\uc758 \uc2e4\ud589 \uc885\ub8cc\n(gdb) kill             \uc2e4\ud589\uc911\uc778 \ud504\ub85c\uadf8\ub7a8 \uc885\ub8cc<\/code><\/pre>\n<h2>\uc2a4\ud0dd\uc870\ud68c<\/h2>\n<pre><code class=\"language-bash\">(gdb) bt            \uc2a4\ud0dd \uc870\ud68c\n(gdb) frame         \ud604\uc7ac \uc2e4\ud589 \uc704\uce58 \ud45c\uc2dc\n(gdb) up            \uc0c1\uc704 \uc2a4\ud0dd\uc73c\ub85c \uc774\ub3d9(main \uc73c\ub85c \uc774\ub3d9)\n(gdb) down          \ud558\uc704 \uc2a4\ud0dd\uc73c\ub85c \uc774\ub3d9(main \uc5d0\uc11c \uba40\uc5b4\uc9d0)\n(gdb) info locals   \ud604\uc7ac \ud504\ub808\uc784\uc758 \ubcc0\uc218 \ud45c\uc2dc\n(gdb) info args     \ud568\uc218 \ud30c\ub77c\ubbf8\ud130 \ud45c\uc2dc<\/code><\/pre>\n<h2>\uc18c\uc2a4 \ubcf4\uae30<\/h2>\n<pre><code class=\"language-bash\"># alias\nlist           l<\/code><\/pre>\n<pre><code class=\"language-bash\">(gdb) list 101           101 \ub77c\uc778\ubd80\ud130 10 \ub77c\uc778 \ud45c\uc2dc\n(gdb) list 1,10          1 \uc5d0\uc11c 10 \ub77c\uc778\uae4c\uc9c0 \ud45c\uc2dc\n(gdb) list main          \ud568\uc218 \uadfc\ucc98\uc758 \uc18c\uc2a4 \ud45c\uc2dc\n(gdb) list basic.c:main  \ud2b9\uc815\ud30c\uc77c\uc758 \ud2b9\uc815 \ud568\uc218 \uc18c\uc2a4 \ud45c\uc2dc\n(gdb) list -             \uc774\uc804 10 \ub77c\uc778 \ud45c\uc2dc<\/code><\/pre>\n<h2>\ub370\uc774\ud0c0 \uc870\ud68c<\/h2>\n<pre><code class=\"language-bash\"># alias\nprint          p<\/code><\/pre>\n<pre><code class=\"language-bash\">(gdb) print expression           expression \ucd9c\ub825, \ubcc0\uc218 \ud788\uc2a4\ud1a0\ub9ac\uc5d0 \ucd94\uac00\n(gdb) print\/x expressionR        hex \ub85c \ucd9c\ub825\n(gdb) print array[i]@count       \ubcc0\uc218 \ubc94\uc704 \ucd9c\ub825\n(gdb) print $                    \ub9c8\uc9c0\ub9c9 \ubcc0\uc218 \ucd9c\ub825\n(gdb) print *$-&gt;next             \ub9ac\uc2a4\ud2b8 \ubcc0\uc218 \ucd9c\ub825\n(gdb) print $1                   \ubcc0\uc218 \ud788\uc2a4\ud1a0\ub9ac\uc758 1\ubc88\uc9f8 \uac12 \ucd9c\ub825\n(gdb) info locals                \uc9c0\uc5ed \ubcc0\uc218 \ucd9c\ub825\n(gdb) whatis expression          expression \uc758 \ud0c0\uc785 \ucd9c\ub825\n(gdb) set variable = expression  \ubcc0\uc218\uc758 \uac12 \ubcc0\uacbd\n(gdb) display expression         \ubcc0\uc218\uc758 \uac12 \uc9c0\uc18d\uc801\uc73c\ub85c \ucd9c\ub825\n(gdb) undisplay                  display \uc0ad\uc81c\n(gdb) info display               display \ubaa9\ub85d \ud45c\uc2dc\n(gdb) show values                \ubcc0\uc218 \ud788\uc2a4\ud1a0\ub9ac \ucd9c\ub825<\/code><\/pre>\n<h2>\uae30\ud0c0<\/h2>\n<pre><code class=\"language-bash\"># alias\nquit           q<\/code><\/pre>\n<pre><code class=\"language-bash\">(gdb) define command ... end        \uc0ac\uc6a9\uc790 \ud568\uc218 \uc0dd\uc131\n*(gdb) RETURN                       \ub9c8\uc9c0\ub9c9 \uba85\ub839 \ubc18\ubcf5\n*(gdb) shell command args           shell \uba85\ub839 \uc2e4\ud589\n*(gdb) source file                  \ud30c\uc77c\uc5d0\uc11c gdb \uba85\ub839 \uc77d\uc5b4\uc624\uae30\n*(gdb) quit                         gdb \uc885\ub8cc<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>gdb cheat sheet \ucc38\uc870 \uc2e4\ud589\ud558\uae30 gdb -help \ub3c4\uc6c0\ub9d0 \ud45c\uc2dc gdb object \ud504\ub85c\uadf8\ub7a8 \ub514\ubc84\uae45 \uc2dc\uc791 gdb object pid \uc2e4\ud589\uc911\uc778 \ud504\ub85c\uc138\uc2a4 \ub514\ubc84\uae45 \ub3c4\uc6c0\ub9d0 # alias help h (gdb) help \ub3c4\uc6c0\ub9d0 \ud56d\ubaa9 (gdb) help running \ud2b9\uc815 \ud56d\ubaa9\uc758 \uc0c1\uc138 \uba85\ub839\ubaa9\ub85d (gdb) help run run \uba85\ub839\uc5b4\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 (gdb) help info info \uba85\ub839\uc5b4\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 (gdb) help info line info\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5467\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[],"class_list":["post-5467","post","type-post","status-publish","format-standard","hentry","category-c-c"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5467"}],"version-history":[{"count":9,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5467\/revisions"}],"predecessor-version":[{"id":5476,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5467\/revisions\/5476"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}