{"id":791,"date":"2017-12-12T19:11:31","date_gmt":"2017-12-12T11:11:31","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=791"},"modified":"2019-08-13T15:31:12","modified_gmt":"2019-08-13T07:31:12","slug":"791","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/791","title":{"rendered":"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357"},"content":{"rendered":"<p><a href=\"http:\/\/www.sohu.com\/a\/120076507_464041\">\u539f\u6587\u5730\u5740<\/a><\/p>\n<p>&nbsp;<\/p>\n<div id=\"page-content\">\n<p>\u6ca1\u60f3\u5230BrendanGregg\u8fd9\u6837\u7684\u5927\u725b\uff0c\u4f1a\u5199\u51fa\u8fd9\u6837\u4e00\u7bc7gdbtutorials\u6587\u7ae0\uff1agdbDebuggingFullExample(Tutorial):ncurses\u3002\u4f46\u53ef\u80fd\u6b63\u5982\u6587\u7ae0\u5f00\u5934\u6240\u8bf4\uff0c\u5927\u725b\u5bf9\u7f51\u4e0a\u7684gdb\u6587\u7ae0\u90fd\u4e0d\u592a\u6ee1\u610f\uff0c\u6240\u4ee5\u624d\u6709\u4e86\u8fd9\u7bc7\u9ad8\u8d28\u91cf\u6307\u5357\uff0cgdb\u5165\u95e8\u8005\u7684\u798f\u97f3\u3002\u2014\u2014\u4f55\u767b\u6210<\/p>\n<p>\u5982\u679c\u4f60\u662f\u7cfb\u7edf\u7ba1\u7406\u5458\uff0c\u4f46\u8fd8\u4e0d\u8ba4\u8bc6BrendanGregg\uff0c\u90a3\u7f51\u4e0a\u6d41\u4f20\u751a\u5e7f\u76843\u5f20Linux\u6027\u80fd\u5de5\u5177\u56fe\uff08\u94fe\u63a5\uff09\uff0c\u4f60\u5e94\u8be5\u770b\u8fc7\u7684\u3002\u2014\u2014\u4f2f\u5c0f\u4e50\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgwl6EN4erGFibVfcNpgDg0DZssHlI1eWwqQdicIf3ef8rtuKDRvP6ukKQ\/0?wx_fmt=jpeg\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\uff08BrendanGregg\uff09<\/p>\n<p><strong>gdb\u8c03\u8bd5ncurses\u5168\u8fc7\u7a0b\uff1a<\/strong><\/p>\n<p>\u53d1\u73b0\u7f51\u4e0a\u7684\u201cgdb\u793a\u4f8b\u201d\u53ea\u6709\u547d\u4ee4\u800c\u6ca1\u6709\u5bf9\u5e94\u7684\u8f93\u51fa\uff0c\u6211\u6709\u70b9\u4e0d\u6ee1\u610f\u3002gdb\u662fGNU\u8c03\u8bd5\u5668\uff0cLinux\u4e0a\u7684\u6807\u914d\u8c03\u8bd5\u5668\u3002\u5f53\u6211\u770bGregLaw\u5728CppCon2015\u4e0a\u7684\u6f14\u8bb2\u300a\u7ed9\u621115\u5206\u949f\uff0c\u6211\u5c06\u6539\u53d8\u4f60\u7684\u5bf9GDB\u7684\u8ba4\u77e5\u300b\u7684\u65f6\u5019\uff0c\u6211\u60f3\u8d77\u4e86\u793a\u4f8b\u8f93\u51fa\u7684\u4e0d\u8db3\uff0c\u5e78\u8fd0\u7684\u662f\uff0c\u8fd9\u6b21\u6709\u8f93\u51fa\uff01\u8fd915\u5206\u949f\u592a\u503c\u4e86\u3002<\/p>\n<p>\u5b83\u4e5f\u542f\u53d1\u6211\u53bb\u5206\u4eab\u4e00\u4e2a\u5b8c\u6574\u7684gdb\u8c03\u8bd5\u5b9e\u4f8b\uff0c\u5305\u542b\u8f93\u51fa\u548c\u6bcf\u4e2a\u6b65\u9aa4\uff0c\u751a\u81f3\u94bb\u725b\u89d2\u5c16\u7684\u60c5\u51b5\u3002\u8fd9\u4e0d\u662f\u4e00\u4e2a\u7279\u522b\u6709\u8da3\u6216\u5947\u602a\u7684\u95ee\u9898\uff0c\u53ea\u662f\u5e38\u89c4\u7684gdb\u8c03\u8bd5\u4f1a\u8bdd\u3002\u4f46\u5b83\u5305\u542b\u4e86\u57fa\u7840\u7684\u4e1c\u897f\u53ef\u4ee5\u52c9\u5f3a\u4f5c\u4e3a\u6559\u7a0b\u4f7f\u7528\uff0c\u8bb0\u4f4fgdb\u91cc\u8fd8\u6709\u5f88\u591a\u4e1c\u897f\u6211\u8fd9\u91cc\u6ca1\u7528\u5230\u3002<\/p>\n<p>\u6211\u4f1a\u4ee5root\u6743\u9650\u8fd0\u884c\u4e0b\u9762\u7684\u547d\u4ee4\uff0c\u56e0\u4e3a\u6211\u5728\u8c03\u8bd5\u4e00\u4e2a\u5de5\u5177\uff0c\u5b83\u9700\u8981root\u6743\u9650\uff08\u76ee\u524d\uff09\u3002\u9700\u8981\u7684\u65f6\u5019\u53ef\u7528sudo\u83b7\u53d6root\u6743\u9650\u3002\u4f60\u4e5f\u6ca1\u5fc5\u8981\u901a\u8bfb\u5168\u7bc7\ufe30\u6211\u5df2\u5217\u51fa\u6bcf\u4e00\u6b65\uff0c\u4f60\u53ef\u4ee5\u6d4f\u89c8\u5b83\u4eec\u627e\u611f\u5174\u8da3\u7684\u770b\u3002<\/p>\n<p><strong>1.\u95ee\u9898\u6982\u8ff0<\/strong><\/p>\n<p>BPF\u5de5\u5177\u7bb1\u91cc\u7684bcc\u5de5\u5177\u96c6\u6709\u4e00\u4e2a\u5bf9cachetop.py\u7684pull\u8bf7\u6c42\uff0c\u5b83\u901a\u8fc7\u7a0b\u5e8f\u4f7f\u7528top-likedisplay\u663e\u793apagecache\u7684\u7edf\u8ba1\u3002\u592a\u597d\u4e86\uff01\u7136\u800c\uff0c\u5f53\u6211\u6d4b\u8bd5\u5b83\u65f6\uff0c\u9047\u5230\u4e86\u6bb5\u9519\u8bef\ufe30<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWghu1y9NmiaUZNcpDSl5jObpdrmAKicOkRC3OYosuHWqzdibeyHwBcuw6YA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6ce8\u610f\u5b83\u8bf4\u7684\u662f\u201c\u6bb5\u9519\u8bef\u201d\uff0c\u4e0d\u662f\u201c\u6bb5\u9519\u8bef\uff08\u6838\u5fc3\u5df2\u8f6c\u50a8\uff09\u201d\u3002\u6211\u60f3\u8981\u4e00\u4e2a\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u7528\u6765\u8c03\u8bd5\u3002\uff08\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u662f\u8fdb\u7a0b\u5185\u5b58\u7684\u62f7\u8d1d\u2013\u8fd9\u4e2a\u540d\u5b57\u6765\u6e90\u4e8e\u78c1\u82af\u5b58\u50a8\u5668\u65f6\u4ee3\u2013\u53ef\u7528\u8c03\u8bd5\u5668\u5206\u6790\uff09<\/p>\n<p>\u5206\u6790\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u662f\u4e00\u79cd\u65b9\u6cd5\uff0c\u4f46\u4e0d\u662f\u8c03\u8bd5\u8fd9\u4e2a\u95ee\u9898\u7684\u552f\u4e00\u65b9\u6cd5\u3002\u6211\u53ef\u4ee5\u5728gdb\u4e2d\u8fd0\u884c\u6b64\u7a0b\u5e8f\uff0c\u6765\u68c0\u67e5\u8fd9\u4e2a\u95ee\u9898\u3002\u6211\u4e5f\u53ef\u4ee5\u5728\u6bb5\u9519\u8bef\u53d1\u751f\u65f6\uff0c\u7528\u5916\u90e8\u8ffd\u8e2a\u5668\u53bb\u6293\u6570\u636e\u548c\u6808\u5e27\u3002\u6211\u4eec\u4ece\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u5165\u624b\u3002<\/p>\n<p><strong>2.\u89e3\u51b3\u6838\u5fc3\u8f6c\u50a8\u95ee\u9898<\/strong><\/p>\n<p>\u6211\u68c0\u67e5\u4e00\u4e0b\u6838\u5fc3\u8f6c\u50a8\u7684\u8bbe\u7f6e\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgBeWib8njwiaUM2QhblrbGtI30LpYcdI4vMrCnhwSZAI3kApTo4KJEHWw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>ulimit-c\u663e\u793a\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u5927\u5c0f\u7684\u6700\u5927\u503c\uff0c\u8fd9\u91cc\u662f\u96f6\uff1a\u7981\u6b62\u6838\u5fc3\u8f6c\u50a8\uff08\u5bf9\u4e8e\u672c\u8fdb\u7a0b\u548c\u5b83\u7684\u5b50\u8fdb\u7a0b\uff09\u3002<\/p>\n<p>\/proc\/\u2026\/core_pattern\u4ec5\u4ec5\u88ab\u8bbe\u4e3a\u201ccore\u201d\uff0c\u8868\u793a\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2a\u6587\u4ef6\u540d\u4e3a\u201ccore\u201d\u7684\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u3002\u76ee\u524d\u8fd9\u6837\u5c31\u884c\u4e86\uff0c\u4f46\u662f\u6211\u8981\u6f14\u793a\u5982\u4f55\u628a\u5b83\u8bbe\u7f6e\u4e3a\u5168\u5c40\u4f4d\u7f6e\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgPXHhuJk3nRJC05Fpermu7Bvia1wXdP5iaiaNG1pT2Z3qMA9Sq8uQ23gFA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u4f60\u53ef\u4ee5\u8fdb\u4e00\u6b65\u5b9a\u5236core_pattern\uff1b\u4f8b\u5982\uff0c%h\u4e3a\u4e3b\u673a\u540d\uff0c%t\u4e3a\u8f6c\u50a8\u7684\u65f6\u95f4\u3002\u8fd9\u4e9b\u9009\u9879\u88ab\u5199\u5728Linux\u5185\u6838\u6e90\u7801Documentation\/sysctl\/kernel.txt\u4e2d\u3002<\/p>\n<p>\u8981\u4f7fcore_pattern\u4fdd\u6301\u4e0d\u53d8\uff0c\u91cd\u542f\u4e4b\u540e\u4ecd\u7136\u6709\u6548\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e\/etc\/sysctl.conf\u91cc\u7684\u201ckernel.core_pattern\u201d\u5b9e\u73b0\u3002<\/p>\n<p>\u518d\u6765\u4e00\u6b21\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgSOelian73P6vaQKtINOkexKS1fG91pATbic8aM6biaWhlppkAgoYoAMpw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u597d\u591a\u4e86\uff1a\u6211\u4eec\u6709\u4e86\u81ea\u5df1\u7684\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u3002<\/p>\n<p><strong>3.\u542f\u52a8GDB<\/strong><\/p>\n<p>\u73b0\u5728\u6211\u8981\u7528gdb\u542f\u52a8\u76ee\u6807\u7a0b\u5e8f\uff08\u7528shell\u66ff\u6362\u7b26\uff0c\u201d`\u201d\uff0c\u4e0d\u8fc7\u5728\u4f60\u786e\u5b9a\u80fd\u7528\u7684\u60c5\u51b5\u4e0b\uff0c\u4e5f\u53ef\u6307\u5b9a\u5b8c\u6574\u8def\u5f84\uff09\uff0c\u548c\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgU5IFSFaibrGLYibxdOAFRvSVeq8AibIX1awRzcsoC7DhYsjq4JyFiaTqAw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6700\u540e\u4e24\u884c\u5f88\u6709\u8da3\uff1a\u5b83\u544a\u8bc9\u6211\u4eec\u8fd9\u4e2a\u6bb5\u9519\u8bef\u53d1\u751f\u5728libncursesw\u5e93\u91ccdoupdate()\u51fd\u6570\u4e2d\u3002\u53ef\u4ee5\u5148\u5728\u7f51\u4e0a\u641c\u4e00\u4e0b\uff0c\u4ee5\u9632\u8fd9\u662f\u4e2a\u5f88\u5e38\u89c1\u7684\u95ee\u9898\u3002\u6211\u641c\u4e86\u4e00\u4e0b\uff0c\u53ef\u662f\u6ca1\u53d1\u73b0\u4e00\u4e2a\u5e38\u89c1\u7684\u539f\u56e0\u3002<\/p>\n<p>\u6211\u5df2\u7ecf\u731c\u5230libncursesw\u662f\u4ec0\u4e48\u4e86\uff0c\u5982\u679c\u4f60\u5bf9\u5b83\u5f88\u964c\u751f\uff0c\u5b83\u5728\u201c\/lib\u201d\u76ee\u5f55\u4e0b\u4ee5\u201c.so.*\u201d\u7ed3\u5c3e\u8868\u660e\u8fd9\u662f\u4e00\u4e2a\u52a8\u6001\u5e93\u6587\u4ef6\uff0c\u53ef\u80fd\u6709man\u624b\u518c\u3001\u7f51\u7ad9\u3001\u5305\u63cf\u8ff0\u7b49\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgKbtJOekpCcvdW1kPu6l7hKeS0ZKrhOtmvvicyibEwfnNL7WlUESZqP2A\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6211\u662f\u78b0\u5de7\u5728Ubuntu\u4e0a\u8c03\u8bd5\uff0c\u4f46\u7528\u4ec0\u4e48Linux\u53d1\u884c\u7248\u5bf9\u4f7f\u7528gdb\u5e76\u6ca1\u6709\u5f71\u54cd\u3002<\/p>\n<p><strong>4.\u56de\u6eaf<\/strong><\/p>\n<p>\u6808\u56de\u6eaf\u663e\u793a\u6211\u4eec\u662f\u5982\u4f55\u5230\u8fbe\u5931\u8d25\u70b9\u7684\uff0c\u901a\u5e38\u8db3\u591f\u5e2e\u52a9\u6211\u4eec\u786e\u5b9a\u5e38\u89c1\u7684\u95ee\u9898\u3002bt\uff08backtrace\u7684\u7b80\u5199\uff09\u5e38\u5e38\u662f\u6211\u5728gdb\u4e2d\u4f7f\u7528\u7684\u7b2c\u4e00\u6761\u547d\u4ee4\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgWpyOVfW1tIyCd8vibVvEtYw3Ae62Rs82V0jaicv5D5oibE3z3qeBibiccFg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u4ece\u4e0b\u5f80\u4e0a\uff0c\u6309\u7167\u4ece\u7236\u51fd\u6570\u5230\u5b50\u51fd\u6570\u7684\u987a\u5e8f\u770b\u3002\u6709\u201c??\u201d\u7684\u5730\u65b9\u662f\u56e0\u4e3a\u7b26\u53f7\u89e3\u6790\u5931\u8d25\u3002\u904d\u5386\u6808\u2013\u7528\u6765\u751f\u6210\u6808\u5e27\u2014\u4e5f\u4f1a\u5931\u8d25\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u4f60\u53ef\u80fd\u4f1a\u770b\u5230\u4e00\u4e2a\u6b63\u5e38\u7684\u6808\u5e27\uff0c\u8ddf\u7740\u4e00\u4e2a\u5c0f\u6570\u503c\u7684\u5047\u5730\u5740\u3002\u5982\u679c\u7b26\u53f7\u6216\u6808\u7834\u635f\u5f88\u4e25\u91cd\uff0c\u5bfc\u81f4\u65e0\u6cd5\u7406\u89e3\u6808\u56de\u6eaf\uff0c\u8fd9\u91cc\u6709\u51e0\u4e2a\u5e38\u7528\u7684\u529e\u6cd5\u6765\u4fee\u590d\uff1a\u5b89\u88c5debuginfo\u5305\uff08\u7ed9gdb\u63d0\u4f9b\u66f4\u591a\u7684\u7b26\u53f7\uff0c\u8ba9\u5b83\u6765\u505a\u57fa\u4e8eDWARF\u7684\u6808\u904d\u5386\uff09\uff0c\u6216\u8005\u91cd\u65b0\u7528\u6e90\u7801\u7f16\u8bd1\uff08-fno-omit-frame-pointer-g\uff09\u4e00\u4e2a\u5e26\u5e27\u6307\u9488\u548c\u8c03\u8bd5\u4fe1\u606f\u7684\u7248\u672c\u3002\u4ee5\u4e0a\u5927\u591a\u6570\u201c??\u201d<\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u5b89\u88c5python-dbg\u5305\u6765\u4fee\u590d\u3002<\/p>\n<p>\u8fd9\u4e9b\u6808\u770b\u8d77\u6765\u4e0d\u592a\u6709\u7528\uff1a\u5e275\u523017\uff08\u5de6\u8fb9\u7684\u7d22\u5f15\uff09\u5728Python\u5185\u90e8\uff0c\u867d\u7136\u8fd8\u770b\u4e0d\u5230Python\u65b9\u6cd5\u3002\u5e274\u662f_curses\u5e93\uff0c\u7136\u540e\u5c31\u5230\u4e86libncursesw\u3002\u770b\u8d77\u6765\u8c03\u7528\u987a\u5e8f\u662fwgetch()-&gt;wrefresh()-&gt;doupdate()\u3002\u6839\u636e\u51fd\u6570\u540d\u6765\u770b\uff0c\u6211\u731c\u662f\u5237\u65b0\u7a97\u53e3\u3002\u4e3a\u4ec0\u4e48\u4f1a\u5bfc\u81f4\u6838\u5fc3\u8f6c\u50a8\u5462\uff1f<\/p>\n<p><strong>5.\u53cd\u6c47\u7f16<\/strong><\/p>\n<p>\u6211\u4ece\u53cd\u6c47\u7f16\u53d1\u751f\u6bb5\u9519\u8bef\u7684\u51fd\u6570doupdate()\u5f00\u59cb\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgnc9mhiaMfUN16yMWiaqjhdCaGEIGJu8GxMOFWc0yVQ9k1Jlkmb6HHzTQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u90e8\u5206\u8f93\u51fa\u3002\uff08\u6211\u4e5f\u53ef\u4ee5\u53ea\u8f93\u5165\u201cdisas\u201d\u5b83\u4f1a\u9ed8\u8ba4\u53cd\u6c47\u7f16doupdate\uff09<\/p>\n<p>\u201c=&gt;\u201d\u6307\u5411\u6bb5\u9519\u8bef\u5730\u5740\uff0c\u6b64\u5904\u662f\u4e00\u6761mov\u6307\u4ee4mov0x10(%rsi),%rdi\uff1a\u4ece%rsi\u4e2d\u6307\u5411\u5185\u5b58\u5730\u5740\u7684\u503c\u52a0\u504f\u79fb\u91cf0x10\u5904\u53d6\u503c\uff0c\u9001\u5230%rdi\u5bc4\u5b58\u5668\u4e2d\u3002\u63a5\u4e0b\u6765\u6211\u4f1a\u68c0\u67e5\u5bc4\u5b58\u5668\u7684\u72b6\u6001\u3002<\/p>\n<p><strong>6.\u67e5\u770b\u5bc4\u5b58\u5668<\/strong><\/p>\n<p>\u4f7f\u7528ir\uff08inforegisters\u7684\u7b80\u5199\uff09\u6253\u5370\u5bc4\u5b58\u5668\u503c\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgoVyaaibg4HiciczuZEpYQd5YEgVCgIzHpo2QvZb9TicdPXiaSgxPXDJEkQQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u54e6\uff0c%rsi\u662f\u96f6\uff0c\u8fd9\u5c31\u662f\u6211\u4eec\u7684\u95ee\u9898\u6240\u5728\uff01\u96f6\u4e0d\u592a\u53ef\u80fd\u662f\u6709\u6548\u5730\u5740\uff0c\u5e76\u4e14\u89e3\u5f15\u7528\u4e00\u4e2a\u672a\u521d\u59cb\u5316\u7684\u6307\u9488\u6216\u7a7a\u6307\u9488\u5f15\u8d77\u7684\u6bb5\u9519\u8bef\u662f\u5e38\u89c1\u7684\u8f6f\u4ef6bug\u3002<\/p>\n<p><strong>7.\u5185\u5b58\u6620\u5c04<\/strong><\/p>\n<p>\u4f60\u53ef\u4ee5\u4f7f\u7528iprocm\uff08infoprocmappings\u7684\u7b80\u5199\uff09\u6838\u67e5\u96f6\u662f\u4e0d\u662f\u6709\u6548\u5730\u5740\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgwb32ZKFcyVgSJg5bxibj0riccY7YibpM3l39CrnzKBpibGJLPaWz79tiaQA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u7b2c\u4e00\u4e2a\u6709\u6548\u7684\u865a\u62df\u5730\u5740\u662f0x400000\u3002\u4efb\u4f55\u5c0f\u4e8e\u5b83\u7684\u5730\u5740\u90fd\u662f\u975e\u6cd5\u7684\uff0c\u8fd9\u4e9b\u5730\u5740\u5982\u679c\u88ab\u5f15\u7528\uff0c\u5c31\u4f1a\u5f15\u8d77\u6bb5\u9519\u8bef\u3002<\/p>\n<p>\u76ee\u524d\u6709\u51e0\u79cd\u4e0d\u540c\u7684\u65b9\u5f0f\u53ef\u505a\u8fdb\u4e00\u6b65\u5206\u6790\u3002\u6211\u5148\u4e00\u6b65\u4e00\u6b65\u7684\u770b\u6307\u4ee4\u3002<\/p>\n<p><strong>8.\u65ad\u70b9<\/strong><\/p>\n<p>\u5148\u56de\u5230\u53cd\u6c47\u7f16\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgQavZR1mh6HXhicnxb6S0BDK4kdnfdfjibn3u9aMD4hkN24DEDFjNtcJg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u770b\u8fd9\u56db\u6761\u6307\u4ee4\uff1a\u597d\u50cf\u662f\u4ece\u6808\u4e2d\u53d6\u4e1c\u897f\u653e\u5230%rax\uff0c\u7136\u540e\u89e3\u5f15\u7528%rax\u5230%rsi\uff0c\u518d\u5c06\u00eax\u7f6e\u96f6\uff08xor\u662f\u4e00\u4e2a\u4f18\u5316\uff0c\u66ff\u6362\u6389\u79fb\u52a80\u7684\u52a8\u4f5c\uff09\uff0c\u6700\u540e\u5c06%rsi\u89e3\u5f15\u7528\u518d\u52a0\u4e00\u4e2a\u504f\u79fb\uff0c\u4e0d\u8fc7\u6211\u4eec\u77e5\u9053%rsi\u662f\u96f6\u3002\u8fd9\u51e0\u6761\u6307\u4ee4\u7528\u6765\u8bbf\u95ee\u6570\u636e\u7ed3\u6784\u3002\u53ef\u80fd%rax\u4f1a\u5f88\u6709\u8da3\uff0c\u4f46\u662f\u5b83\u5df2\u7ecf\u88ab\u524d\u9762\u7684\u6307\u4ee4\u7f6e\u96f6\uff0c\u6240\u4ee5\u6211\u4eec\u5728\u6838\u5fc3\u8f6c\u50a8\u6587\u4ef6\u7684\u5bc4\u5b58\u5668\u91cc\u770b\u4e0d\u5230\u5b83\u7684\u503c\u3002<\/p>\n<p>\u6211\u53ef\u4ee5\u5728doupdate+289\u4e0b\u4e2a\u65ad\u70b9\uff0c\u7136\u540e\u9010\u6761\u6307\u4ee4\u67e5\u770b\u5bc4\u5b58\u5668\u7684\u503c\u5982\u4f55\u53d8\u5316\u3002\u9996\u5148\uff0c\u6211\u9700\u8981\u542f\u52a8gdb\u628a\u7a0b\u5e8f\u8dd1\u8d77\u6765\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgLH1yP995yGNbO8Vp0M7n980RSlGNdrP5aTCB4viax3dUn2wmC8RicGOQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u73b0\u5728\u7528b\uff08break\u7684\u7b80\u5199\uff09\u6765\u4e0b\u65ad\u70b9\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgQAPC6heiaJrVooX6k2pFjxuRXtu7EqRjmf6YnGVR86hJHl14UaDgIwA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u54e6\u3002\u6211\u60f3\u6f14\u793a\u8fd9\u4e2a\u9519\u8bef\u6765\u89e3\u91ca\u4e3a\u4ec0\u4e48\u6211\u4eec\u7ecf\u5e38\u4ee5\u5728\u4e3b\u51fd\u6570\u8bbe\u7f6e\u65ad\u70b9\u4f5c\u4e3a\u5f00\u59cb\uff0c\u56e0\u4e3a\u8fd9\u65f6\u5019\u7b26\u53f7\u53ef\u80fd\u88ab\u52a0\u8f7d\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u611f\u5174\u8da3\u7684\u65ad\u70b9\u3002\u6211\u76f4\u63a5\u5728doupdate\u51fd\u6570\u8bbe\u65ad\u70b9\uff0c\u907f\u5f00\u8fd9\u4e2a\u95ee\u9898\uff0c\u4e00\u65e6\u65ad\u70b9\u88ab\u89e6\u53d1\u5c31\u8bbe\u7f6e\u52a0\u4e86\u504f\u79fb\u7684\u65ad\u70b9\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgfyiaB7EPjs9RmI6ibAknTYXZTvk70SZPVcTEbbpXic4CRia6fXR4AeqT4Q\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6211\u4eec\u5230\u4e86\u65ad\u70b9\u5904\u3002<\/p>\n<p>\u5982\u679c\u4f60\u4e4b\u524d\u6ca1\u6709\u505a\u8fd9\u4e9b\uff0cr(run)\u547d\u4ee4\u4f1a\u628a\u53c2\u6570\u4f20\u7ed9\u6211\u4eec\u65e9\u5148\u5728\u547d\u4ee4\u884c\u6307\u5b9a\u7684gdb\u76ee\u6807\uff08python\uff09\u3002\u8fd9\u6837\u7684\u8bdd\u7a0b\u5e8f\u4f1a\u4ee5\u6267\u884c\u201cpythoncachetop.py\u201d\u7ed3\u675f\u3002<\/p>\n<p><strong>9.\u5355\u6b65\u8c03\u8bd5<\/strong><\/p>\n<p>\u6211\u8df3\u5230\u4e0b\u4e00\u6761\u6307\u4ee4\uff08si\uff0cstepi\u7684\u7b80\u5199\uff09\uff0c\u7136\u540e\u68c0\u67e5\u5bc4\u5b58\u5668\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg6yB6bEP73cUD7Gm71hhl9S4vz95QgsxEy3cqkjQUUibcUKqNXl9yfvg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u53c8\u4e00\u6761\u7ebf\u7d22\u3002\u6240\u4ee5\u6211\u4eec\u89e3\u5f15\u7528\u7684\u7a7a\u6307\u9488\u597d\u50cf\u662f\u4e00\u4e2a\u53eb\u201ccur_term\u201d\u7684\u7b26\u53f7\uff08p\/a\u662fprint\/a\u7684\u7b80\u5199\uff0c\u8fd9\u91cc\u201c\/a\u201d\u6307\u4ee5\u5730\u5740\u7684\u5f62\u5f0f\uff09\u3002\u8003\u8651\u5230\u8fd9\u662fncurses,\u662f\u6211\u4eec\u7684\u73af\u5883\u53d8\u91cfTERM\u8bbe\u7f6e\u6709\u95ee\u9898\u5417\uff1f<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgTdJEaz5hIQg7Xs8fhNdGpRCeB00VCBLNe8pEy4MbjsTCwqoAVUq9DQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6211\u8bd5\u8fc7\u5c06\u5176\u8bbe\u7f6e\u4e3avt100\u5e76\u8fd0\u884c\u7a0b\u5e8f\uff0c\u8fd8\u662f\u9047\u5230\u4e86\u540c\u6837\u7684\u6bb5\u9519\u8bef\u3002<\/p>\n<p>\u6ce8\u610f\u6211\u53ea\u662f\u5728doupdate()\u7b2c\u4e00\u6b21\u88ab\u8c03\u7528\u7684\u65f6\u5019\u67e5\u770b\u4e86\u5bc4\u5b58\u5668\uff0c\u4f46\u662f\u5b83\u53ef\u4ee5\u88ab\u591a\u6b21\u8c03\u7528\uff0c\u6240\u4ee5\u95ee\u9898\u53ef\u80fd\u51fa\u5728\u540e\u8fb9\u7684\u8c03\u7528\u4e2d\u3002\u6211\u53ef\u4ee5\u901a\u8fc7\u6267\u884cc\uff08continue\u7684\u7b80\u5199\uff09\u4e00\u6b65\u6b65\u5230\u8fbe\u51fa\u95ee\u9898\u7684\u5730\u65b9\u3002\u5982\u679c\u5b83\u88ab\u8c03\u7528\u51e0\u6b21\u7684\u8bdd\u8fd9\u6837\u505a\u662f\u53ef\u884c\u7684\uff0c\u5982\u679c\u5b83\u88ab\u8c03\u7528\u51e0\u5343\u6b21\u7684\u8bdd\u6211\u5f97\u7528\u522b\u7684\u529e\u6cd5\u3002\uff08\u6211\u4f1a\u572815\u8282\u7684\u91cc\u4ecb\u7ecd\u3002\uff09<\/p>\n<p><strong>10.\u56de\u9000<\/strong><\/p>\n<p>gdb\u6709\u4e00\u4e2a\u8d85\u68d2\u7684\u529f\u80fd\u53eb\u56de\u9000\uff0cGregLaw\u5728\u4ed6\u7684\u6f14\u8bb2\u4e2d\u63d0\u5230\u8fc7\u3002\u8fd9\u91cc\u6709\u4e00\u4e2a\u4f8b\u5b50\u3002<\/p>\n<p>\u6211\u518d\u542f\u52a8\u4e00\u4e2apython\u4f1a\u8bdd\uff0c\u4ece\u5934\u6f14\u793a\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgL3xiabcT3MCRwO6xZeOhia4ujjUP7ECC3ziboBQESnvI4QoxbgDtuKGxA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u548c\u4e4b\u524d\u4e00\u6837\u6211\u5728doupdate\u4e0b\u65ad\u70b9\uff0c\u4e00\u65e6\u89e6\u53d1\uff0c\u6211\u5c31\u542f\u52a8recording\uff0c\u7136\u540e\u7ee7\u7eed\u8fd0\u884c\u7a0b\u5e8f\u76f4\u5230\u5d29\u6e83\u3002Recording\u4f1a\u589e\u52a0\u76f8\u5f53\u5927\u7684\u5f00\u9500\uff0c\u6240\u4ee5\u6211\u4e0d\u60f3\u5728\u4e3b\u51fd\u6570\u91cc\u5c31\u5c06\u5b83\u6253\u5f00\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgyrPqyXpthXCqfFPInsRE0Jt4vYY3lOiatjgpFXmcxrA04QxnaibicTeYA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u8fd9\u91cc\u6211\u53ef\u4ee5\u9010\u884c\u6216\u9010\u6761\u6307\u4ee4\u7684\u56de\u9000\u3002\u5b83\u901a\u8fc7\u64ad\u653e\u6211\u4eec\u8bb0\u5f55\u7684\u5bc4\u5b58\u5668\u72b6\u6001\u6765\u5de5\u4f5c\u3002\u6211\u56de\u9000\u4e24\u6761\u6307\u4ee4\uff0c\u7136\u540e\u6253\u5370\u5bc4\u5b58\u5668\u503c\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg2nGnq5KicibtTn1VVnibUiatvcuCnvMp4VZWzn2yEzcmeD9NnjIYiaIpQ1g\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6240\u4ee5\uff0c\u53c8\u627e\u5230\u4e86\u201ccur_term\u201d\u7684\u7ebf\u7d22\u3002\u6211\u5f88\u60f3\u770b\u8fd9\u91cc\u7684\u6e90\u4ee3\u7801\uff0c\u4f46\u6211\u5c06\u4ece\u8c03\u8bd5\u4fe1\u606f\u5165\u624b\u3002<\/p>\n<p><strong>11.\u8c03\u8bd5\u4fe1\u606f<\/strong><\/p>\n<p>\u8fd9\u662flibncursesw\uff0c\u6211\u6ca1\u6709\u5b89\u88c5\u8c03\u8bd5\u4fe1\u606f\uff08Ubuntu\uff09\uff1a<\/p>\n<p><strong><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgYF0icCR4egpJRniayFAGvUTibEXebnwbTkX1coc8kLWMmgTeN8TmiaopBQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><br \/>\n<\/strong><\/p>\n<p>\u6211\u628a\u5b83\u88c5\u4e0a\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgZPMdEoH6shFj8E2axoiciaYLjuicAsopqDWRnRTkkWQpsHXqqicbYkqoicg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u592a\u597d\u4e86\uff0c\u7248\u672c\u5339\u914d\u3002\u90a3\u4e48\u73b0\u5728\u6211\u4eec\u7684\u6bb5\u9519\u8bef\u662f\u4ec0\u4e48\u6837\u5b50\u5462\uff1f<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgqziaS9V3R5R4kvBKiaDDU6pwOmMvM2icChQ06ncX61ic28wVGjS0iab6Giag\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6808\u56de\u6eaf\u770b\u8d77\u6765\u4e0d\u592a\u4e00\u6837\uff1a\u6211\u4eec\u786e\u5b9e\u4e0d\u5728doupdate()\u91cc\u8fb9\uff0c\u800c\u662f\u5728ClrBlank()\u4e2d\uff0c\u5b83\u5185\u8054\u5728ClrUpdate()\u91cc\uff0cClrUpdate()\u53c8\u5185\u8054\u5728doupdate()\u4e2d\u3002<\/p>\n<p>\u73b0\u5728\u6211\u771f\u7684\u8981\u770b\u6e90\u7801\u4e86\u3002<\/p>\n<p><strong>12.\u6e90\u4ee3\u7801<\/strong><\/p>\n<p>\u5b89\u88c5\u4e86\u8c03\u8bd5\u4fe1\u606f\u4e4b\u540e\uff0cgdb\u53ef\u4ee5\u540c\u65f6\u5217\u51fa\u6e90\u7801\u548c\u6c47\u7f16\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgKT1ia8xGAJRm0WenZ1ztprlergaS01DplHuayHjoqAqP0FjTU5Dwy6Q\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u597d\u6781\u4e86\uff01\u770b\u201c=&gt;\u201d\u548c\u5b83\u4e0a\u8fb9\u7684\u4ee3\u7801\u3002\u6240\u4ee5\u6211\u4eec\u7684\u6bb5\u9519\u8bef\u53d1\u751f\u5728\u201cif(back_color_erase)\u201d\uff1f\u770b\u8d77\u6765\u4e0d\u53ef\u80fd\u3002<\/p>\n<p>\u8fd9\u91cc\u6211\u68c0\u67e5\u4e86\u4e00\u4e0b\uff0c\u6211\u7684\u8c03\u8bd5\u4fe1\u606f\u7248\u672c\u662f\u5bf9\u7684\uff0c\u91cd\u65b0\u5728gdb\u91cc\u8fb9\u8fd0\u884c\u7a0b\u5e8f\u76f4\u5230\u53d1\u751f\u6bb5\u9519\u8bef\u3002\u9519\u8bef\u76f8\u540c\u3002<\/p>\n<p>back_color_erase\u6709\u4ec0\u4e48\u7279\u6b8a\u5417\uff1f\u6211\u4eec\u73b0\u5728\u5728ClrBlank()\u4e2d\uff0c\u6211\u5148\u5217\u51fa\u6e90\u7801\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg1uY5dTzhMgfRYsFEHf4pcEmic9KuT2DicQtHCtZXiaEB4WoYYDwrpViavw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u554a\uff0c\u5728\u8fd9\u4e2a\u51fd\u6570\u91cc\u8fb9\u6ca1\u5b9a\u4e49\uff0c\u96be\u9053\u662f\u5168\u5c40\u53d8\u91cf\uff1f<\/p>\n<p><strong>13.TUI<\/strong><\/p>\n<p>\u6709\u5fc5\u8981\u770b\u770b\u8fd9\u4e9b\u4ee3\u7801\u5728gdb\u7684\u6587\u672c\u7528\u6237\u754c\u9762\uff08TUI\uff09\u91cc\u662f\u4ec0\u4e48\u6837\u7684\uff0c\u6211\u7528\u7684\u4e0d\u591a\uff0c\u662f\u770b\u4e86Greg\u7684\u6f14\u8bb2\u4e4b\u540e\u53d7\u5230\u7684\u542f\u53d1\u3002<\/p>\n<p>\u4f60\u53ef\u4ee5\u7528\u2013tui\u6765\u542f\u52a8\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgAlhzYIQNL3wIHhOcPr7LlOnhzvV1JQ5hMaON9qDRvzAkzENX5dHezw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u5b83\u5728\u62b1\u6028\u6ca1\u6709Python\u6e90\u7801\u3002\u6211\u53ef\u4ee5\u641e\u5b9a\uff0c\u4f46\u662f\u6211\u4eec\u662f\u5728libncursesw\u91cc\u8fb9\u5d29\u6e83\u7684\u3002\u6240\u4ee5\u4e0d\u7ba1\u5b83\u6572\u56de\u8f66\u8ba9\u5b83\u5b8c\u6210\u52a0\u8f7d\uff0c\u5728\u53d1\u751f\u9519\u8bef\u7684\u5730\u65b9\u52a0\u8f7d\u4e86libncursesw\u8c03\u8bd5\u4fe1\u606f\u91cc\u7684\u6e90\u7801\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgVqQIn6gECv6DhjCUFA6H0ZLTn299wsUwUWicUIPLiaGS492VUcNh4bjQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u68d2\u6781\u4e86\uff01<\/p>\n<p>\u201c&gt;\u201d\u6307\u5411\u53d1\u751f\u5d29\u6e83\u7684\u90a3\u884c\u4ee3\u7801\u3002\u66f4\u68d2\u7684\u662f\uff1a\u7528layoutsplit\u547d\u4ee4\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u7a97\u53e3\u67e5\u770b\u6e90\u4ee3\u7801\u548c\u6c47\u7f16\u4ee3\u7801\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgcTlfc98bVRoz1iaibP7hcUk04b6J6kUNBbgiaR5I7FfyphQRGyqwsZ3aQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>Greg\u6f14\u793a\u8fd9\u4e2a\u7684\u65f6\u5019\uff0c\u548c\u8fd9\u91cc\u7684\u987a\u5e8f\u76f8\u53cd\uff0c\u56e0\u6b64\u4f60\u53ef\u60f3\u50cf\u540c\u65f6\u67e5\u770b\u6e90\u4ee3\u7801\u548c\u6c47\u7f16\u7684\u60c5\u666f\uff08\u8fd9\u91cc\u6211\u9700\u8981\u4e00\u4e2a\u89c6\u9891\u6765\u6f14\u793a\uff09\u3002<\/p>\n<p><strong>14.\u5916\u90e8\u5de5\u5177\uff1acscope<\/strong><\/p>\n<p>\u6211\u9700\u8981\u5bf9back_color_erase\u6709\u66f4\u591a\u4e86\u89e3\uff0c\u6211\u53ef\u4ee5\u8bd5\u8bd5gdb\u7684\u641c\u7d22\u547d\u4ee4\uff0c\u4f46\u662f\u6211\u53d1\u73b0\u7528\u4e00\u4e2a\u5916\u90e8\u5de5\u5177\uff1acscope\u66f4\u5feb\u3002cscope\u662f\u4e00\u4e2a\u57fa\u4e8e\u6587\u672c\u7684\u4ee3\u7801\u6d4f\u89c8\u5668\uff0c\u8bde\u751f\u4e8e80\u5e74\u4ee3\u7684\u8d1d\u5c14\u5b9e\u9a8c\u5ba4\u3002\u5982\u679c\u4f60\u6709\u559c\u6b22\u7684\u73b0\u4ee3IDE\uff0c\u53ef\u4ee5\u4e0d\u7528\u5b83\u3002<\/p>\n<p>\u5b89\u88c5cscope\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgcGb10Lmuf7L7ZLB0bSdOSEQgq8ibz7cNLA9YnoTK1QtAkqiaOyYQEUJA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>cscope-bqR\u3000\u7528\u6765\u5efa\u7acb\u67e5\u627e\u6570\u636e\u5e93\u3002cscope-dq\u7528\u6765\u542f\u52a8cscope\u3002<\/p>\n<p>\u67e5\u627eback_color_erase\u7684\u5b9a\u4e49\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgufYhQQDDda94sGp1CubMHW3umqlj9icXbpibm9etuwZib6PjVlpSo0IIg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6572\u56de\u8f66\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg2n8MWhWq6cE5NKlxVmhJwkGEhUYBuNUWic2zDsObgBdhbpUMLu0IHmQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u54e6\uff0c\u4e00\u4e2a\u5b8f\u5b9a\u4e49\u3002\uff08\u4f5c\u4e3a\u5b8f\u5b9a\u4e49\u7684\u5e38\u89c1\u7684\u5f62\u5f0f\uff0c\u5b83\u4eec\u81f3\u5c11\u5e94\u8be5\u5927\u5199\uff09<\/p>\n<p>\u597d\u5427\uff0c\u90a3\u4e48CUR\u662f\u4ec0\u4e48\u5462\uff1f\u7528cscope\u67e5\u627e\u5b9a\u4e49\u6613\u5982\u53cd\u638c\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgP0d5vyBG24PM9tnxr1KU6S2gJAxktvU9OUdfRWGgYzPfKoknBOuomg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u8d77\u7801\u8fd9\u4e2a\u5b8f\u5b9a\u4e49\u662f\u5927\u5199\u7684\uff01<\/p>\n<p>\u6211\u4eec\u901a\u8fc7\u9010\u6761\u67e5\u770b\u6307\u4ee4\u548c\u5bc4\u5b58\u5668\u627e\u66f4\u65e9\u5b9a\u4e49\u7684cur_term\u3002\u5b83\u662f\u4ec0\u4e48\u5462\uff1f<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgsW05x2n7EIqB3aEEOwdZO7D5jyFJEJBzqZmGCItPysa1QRChNFvOiaQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>cscope\u8bfb\u53d6\u4e86\/usr\/include\/term.h\u3002\u597d\u5427\uff0c\u66f4\u591a\u7684\u5b8f\u3002\u6211\u7528\u52a0\u7c97\u6765\u7a81\u51fa\u8fd9\u884c\u4ee3\u7801\uff0c\u6211\u8ba4\u4e3a\u5b83\u4ea7\u751f\u4e86\u5f71\u54cd\u3002\u4e3a\u4ec0\u4e48\u8fd9\u91cc\u4f1a\u6709\u201cif0&amp;&amp;!0\u2026elif0\u201d\uff1f\u6211\u4e0d\u6e05\u695a\uff08\u9700\u8981\u518d\u8bfb\u4e9b\u4ee3\u7801\uff09\u3002\u6709\u65f6\u7a0b\u5e8f\u5458\u4f1a\u5728\u4ed6\u4eec\u60f3\u8981\u5728\u4ea7\u54c1\u4e2d\u5931\u6548\u7684\u8c03\u8bd5\u4ee3\u7801\u9644\u8fd1\u4f7f\u7528\u201c#if0\u201d\uff0c\u53ef\u662f\uff0c\u8fd9\u4e2a\u597d\u50cf\u662f\u81ea\u52a8\u751f\u6210\u7684\u3002<\/p>\n<p>\u67e5\u627eNCURSES_EXPORT_VAR\u53d1\u73b0\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgcMGSy32G2c8HPhWfM4k2y67nEjB0O5UuQq5wg3lricYeS6t3IicWImcg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u2026\u548cNCURSES_IMPEXP\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg7U0oM0oZIoQhia1d87DxqB1gtTU2W3X9tF7V0GnNdf0MYnKN7pKRNTw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u2026\u8fd8\u6709TERMINAL\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgyUElibz77XDib6dVdxrkiaxIIiaesQ1KzicaMMDqU4SXdlNCaCPvONlll4Q\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u55e8\uff01TERMINAL\u662f\u5927\u5199\u7684\u3002\u548c\u5b8f\u6df7\u5728\u4e00\u8d77\uff0c\u8fd9\u4e2a\u4ee3\u7801\u4e0d\u592a\u597d\u8ddf\u8e2a\u2026<\/p>\n<p>\u597d\u5427\uff0c\u5230\u5e95\u662f\u8c01\u7ed9cur_term\u8d4b\u7684\u503c\u5462\uff1f\u8bb0\u4f4f\u6211\u4eec\u7684\u95ee\u9898\u662f\u5b83\u88ab\u8d4b\u503c\u4e3a\u96f6\uff0c\u4e5f\u8bb8\u56e0\u4e3a\u5b83\u672a\u88ab\u521d\u59cb\u5316\u6216\u663e\u5f0f\u8d4b\u503c\u3002\u6d4f\u89c8\u7ed9\u5b83\u8d4b\u503c\u7684\u4ee3\u7801\u8def\u5f84\u53ef\u80fd\u4f1a\u627e\u5230\u66f4\u591a\u7684\u7ebf\u7d22\uff0c\u6765\u56de\u7b54\u4e3a\u4ec0\u4e48\u6ca1\u88ab\u521d\u59cb\u5316\uff0c\u6216\u4e3a\u4ec0\u4e48\u88ab\u8d4b\u503c\u4e3a\u96f6\u3002\u4f7f\u7528cscope\u7684\u7b2c\u4e00\u4e2a\u9009\u9879\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgWyIqrtsKWicuc0C8WDzHicO0Xia3haeLPVFicaquI4z6ZOvK3WNPmzNeCg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u5feb\u901f\u6d4f\u89c8\u9879\u53d1\u73b0\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgjCU9RwdcYicjEKPgr0lauM1QyZ68bZK9up25P9oMz0oh6efic9VsbNNA\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6211\u52a0\u4e86\u9ad8\u4eae\u3002\u751a\u81f3\u51fd\u6570\u540d\u79f0\u90fd\u88ab\u5c01\u88c5\u5728\u5b8f\u91cc\u3002\u4f46\u81f3\u5c11\u6211\u4eec\u53d1\u73b0\u4e86cur_term\u5982\u4f55\u88ab\u8d4b\u503c\u7684\uff1a\u901a\u8fc7set_curterm()\u3002\u4e5f\u8bb8\u5b83\u6ca1\u88ab\u8c03\u7528\uff1f<\/p>\n<p><strong>15.\u5916\u90e8\u5de5\u5177\uff1aperf-tools\/ftrace\/uprobes<\/strong><\/p>\n<p>\u6211\u7a0d\u540e\u5c06\u4ecb\u7ecd\u5982\u4f55\u7528gdb\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u53ef\u662f\u6211\u5fcd\u4e0d\u4f4f\u5c1d\u8bd5\u6211perf-tools\u5de5\u5177\u7bb1\u91cc\u7684uprobe\u5de5\u5177\uff0c\u5b83\u4f7f\u7528Linux\u4e0b\u7684ftrace\u548cuprobes\u3002\u7528tracers\u7684\u4e00\u4e2a\u597d\u5904\u662f\u5b83\u4e0d\u4f1a\u7ec8\u6b62\u76ee\u6807\u8fdb\u7a0b\uff0c\u50cfgdb\u4e00\u6837\uff08\u5c3d\u7ba1\u5bf9\u4e8e\u8fd9\u91cc\u7684cachetop.py\u6ca1\u4ec0\u4e48\u7528\uff09\u3002\u53e6\u4e00\u4e2a\u597d\u5904\u662f\u8ffd\u8e2a\u51e0\u4e2a\u548c\u51e0\u5343\u4e2a\u8fdb\u7a0b\u4e00\u6837\u5bb9\u6613\u3002<\/p>\n<p>\u6211\u5e94\u8be5\u80fd\u8ffd\u8e2alibncursesw\u5bf9set_curterm()\u7684\u8c03\u7528\uff0c\u751a\u81f3\u6253\u5370\u51fa\u5b83\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgAtBvc4H34KYdjXsur1BaFIV0hH4obsvuCyVPb0SCUTwC48lvzTAmyg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u54a6\uff0c\u6ca1\u8d77\u4f5c\u7528\u3002set_curterm()\u5728\u54ea\uff1f\u6709\u5f88\u591a\u65b9\u6cd5\u53ef\u4ee5\u627e\u5230\u5b83\uff0c\u6bd4\u5982gdb\u6216objdump\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg4OicZ1xCEBDOheTEiaQJgH2mfUDReYNibm7lthUa80xRGRKuGXZQRgWhg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>gdb\u8868\u73b0\u7684\u597d\u4e9b\u3002\u6b64\u5916\u5982\u679c\u4ed4\u7ec6\u770b\u6e90\u4ee3\u7801\uff0c\u6211\u6ce8\u610f\u5230\u5b83\u662f\u4e3alibtinfo\u6784\u5efa\u7684\u3002<\/p>\n<p>\u8bd5\u7740\u5728libtinfo\u91cc\u8fb9\u67e5\u627eset_curterm()\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgfaVuyOeRRKzHm1ESkj7Zuy5Qsic4FA6bvkPMk6kaxzyia6rtkyEfqdrg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u627e\u5230\u4e86\u3002\u6240\u4ee5set_curterm()\u88ab\u8c03\u7528\u4e86\uff0c\u5e76\u4e14\u88ab\u8c03\u7528\u4e86\u56db\u6b21\u3002\u6700\u540e\u4e00\u6b21\u88ab\u4f20\u4e86\u4e00\u4e2a\u96f6\uff0c\u770b\u8d77\u6765\u8fd9\u5c31\u662f\u95ee\u9898\u6240\u5728\u3002<\/p>\n<p>\u5982\u679c\u4f60\u89c9\u5f97\u7591\u60d1\uff0c\u6211\u600e\u4e48\u5c31\u77e5\u9053%di\u5bc4\u5b58\u5668\u5c31\u662f\u7b2c\u4e00\u4e2a\u53c2\u6570\u5462\uff0c\u56e0\u4e3aAMD64\/x86_64ABI\u5199\u7740\u5462\uff08\u5047\u8bbe\u8fd9\u4e2a\u5e93\u548cABI\u517c\u5bb9\uff09\u3002\u8fd9\u91cc\u6709\u63d0\u793a\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgr90V0tn7BGiaKiab1DaYOP9eCPAibZ8C3Lvy4ibAjtJianic0AyaKELFYjng\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6211\u8fd8\u60f3\u77e5\u9053\u8c03\u7528arg1=0x0\u7684\u5806\u6808\u4fe1\u606f\uff0c\u4f46\u662fftrace\u8fd8\u4e0d\u652f\u6301\u6808\u8ffd\u8e2a\u3002<\/p>\n<p><strong>16.\u5916\u90e8\u5de5\u5177\uff1abcc\/BPF<\/strong><\/p>\n<p>\u7531\u4e8e\u6211\u4eec\u5728\u8c03\u8bd5bcc\u5de5\u5177cachetop.py\uff0c\u503c\u5f97\u6ce8\u610f\u7684\u662fbcc\u91cc\u7684trace.py\u6709\u548c\u6211\u7684\u8001\u5de5\u5177uprobe\u7c7b\u4f3c\u7684\u529f\u80fd\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgnILnAtujj2QeC3efPFlDS4bTIiayMRbDdQ6ePLXnOSUia7MZicRPXmHLg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u662f\u7684\uff0c\u6211\u4eec\u5728\u7528bcc\u8c03\u8bd5bcc\uff01<\/p>\n<p>\u5982\u679c\u4f60\u5bf9bcc\u4e0d\u719f\u6089\uff0c\u5b83\u503c\u5f97\u4e00\u770b\u3002\u5b83\u4e3aLinux4.x\u7cfb\u5217\u91cc\u7684BPF\u65b0\u7279\u6027\u63d0\u4f9b\u4e86Python\u548clua\u63a5\u53e3\u3002\u603b\u4e4b\uff0c\u5b83\u80fd\u8ba9\u5f88\u591a\u4ee5\u524d\u4e0d\u53ef\u80fd\u6216\u6602\u8d35\u4ee5\u81f4\u65e0\u6cd5\u8fd0\u884c\u7684\u6027\u80fd\u5de5\u5177\u8fd0\u884c\u8d77\u6765\u3002\u6211\u4ee5\u524d\u53d1\u8fc7\u8d34\u4ecb\u7ecd\u5982\u4f55\u5728UbuntuXenial\u4e0a\u8fd0\u884c\u5b83\u3002<\/p>\n<p>bcc\u7684trace.py\u5de5\u5177\u5e94\u8be5\u6709\u4e00\u4e2a\u5f00\u5173\u6765\u51b3\u5b9a\u662f\u5426\u6253\u5370\u7528\u6237\u5806\u6808\uff0c\u56e0\u4e3a\u5185\u6838\u4eceLinux4.6\u5f00\u59cb\u5177\u5907BPF\u5806\u6808\u529f\u80fd\uff0c\u4e0d\u8fc7\u5230\u5199\u8fd9\u7bc7\u6587\u7ae0\u7684\u65f6\u5019\u6211\u4eec\u8fd8\u6ca1\u6709\u52a0\u4e0a\u8fd9\u4e2a\u5f00\u5173\u3002<\/p>\n<p><strong>17.\u66f4\u591a\u7684\u65ad\u70b9<\/strong><\/p>\n<p>\u6211\u771f\u7684\u5e94\u8be5\u4ece\u5728set_curterm()\u4e0b\u4e86\u65ad\u70b9\u7684gdb\u5165\u624b\uff0c\u53ef\u662f\u6211\u89c9\u5f97\u6211\u4eec\u8d70\u7684\u5f2f\u8def\uff0c\u4f7f\u7528ftrace\u548cBPF\u7684\u8fd8\u662f\u86ee\u6709\u8da3\u7684\u3002<\/p>\n<p>\u56de\u5230\u5b9e\u65f6\u8fd0\u884c\u6a21\u5f0f\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWggcCkQ8oCuoL8IHqaxvldEu8Vr5dcPrichfOTBpMq88oBC7vEzX21iamQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u597d\u7684\uff0c\u5728\u8fd9\u4e2a\u65ad\u70b9\u6211\u4eec\u53ef\u4ee5\u770b\u5230set_curterm()\u88ab\u8c03\u7528\u4e86\uff0c\u88ab\u4f20\u4e86\u4e00\u4e2atermp=0x0\u7684\u53c2\u6570\uff0c\u591a\u4e8f\u4e86debuginfo\u63d0\u4f9b\u7684\u4fe1\u606f\u3002\u5982\u679c\u6ca1\u6709debuginfo\uff0c\u6211\u53ea\u80fd\u5728\u6bcf\u4e2a\u65ad\u70b9\u5904\u6253\u5370\u5bc4\u5b58\u5668\u503c\u3002<\/p>\n<p>\u6211\u6253\u5370\u6808\u5e27\u51fa\u6765\uff0c\u8fd9\u6837\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u662f\u8c01\u5c06curterm\u8bbe\u4e3a\u96f6\u7684\u3002<\/p>\n<p>(gdb)bt<\/p>\n<p>#0\u00a0set_curterm(termp=0x0)at\/build\/ncurses-pKZ1BN\/ncurses-6.0+20160213\/ncurses\/tinfo\/lib_cur_term.c:80<\/p>\n<p>#1\u00a00x00007ffff5a44e75inllvm::sys::Process::FileDescriptorHasColors(int)()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#2\u00a00x00007ffff45cabb8inclang::driver::tools::Clang::ConstructJob(clang::driver::Compilation&amp;,clang::driver::JobActionconst&amp;,clang::driver::InputInfoconst&amp;,llvm::SmallVector&lt;clang::driver::InputInfo,4u&gt;const&amp;,llvm::opt::ArgListconst&amp;,charconst*)const()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#3\u00a00x00007ffff456ffa5inclang::driver::Driver::BuildJobsForAction(clang::driver::Compilation&amp;,clang::driver::Actionconst*,clang::driver::ToolChainconst*,charconst*,bool,bool,charconst*,clang::driver::InputInfo&amp;)const()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#4\u00a00x00007ffff4570501inclang::driver::Driver::BuildJobs(clang::driver::Compilation&amp;)const()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#5\u00a00x00007ffff457224ainclang::driver::Driver::BuildCompilation(llvm::ArrayRef&lt;charconst*&gt;)()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#6\u00a00x00007ffff4396cdainebpf::ClangLoader::parse(std::unique_ptr&lt;llvm::Module,std::default_delete&lt;llvm::Module&gt;&gt;*,std::unique_ptr&lt;std::vector&lt;ebpf::TableDesc,std::allocator&lt;ebpf::TableDesc&gt;&gt;,std::default_delete&lt;std::vector&lt;ebpf::TableDesc,std::allocator&lt;ebpf::TableDesc&gt;&gt;&gt;&gt;*,std::__cxx11::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;const&amp;,bool,charconst**,int)()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#7\u00a00x00007ffff4344314inebpf::BPFModule::load_cfile(std::__cxx11::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;const&amp;,bool,charconst**,int)()<\/p>\n<p>from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#8\u00a00x00007ffff4349e5einebpf::BPFModule::load_string(std::__cxx11::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;const&amp;,charconst**,int)()<\/p>\n<p>from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#9\u00a00x00007ffff43430c8inbpf_module_create_c_from_string()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>#100x00007ffff690ae40inffi_call_unix64()from\/usr\/lib\/x86_64-linux-gnu\/libffi.so.6<\/p>\n<p>#110x00007ffff690a8abinffi_call()from\/usr\/lib\/x86_64-linux-gnu\/libffi.so.6<\/p>\n<p>#120x00007ffff6b1a68cin_ctypes_callproc()from\/usr\/lib\/python2.7\/lib-dynload\/_ctypes.x86_64-linux-gnu.so<\/p>\n<p>#130x00007ffff6b1ed82in??()from\/usr\/lib\/python2.7\/lib-dynload\/_ctypes.x86_64-linux-gnu.so<\/p>\n<p>#140x00000000004b1153inPyObject_Call()<\/p>\n<p>#150x00000000004ca5cainPyEval_EvalFrameEx()<\/p>\n<p>#160x00000000004c2e05inPyEval_EvalCodeEx()<\/p>\n<p>#170x00000000004def08in??()<\/p>\n<p>#180x00000000004b1153inPyObject_Call()<\/p>\n<p>#190x00000000004f4c3ein??()<\/p>\n<p>#200x00000000004b1153inPyObject_Call()<\/p>\n<p>#210x00000000004f49b7in??()<\/p>\n<p>#220x00000000004b6e2cin??()<\/p>\n<p>#230x00000000004b1153inPyObject_Call()<\/p>\n<p>#240x00000000004ca5cainPyEval_EvalFrameEx()<\/p>\n<p>#250x00000000004c2e05inPyEval_EvalCodeEx()<\/p>\n<p>#260x00000000004def08in??()<\/p>\n<p>#270x00000000004b1153inPyObject_Call()<\/p>\n<p>#280x00000000004c73ecinPyEval_EvalFrameEx()<\/p>\n<p>#290x00000000004c2e05inPyEval_EvalCodeEx()<\/p>\n<p>#300x00000000004caf42inPyEval_EvalFrameEx()<\/p>\n<p>#310x00000000004c2e05inPyEval_EvalCodeEx()<\/p>\n<p>#320x00000000004c2ba9inPyEval_EvalCode()<\/p>\n<p>#330x00000000004f20efin??()<\/p>\n<p>#340x00000000004eca72inPyRun_FileExFlags()<\/p>\n<p>#350x00000000004eb1f1inPyRun_SimpleFileExFlags()<\/p>\n<p>#360x000000000049e18ainPy_Main()<\/p>\n<p>#370x00007ffff7811830in__libc_start_main(main=0x49daf0&lt;main&gt;,argc=2,argv=0x7fffffffdfb8,init=&lt;optimizedout&gt;,fini=&lt;optimizedout&gt;,rtld_fini=&lt;optimizedout&gt;,<\/p>\n<p>stack_end=0x7fffffffdfa8)at..\/csu\/libc-start.c:291<\/p>\n<p>#380x000000000049da19in_start()<\/p>\n<p>\u597d\u4e86\uff0c\u6709\u4e86\u66f4\u591a\u7684\u7ebf\u7d22\u2026\u6211\u8ba4\u4e3a\u3002\u6211\u4eec\u5728llvm::sys::Process::FileDescriptorHasColors()\u91cc\u8fb9\u3002llvm\u7f16\u8bd1\u5668\u6709\u95ee\u9898\uff1f<\/p>\n<p><strong>18.\u5916\u90e8\u5de5\u5177\uff1acscope\uff0c\u518d\u6765\u4e00\u6b21<\/strong><\/p>\n<p>\u4ee3\u7801\u8f83\u591a\u7684\u65f6\u5019\u4f7f\u7528cscope\u67e5\u770b\uff0c\u8fd9\u6b21\u662fllvm\u3002FileDescriptorHasColors()\u51fd\u6570\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg5cJRaVFhiafymw4kOkIxYeH9hicP9XpnybZ8QnZ5SiaXibHIQlsKFicIZlg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u8fd9\u662f\u8f83\u65e9\u7248\u672c\u4e2d\u4f7f\u7528\u7684\u4ee3\u7801\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgxmibA1DHCbyo6EWCjj1waEwfCpgWSAUBhq4HmGGwmSFUlcAt70ACTRQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u7528\u7a7a\u6307\u9488\u8c03\u7528set_curterm()\u53d8\u6210\u4e86\u201c\u611a\u8822\u7684\u821e\u8e48\u201d\u3002<\/p>\n<p><strong>19.\u5199\u5185\u5b58<\/strong><\/p>\n<p>\u4f5c\u4e3a\u5b9e\u9a8c\uff0c\u6211\u8981\u4fee\u6539\u7a0b\u5e8f\u5185\u5b58\u6765\u907f\u514dset_curterm()\u88ab\u7f6e\u96f6\uff0c\u7528\u6765\u63a2\u7d22\u53ef\u80fd\u7684\u89e3\u51b3\u65b9\u6cd5\u3002<\/p>\n<p>\u8fd0\u884cgdb\uff0c\u5728set_curterm()\u4e0b\u65ad\u70b9\uff0c\u8dd1\u5230\u96f6\u8c03\u7528\u7684\u5730\u65b9\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWguA1DHagRQZ7uNL9iclOkjRjCLVgiaa1QvmtQU1jrznGTWNjNMktdq9yQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u8fd9\u91cc\u6211\u7528set\u547d\u4ee4\u6765\u6539\u5199\u5185\u5b58\uff0c\u628a\u96f6\u6362\u6210\u5728\u524d\u9762\u770b\u5230\u7684set_curterm()\u53c2\u65700xbecb90\uff0c\u5e0c\u671b\u5b83\u4ecd\u662f\u5408\u6cd5\u7684\u3002<\/p>\n<p>\u8b66\u544a\uff1a\u5199\u5185\u5b58\u4e0d\u5b89\u5168\uff01gdb\u4e0d\u4f1a\u95ee\u4f60\u201c\u4f60\u786e\u5b9a\uff1f\u201d\u3002\u5982\u679c\u4f60\u5199\u9519\u4e86\u6216\u8005\u6572\u9519\u4e86\uff0c\u4f1a\u641e\u574f\u7a0b\u5e8f\u3002\u6700\u597d\u7684\u60c5\u51b5\u662f\u4f60\u7684\u7a0b\u5e8f\u7acb\u5373\u5954\u6e83\uff0c\u4f60\u610f\u8bc6\u5230\u81ea\u5df1\u505a\u9519\u4e86\u3002\u6700\u7cdf\u7684\u60c5\u51b5\uff0c\u7a0b\u5e8f\u4f7f\u7528\u574f\u7684\u6570\u636e\u7ee7\u7eed\u8fd0\u884c\u51e0\u5e74\u4e4b\u540e\u88ab\u53d1\u73b0\u662f\u9519\u7684\u3002<\/p>\n<p>\u8fd9\u91cc\uff0c\u6211\u5728\u4e0d\u7528\u4e8e\u751f\u4ea7\u7684\u5b9e\u9a8c\u5ba4\u673a\u5668\u4e0a\u505a\u8bd5\u9a8c\uff0c\u6240\u4ee5\u6211\u7ee7\u7eed\u3002<\/p>\n<p>\u6211\u4ee516\u8fdb\u5236\uff08p\/x\uff09\u7684\u5f62\u5f0f\u6253\u5370%rdi\u7684\u503c\uff0c\u7136\u540e\u5c06\u5176\u8bbe\u4e3a\u4e4b\u524d\u7684\u5730\u5740\uff0c\u518d\u6253\u5370\u4e00\u6b21\uff0c\u6700\u540e\u6253\u5370\u6240\u6709\u5bc4\u5b58\u5668\u7684\u503c\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgcVNYfa0vibEZqLnXdoPxcPGfJCTjCeZVdLFhE3BqgOKjh4tTXCsROBQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\uff08\u56e0\u4e3a\u8fd9\u91cc\u6211\u5df2\u7ecf\u5b89\u88c5\u4e86\u8c03\u8bd5\u4fe1\u606f\uff0c\u56e0\u6b64\u4e0d\u5fc5\u4f7f\u7528\u5bc4\u5b58\u5668\uff0c\u6211\u53ef\u4ee5\u8bbe\u7f6e\u4f20\u7ed9set_curterm()\u7684\u53c2\u6570\u53c2\u6570\u201ctermp\u201d\uff0c\u800c\u4e0d\u662f$rdi\u3002\uff09<\/p>\n<p>\u73b0\u5728%rdi\u88ab\u7528\u5230\u4e86\uff0c\u6240\u4ee5\u90a3\u4e9b\u5bc4\u5b58\u5668\u770b\u8d77\u6765\u8fd8\u80fd\u7ee7\u7eed\u7528\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgib02yDJspibYYyDudcKLibXqLANXicSwowox5YoJjda6aa53ZPfCQyuU4g\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u597d\u7684\uff0c\u5728\u8c03\u7528set_curterm()\u65f6\u7a0b\u5e8f\u6ca1\u5d29\uff01\u4f46\u9047\u5230\u53e6\u4e00\u4e2a\u53c2\u6570\u4e5f\u662f\u96f6\u7684\u95ee\u9898\u3002\u6211\u4eec\u6545\u6280\u91cd\u65bd\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgicB9zEbyCwMqOPpmLY8Z4ICmaPwvUCWtczkh8DpJjvUtvbPTNfMM9Jg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u554a\u3002\u8fd9\u5c31\u662f\u6211\u5199\u5185\u5b58\u7684\u540e\u679c\u3002\u6240\u4ee5\u8fd9\u6b21\u8bd5\u9a8c\u4ee5\u53e6\u4e00\u4e2a\u6bb5\u9519\u8bef\u7ed3\u675f\u3002<\/p>\n<p><strong>20.\u6761\u4ef6\u65ad\u70b9<\/strong><\/p>\n<p>\u5728\u524d\u9762\u4e00\u8282\uff0c\u6211\u7528\u4e863\u4e2acontinues\u5230\u8fbe\u65ad\u70b9\u7684\u6b63\u786e\u8c03\u7528\u5904\u3002\u5982\u679c\u6709\u51e0\u767e\u6b21\u8c03\u7528\u7684\u8bdd\uff0c\u5c31\u5f97\u7528\u6761\u4ef6\u65ad\u70b9\u4e86\u3002\u8fd9\u91cc\u6709\u4e2a\u4f8b\u5b50\u3002<\/p>\n<p>\u548c\u4e4b\u524d\u4e00\u6837\u6211\u8fd0\u884c\u7a0b\u5e8f\uff0c\u5728set_curterm()\u4e0b\u65ad\u70b9\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWghuzlmGY6CkX9EXtcRNZZnL9Yice12ZdjJeamvtrQicmBoFMicvoboCYdw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u73b0\u5728\u6211\u8981\u5c061\u53f7\u65ad\u70b9\u53d8\u6210\u6761\u4ef6\u65ad\u70b9\uff0c\u8fd9\u6837\u5b83\u53ea\u4f1a\u5728%rdi\u7684\u503c\u4e3a\u96f6\u662f\u88ab\u89e6\u53d1\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgUZv3UFhibejjLGx1TXNcPOibLHibbvibTw4r4nCd45IDmkibQvEcSw49siag\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6f02\u4eae\uff01cond\u662fconditional\u7684\u7b80\u5199\u3002\u4e3a\u4ec0\u4e48\u5f53\u6211\u7b2c\u4e00\u6b21\u521b\u5efa\u201cpending\u201d\u65ad\u70b9\u7684\u65f6\u5019\u6ca1\u6709\u7acb\u5373\u8fd0\u884c\u5b83\u5462\uff1f\u56e0\u4e3a\u6211\u53d1\u73b0\u5728pending\u65ad\u70b9\u4e0a\u6761\u4ef6\u4e0d\u7ba1\u7528\uff0c\u81f3\u5c11\u5728\u8fd9\u4e2a\u7248\u672c\u7684gdb\u4e0a\u662f\u8fd9\u6837\u3002\uff08\u8981\u4e48\u662f\u6211\u54ea\u91cc\u505a\u9519\u4e86\u3002\uff09\u6211\u4e5f\u7528ib\uff08infobreakpoints\uff09\u5217\u51fa\u4e86\u65ad\u70b9\u4fe1\u606f\u3002<\/p>\n<p><strong>21.\u8fd4\u56de\u547d\u4ee4<\/strong><\/p>\n<p>\u6211\u66fe\u7ecf\u8bd5\u8fc7\u53e6\u4e00\u4e2a\u6539\u503c\u7684\u65b9\u6cd5\uff0c\u4f46\u662f\u8fd9\u6b21\u6211\u8981\u6539\u6307\u4ee4\u800c\u4e0d\u662f\u6570\u636e\u3002<\/p>\n<p>\u8b66\u544a\uff1a\u770b\u524d\u8fb9\u7684\u8b66\u544a\uff0c\u8fd9\u91cc\u4e5f\u9002\u7528\u3002<\/p>\n<p>\u548c\u4e4b\u524d\u4e00\u6837\u6211\u4eec\u6765\u5230set_curterm\u96f6\u65ad\u70b9\u5904\uff0c\u7136\u540e\u6572\u5165ret\uff08return\u7684\u7b80\u5199\uff09\uff0c\u5c31\u4f1a\u7acb\u5373\u4ece\u6b64\u51fd\u6570\u8fd4\u56de\u5e76\u4e14\u4e0d\u6267\u884c\u8fd9\u4e2a\u51fd\u6570\u3002\u6211\u60f3\u7528\u4e0d\u6267\u884c\u51fd\u6570\u7684\u65b9\u5f0f\u8ba9\u5168\u5c40\u53d8\u91cfcurterm\u4e0d\u88ab\u7f6e\u96f6\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgKSibTlquXI3luRlKxnNTicftAXrtwJoLC9ETnxFGVVNblm4wgDtrZJGQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u53c8\u5d29\u4e86\u3002\u8fd9\u662f\u6211\u641e\u7838\u7684\u73b0\u573a\u3002<\/p>\n<p>\u518d\u8bd5\u4e00\u6b21\u3002\u5728\u591a\u770b\u4e86\u4e00\u70b9\u4ee3\u7801\u4e4b\u540e\uff0c\u6211\u60f3\u7b2c\u4e8c\u6b21\u5c1d\u8bd5ret\uff0c\u4ee5\u9632\u7236\u51fd\u6570\u88ab\u5377\u8fdb\u6765\u3002\u518d\u6765\u4e00\u6b21\uff0c\u8fd9\u53ea\u662f\u4e00\u6b21\u975e\u5e38\u89c4\u8bd5\u9a8c\uff1a<\/p>\n<p>[&#8230;]<\/p>\n<p>(gdb)c<\/p>\n<p>Continuing.<\/p>\n<p>&nbsp;<\/p>\n<p>Breakpoint1,set_curterm(termp=0x0)at\/build\/ncurses-pKZ1BN\/ncurses-6.0+20160213\/ncurses\/tinfo\/lib_cur_term.c:80<\/p>\n<p>80\u00a0\u00a0{<\/p>\n<p>(gdb)ret<\/p>\n<p>Makeset_curtermreturnnow?(yorn)y<\/p>\n<p>#0\u00a00x00007ffff5a44e75inllvm::sys::Process::FileDescriptorHasColors(int)()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>(gdb)ret<\/p>\n<p>Makeselectedstackframereturnnow?(yorn)y<\/p>\n<p>#0\u00a00x00007ffff45cabb8inclang::driver::tools::Clang::ConstructJob(clang::driver::Compilation&amp;,clang::driver::JobActionconst&amp;,clang::driver::InputInfoconst&amp;,llvm::SmallVectorconst&amp;,llvm::opt::ArgListconst&amp;,charconst*)const()from\/usr\/lib\/x86_64-linux-gnu\/libbcc.so.0<\/p>\n<p>&nbsp;<\/p>\n<p>(gdb)c<\/p>\n<p>\u5c4f\u5e55\u6e05\u7a7a\u6682\u505c\u2026\u7136\u540e\u5237\u65b0\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgyyb0rTibd5tPOzZBjZYXKXH2oombnJtrL9MguVCat1Q5UibLXgtBia8kw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u54c7\uff01\u6210\u529f\u4e86\uff01<\/p>\n<p><strong>22.\u66f4\u597d\u7684\u65b9\u6848<\/strong><\/p>\n<p>\u6211\u5df2\u7ecf\u628a\u8c03\u8bd5\u8f93\u51fa\u53d1\u5e03\u5230github\uff0c\u56e0\u4e3aBPF\u9996\u5e2d\u5de5\u7a0b\u5e08\uff0cAlexeiStarovoitov\u5bf9llvm\u4e5f\u5f88\u7cbe\u901a\uff0c\u95ee\u9898\u7684\u6839\u6e90\u597d\u50cf\u662fllvm\u7684\u4e00\u4e2abug\u3002\u5f53\u6211\u5728\u7528\u5199\u5185\u5b58\u548c\u8fd4\u56de\u547d\u4ee4\u778e\u641e\u7684\u65f6\u5019\uff0c\u4ed6\u5efa\u8bae\u6211\u5728bcc\u52a0\u4e0allvm\u9009\u9879-fno-color-diagnostics\uff0c\u6765\u907f\u514d\u8fd9\u4e2a\u95ee\u9898\u3002\u6210\u529f\u4e86\uff01\u628a\u5b83\u52a0\u5230bcc\u91cc\u662f\u4e00\u4e2a\u89e3\u51b3\u529e\u6cd5\u3002\uff08\u6211\u8fd8\u662f\u5e0c\u671bllvm\u7684bug\u80fd\u88ab\u4fee\u590d\uff09<\/p>\n<p><strong>23.Python\u73af\u5883<\/strong><\/p>\n<p>\u81f3\u6b64\u95ee\u9898\u5df2\u7ecf\u89e3\u51b3\u4e86\uff0c\u4f46\u662f\u4f60\u53ef\u80fd\u4f1a\u597d\u5947\u60f3\u770b\u4fee\u590d\u597d\u7684\u5806\u6808\u56de\u6eaf\u3002<\/p>\n<p>\u5b89\u88c5python-dbg\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg2CBicZwn5OGDHZ8bk5cYh7syfD8loib7kYaicfpWWlU5TUzHXW0OWCL3A\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u73b0\u5728\u6211\u56de\u5230gdb\u6765\u770b\u5806\u6808\u56de\u6eaf\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWg9aF968j0ZcWcoibz8ea96baA0LbOFSnaX5icEfiaMDL80ShcZT1xujIIw\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6ca1\u6709\u201c??\u201d\u4e86\uff0c\u4f46\u4e5f\u6ca1\u4ec0\u4e48\u5927\u7528\u3002<\/p>\n<p>python\u8c03\u8bd5\u5305\u7ed9gdb\u52a0\u5165\u4e86\u522b\u7684\u529f\u80fd\u3002\u73b0\u5728\u6211\u4eec\u53ef\u4ee5\u770bpython\u7684\u56de\u6eaf\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgnGQsn5QMvh4l3YJgN7nsH6FcCXPGqbpufQAoEESS4WZcdNWUjOyX5w\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u2026\u548cPython\u6e90\u7801\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgKJrQEnRZWJ58ia2rnXuK0TGVTibkg2afe6UMMiaecg9yoscT0bS1alvqg\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u5b83\u8bc6\u522b\u51fa\u4e86\u6211\u4eec\u4e4b\u524d\u6267\u884c\u7684python\u4ee3\u7801\u4e2d\u7684\u6bb5\u9519\u8bef\u3002\u771f\u662f\u592a\u68d2\u4e86\uff01<\/p>\n<p>\u539f\u5148\u5806\u6808\u56de\u6eaf\u7684\u95ee\u9898\u662f\u6211\u4eec\u770b\u5230\u4e86python\u5185\u90e8\u5728\u6267\u884c\u65b9\u6cd5\uff0c\u5374\u770b\u4e0d\u5230\u65b9\u6cd5\u672c\u8eab\u3002\u5982\u679c\u4f60\u8c03\u8bd5\u522b\u7684\u8bed\u8a00\uff0c\u8981\u53d6\u51b3\u4e8e\u5b83\u7684\u7f16\u8bd1\u9009\u9879\u548c\u8fd0\u884c\u73af\u5883,\u8fd8\u6709\u600e\u4e48\u7ed3\u675f\u6267\u884c\u4ee3\u7801\u3002\u5982\u679c\u4f60\u5728\u7f51\u4e0a\u641c\u7d22\u201c\u8bed\u8a00\u540d\u201d\u548c\u201cgdb\u201d\u4f60\u53ef\u80fd\u4f1a\u627e\u5230\u50cfPython\u4e00\u6837\u7684gdb\u6269\u5c55\u3002\u5982\u679c\u6ca1\u6709\u7684\u8bdd\uff0c\u574f\u6d88\u606f\u662f\u4f60\u9700\u8981\u81ea\u5df1\u5199\uff0c\u597d\u6d88\u606f\u662f\u8fd9\u6837\u505a\u662f\u53ef\u884c\u7684\uff01\u5f53\u5b83\u4eec\u53ef\u4ee5\u7528Python\u6765\u5199\u7684\u65f6\u5019\uff0c\u8bf7\u641c\u7d22\u201caddingnewGDBcommandsinPython\u201d\u7684\u8d44\u6599\u3002<\/p>\n<p><strong>24.\u66f4\u591a\u547d\u4ee4<\/strong><\/p>\n<p>\u770b\u8d77\u6765\u597d\u50cf\u6211\u5199\u4e86\u4e00\u4e2agdb\u7684\u5168\u9762\u4ecb\u7ecd\uff0c\u4f46\u6211\u771f\u7684\u6ca1\u6709\uff1agdb\u91cc\u8fd8\u6709\u5f88\u591a\u547d\u4ee4\u6211\u6ca1\u63d0\u5230\u3002help\u547d\u4ee4\u5217\u51fa\u4e86\u4e3b\u8981\u90e8\u5206\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgd9olhLZl8u1gYxibaKvJEVHmicLvibJyYvTQnTU9yDD8KtwEQ7a1Jy7mQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u4f60\u53ef\u4ee5\u5bf9\u6bcf\u4e00\u7c7b\u547d\u4ee4\u6267\u884chelp\u3002\u4f8b\u5982\uff0c\u8fd9\u662fbreakpoints\u7c7b\u7684\u5168\u90e8\u6e05\u5355\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgIf6H3ndHkeoYl2ZibSEKEAq2N5osS2icZWoyyiaFPicFnNL1RdnXGuS7icQ\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgSSYN0Bf7zGgLQTiaKOetWM3rGb6MXlqdYlkgHlRF6wTHj2FcjLtiak0Q\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u8fd9\u4e9b\u5e2e\u52a9\u8868\u660e\u4e86gdb\u6709\u5f88\u591a\u529f\u80fd\uff0c\u4e5f\u8bf4\u660e\u4e86\u6211\u5728\u793a\u4f8b\u4e2d\u7528\u5230\u7684\u53ea\u662f\u4e00\u5c0f\u90e8\u5206\u3002<\/p>\n<p><strong>25.\u7ed3\u8bed<\/strong><\/p>\n<p>\u597d\u5427\uff0c\u8fd9\u4e2a\u95ee\u9898\u6709\u70b9\u6076\u5fc3\uff1a\u4e00\u4e2aLLVMbug\u7834\u574f\u4e86ncurses\u5e76\u5f15\u8d77\u4e86Python\u7a0b\u5e8f\u7684\u6bb5\u9519\u8bef\u3002\u4f46\u662f\u6211\u7528\u6765\u8c03\u8bd5\u7684\u547d\u4ee4\u548c\u6b65\u9aa4\u5f88\u5e38\u89c1\uff1a\u770b\u5806\u6808\uff0c\u68c0\u67e5\u5bc4\u5b58\u5668\uff0c\u4e0b\u65ad\u70b9\uff0c\u9010\u6b65\u6392\u67e5\uff0c\u770b\u6e90\u7801\u3002<\/p>\n<p>\u5f53\u6211\u7b2c\u4e00\u6b21\u4f7f\u7528gdb\u7684\u65f6\u5019\uff08\u591a\u5e74\u524d\uff09\uff0c\u6211\u771f\u7684\u4e0d\u559c\u6b22\u5b83\u3002\u89c9\u5f97\u5b83\u4e0d\u7075\u6d3b\u800c\u4e14\u529f\u80fd\u6709\u9650\u3002\u4ece\u90a3\u4e4b\u540egdb\u8fdb\u6b65\u4e86\u5f88\u591a\uff0c\u6211\u4e5f\u638c\u63e1\u4e86gdb\u7684\u6280\u5de7\uff0c\u6211\u73b0\u5728\u8ba4\u4e3a\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u73b0\u4ee3\u8c03\u8bd5\u5668\u3002\u4e0d\u540c\u7684\u8c03\u8bd5\u5668\u7279\u6027\u53ef\u80fd\u4e0d\u540c\uff0c\u4f46\u662fgdb\u53ef\u80fd\u662f\u76ee\u524d\u57fa\u4e8e\u6587\u672c\u7684\u6700\u5f3a\u5927\u7684\u8c03\u8bd5\u5668\uff0clldb\u6b63\u594b\u8d77\u76f4\u8ffd\u3002<\/p>\n<p>\u6211\u5e0c\u671b\u6211\u5206\u4eab\u7684\u6709\u5b8c\u6574\u8f93\u51fa\u7684gdb\u793a\u4f8b\u548c\u6211\u63d0\u5230\u7684\u4e0d\u540c\u7684\u8b66\u544a\uff0c\u4f1a\u5bf9\u641c\u5230\u5b83\u7684\u4eba\u6709\u5e2e\u52a9\u3002\u6709\u673a\u4f1a\u7684\u8bdd\u6211\u4f1a\u53d1\u5e03\u66f4\u591a\u7684gdb\u793a\u4f8b\uff0c\u7279\u522b\u662f\u5176\u4ed6\u8fd0\u884c\u73af\u5883\u6bd4\u5982Java\u3002<\/p>\n<p>\u7528q\u9000\u51fagdb\u3002<\/p>\n<p><strong>\u8bd1\u8005\u7b80\u4ecb\u00a0\u00a0\uff08\u00a0<\/strong>\u70b9\u51fb\u2192\u52a0\u5165\u4e13\u680f\u4f5c\u8005<strong>\u00a0\uff09<\/strong><\/p>\n<p>\u66f9\u4f73\u4f1f\uff1aaprogrammer,Doone&#8217;slevelbestandleavetheresttoGod&#8217;swill.Ilovethissaying.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/wean67ekcc.r.worldssl.net\/article\/getImage.php?url=http:\/\/mmbiz.qpic.cn\/mmbiz_png\/pldYwMfYJpg5ib4YFqD2xibicM4ZrsfDZWgy3ibxIWtIiboTGtzv30j63p8J9Z8z40p8ia5YyzrV4Nnia8PzHicz99zd6w\/0?wx_fmt=png\" alt=\"gdb \u8c03\u8bd5\u5165\u95e8\uff0c\u5927\u725b\u5199\u7684\u9ad8\u8d28\u91cf\u6307\u5357\" \/><\/p>\n<p>\u6253\u8d4f\u652f\u6301\u8bd1\u8005\u7ffb\u51fa\u66f4\u591a\u597d\u6587\u7ae0\uff0c\u8c22\u8c22\uff01<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 &nbsp; \u6ca1\u60f3\u5230Brend<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[117],"class_list":["post-791","post","type-post","status-publish","format-standard","hentry","tag-01-linux"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=791"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/791\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}