{"id":1182,"date":"2022-09-27T16:18:01","date_gmt":"2022-09-27T07:18:01","guid":{"rendered":"https:\/\/mowareblog.net\/3rd\/?p=1182"},"modified":"2022-09-29T00:44:56","modified_gmt":"2022-09-28T15:44:56","slug":"lldb-%e3%83%87%e3%83%90%e3%83%83%e3%82%ac%e3%81%ab%e3%82%88%e3%82%8b%e5%a4%89%e6%95%b0%e3%81%ae%e7%a2%ba%e8%aa%8d","status":"publish","type":"post","link":"https:\/\/mowareblog.net\/3rd\/2022\/09\/1182\/lldb-%e3%83%87%e3%83%90%e3%83%83%e3%82%ac%e3%81%ab%e3%82%88%e3%82%8b%e5%a4%89%e6%95%b0%e3%81%ae%e7%a2%ba%e8%aa%8d\/","title":{"rendered":"[LLDB] \u30c7\u30d0\u30c3\u30ac\u306b\u3088\u308b\u5909\u6570\u78ba\u8a8d\u3001\u9006\u30a2\u30bb\u30f3\u30d6\u30eb\u4ed6"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">[M1 Mac, Big Sur 11.6.8, clang 13.0.0, NO IDE]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30dd\u30a4\u30f3\u30bfp\u306e\u30e1\u30e2\u30ea\u9818\u57df\u3092\u78ba\u4fdd\u3057\u3066\u3001\u7a7a\u306e\u307e\u307eLLDB\u3067\u305d\u306e\u683c\u7d0d\u5185\u5bb9\u3068\u30e1\u30e2\u30ea\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b63\u5e38\u306a\u30b3\u30fc\u30c9\u306a\u306e\u3067\u6700\u7d42\u884c\u3067\u505c\u6b62\u3055\u305b\u3001print\u30b3\u30de\u30f3\u30c9\u3067\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u51fa\u529b\u3057\u3066\u3044\u307e\u3059\u3002\u3064\u3044\u3067\u306b\u30ec\u30b8\u30b9\u30bf\u306e\u72b6\u614b\u3084\u9006\u30a2\u30bb\u30f3\u30d6\u30eb\u3092\u51fa\u529b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-cpp\" data-file=\"test.cpp\" data-lang=\"C++\"><code>#include &lt;cppstd.h&gt;\n\nint main() {\n    char *p;\n\n    p = (char*)malloc(sizeof(char));\n\n    printf(&quot;\u30dd\u30a4\u30f3\u30bfp\u304c\u683c\u7d0d\u3057\u3066\u3044\u308bchar\u306f %s\\n&quot;, *p);\n    printf(&quot;\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9(10\u9032\u6570)\u306f %d\\n&quot;, p);\n    printf(&quot;\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9(16\u9032\u6570)\u306f %x\\n&quot;, p);\n\n    return 0;\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-bash\" data-lang=\"Bash\"><code>$ lldb -f test\n(lldb) target create &quot;test&quot;\nCurrent executable set to &#39;\/test&#39; (arm64).\n(lldb) b 12\nBreakpoint 1: where = test`main + 120 at test.cpp:12:5, address = 0x0000000100003ed8\n(lldb) r\nProcess 87108 launched: &#39;\/test&#39; (arm64)\n\u30dd\u30a4\u30f3\u30bfp\u304c\u683c\u7d0d\u3057\u3066\u3044\u308bchar\u306f (null)\n\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9(10\u9032\u6570)\u306f 2125136\n\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9(16\u9032\u6570)\u306f 206d50\nProcess 87108 stopped\n* thread #1, queue = &#39;com.apple.main-thread&#39;, stop reason = breakpoint 1.1\n    frame #0: 0x0000000100003ed8 test`main at test.cpp:12:5\n   9   \t    printf(&quot;\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9(10\u9032\u6570)\u306f %d\\n&quot;, p);\n   10  \t    printf(&quot;\u30dd\u30a4\u30f3\u30bfp\u306e\u30a2\u30c9\u30ec\u30b9(16\u9032\u6570)\u306f %x\\n&quot;, p);\n   11  \t\n-&gt; 12  \t    return 0;\n   13  \t}\n   14  \t\n   15  \t\nTarget 0: (test) stopped.\n(lldb) print p\n(char *) $0 = 0x0000000100206d50 &quot;&quot;\n(lldb) register read\nGeneral Purpose Registers:\n        x0 = 0x0000000000000000\n        x1 = 0x0000000000000000\n        x2 = 0x00000000000120a8\n        x3 = 0x0000000100808e31\n        x4 = 0x000000016fdff140\n        x5 = 0x000000016fdff540\n        x6 = 0x000000000000000a\n        x7 = 0x0000000000000000\n        x8 = 0x00000001000cbdec  dyld`_main_thread + 172\n        x9 = 0x00000001ff69c8d0  libsystem_kernel.dylib`errno\n       x10 = 0x0000000000000002\n       x11 = 0x00000000fffffffd\n       x12 = 0x0000010000000000\n       x13 = 0x0000000000000000\n       x14 = 0x0000000000000000\n       x15 = 0x0000000000000000\n       x16 = 0x00000001942097d8  libsystem_kernel.dylib`__error\n       x17 = 0x0000000202cc5650  (void *)0x00000001942097d8: __error\n       x18 = 0x0000000000000000\n       x19 = 0x0000000000000000\n       x20 = 0x0000000000000000\n       x21 = 0x0000000000000000\n       x22 = 0x0000000000000000\n       x23 = 0x0000000000000000\n       x24 = 0x0000000000000000\n       x25 = 0x0000000000000000\n       x26 = 0x0000000000000000\n       x27 = 0x0000000000000000\n       x28 = 0x000000016fdff598\n        fp = 0x000000016fdff560\n        lr = 0x6310000100003ed4 (0x0000000100003ed4) test`main + 116 at test.cpp:10:5\n        sp = 0x000000016fdff540\n        pc = 0x0000000100003ed8  test`main + 120 at test.cpp:12:5\n      cpsr = 0x20000000\n\n(lldb) di\ntest`main:\n    0x100003e60 &lt;+0&gt;:   sub    sp, sp, #0x30             ; =0x30 \n    0x100003e64 &lt;+4&gt;:   stp    x29, x30, [sp, #0x20]\n    0x100003e68 &lt;+8&gt;:   add    x29, sp, #0x20            ; =0x20 \n    0x100003e6c &lt;+12&gt;:  mov    w8, #0x0\n    0x100003e70 &lt;+16&gt;:  str    w8, [sp, #0xc]\n    0x100003e74 &lt;+20&gt;:  stur   wzr, [x29, #-0x4]\n    0x100003e78 &lt;+24&gt;:  mov    x0, #0x1\n    0x100003e7c &lt;+28&gt;:  bl     0x100003ee4               ; symbol stub for: malloc\n    0x100003e80 &lt;+32&gt;:  str    x0, [sp, #0x10]\n    0x100003e84 &lt;+36&gt;:  ldr    x8, [sp, #0x10]\n    0x100003e88 &lt;+40&gt;:  ldrsb  w10, [x8]\n    0x100003e8c &lt;+44&gt;:  adrp   x0, 0\n    0x100003e90 &lt;+48&gt;:  add    x0, x0, #0xf2c            ; =0xf2c \n    0x100003e94 &lt;+52&gt;:  mov    x9, sp\n    0x100003e98 &lt;+56&gt;:  mov    x8, x10\n    0x100003e9c &lt;+60&gt;:  str    x8, [x9]\n    0x100003ea0 &lt;+64&gt;:  bl     0x100003ef0               ; symbol stub for: printf\n    0x100003ea4 &lt;+68&gt;:  ldr    x8, [sp, #0x10]\n    0x100003ea8 &lt;+72&gt;:  adrp   x0, 0\n    0x100003eac &lt;+76&gt;:  add    x0, x0, #0xf5a            ; =0xf5a \n    0x100003eb0 &lt;+80&gt;:  mov    x9, sp\n    0x100003eb4 &lt;+84&gt;:  str    x8, [x9]\n    0x100003eb8 &lt;+88&gt;:  bl     0x100003ef0               ; symbol stub for: printf\n    0x100003ebc &lt;+92&gt;:  ldr    x8, [sp, #0x10]\n    0x100003ec0 &lt;+96&gt;:  adrp   x0, 0\n    0x100003ec4 &lt;+100&gt;: add    x0, x0, #0xf88            ; =0xf88 \n    0x100003ec8 &lt;+104&gt;: mov    x9, sp\n    0x100003ecc &lt;+108&gt;: str    x8, [x9]\n    0x100003ed0 &lt;+112&gt;: bl     0x100003ef0               ; symbol stub for: printf\n    0x100003ed4 &lt;+116&gt;: ldr    w0, [sp, #0xc]\n-&gt;  0x100003ed8 &lt;+120&gt;: ldp    x29, x30, [sp, #0x20]\n    0x100003edc &lt;+124&gt;: add    sp, sp, #0x30             ; =0x30 \n    0x100003ee0 &lt;+128&gt;: ret    \n(lldb) exit\nQuitting LLDB will kill one or more processes. Do you really want to proceed: [Y\/n] y\n$ <\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>[M1 Mac, Big Sur 11.6.8, clang 13.0.0, NO IDE] \u30dd\u30a4\u30f3\u30bfp\u306e\u30e1\u30e2\u30ea\u9818\u57df\u3092\u78ba\u4fdd\u3057\u3066\u3001\u7a7a\u306e\u307e\u307eLLDB\u3067\u305d\u306e\u683c\u7d0d\u5185\u5bb9\u3068\u30e1\u30e2\u30ea\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002 \u6b63\u5e38\u306a\u30b3\u30fc\u30c9\u306a\u306e\u3067\u6700\u7d42\u884c\u3067\u505c &hellip; <a href=\"https:\/\/mowareblog.net\/3rd\/2022\/09\/1182\/lldb-%e3%83%87%e3%83%90%e3%83%83%e3%82%ac%e3%81%ab%e3%82%88%e3%82%8b%e5%a4%89%e6%95%b0%e3%81%ae%e7%a2%ba%e8%aa%8d\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">[LLDB] \u30c7\u30d0\u30c3\u30ac\u306b\u3088\u308b\u5909\u6570\u78ba\u8a8d\u3001\u9006\u30a2\u30bb\u30f3\u30d6\u30eb\u4ed6<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[14],"tags":[],"class_list":["post-1182","post","type-post","status-publish","format-standard","hentry","category-14"],"_links":{"self":[{"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/posts\/1182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/comments?post=1182"}],"version-history":[{"count":12,"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/posts\/1182\/revisions"}],"predecessor-version":[{"id":1202,"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/posts\/1182\/revisions\/1202"}],"wp:attachment":[{"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/media?parent=1182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/categories?post=1182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mowareblog.net\/3rd\/wp-json\/wp\/v2\/tags?post=1182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}