From 0e9bd7e4a1cb807ec557e3f0c7ab07c6f4f769a1 Mon Sep 17 00:00:00 2001 From: lzwtty Date: Wed, 19 Jun 2024 15:13:00 +0800 Subject: [PATCH] deploy --- 404.html | 21 + PrideandPrejudice.png | Bin 0 -> 1256337 bytes assets/css/0.styles.ece217d8.css | 10 + assets/fonts/iconfont.938fa69e.woff | Bin 0 -> 11476 bytes assets/fonts/iconfont.ecabaf00.ttf | Bin 0 -> 17648 bytes assets/img/bg.2cfdbb33.svg | 39 ++ assets/js/1.e2979132.js | 8 + assets/js/10.e8bfcf7f.js | 1 + assets/js/11.5733ddba.js | 1 + assets/js/12.a2732e14.js | 1 + assets/js/13.d8a01b18.js | 1 + assets/js/14.21bcebc4.js | 1 + assets/js/15.cc9f2f8e.js | 1 + assets/js/16.d264cc33.js | 1 + assets/js/17.79a30f21.js | 1 + assets/js/18.3b2b186e.js | 1 + assets/js/19.876eee7d.js | 1 + assets/js/20.9e432406.js | 1 + assets/js/21.b160f907.js | 1 + assets/js/22.b98bdf43.js | 1 + assets/js/23.c61a42c5.js | 1 + assets/js/24.3e59a9da.js | 1 + assets/js/25.3423b9d6.js | 1 + assets/js/26.14b116b2.js | 1 + assets/js/27.946e74f9.js | 1 + assets/js/28.33fa0677.js | 1 + assets/js/29.6f72c1d3.js | 1 + assets/js/3.5a4097ad.js | 1 + assets/js/30.f92ae4d6.js | 1 + assets/js/31.3d8017d0.js | 1 + assets/js/32.59e154c6.js | 1 + assets/js/33.9c591539.js | 1 + assets/js/4.735d6392.js | 1 + assets/js/5.eb8174c0.js | 1 + assets/js/6.6356d18d.js | 1 + assets/js/7.2141c153.js | 1 + assets/js/8.e3d6ceb6.js | 1 + assets/js/9.973d1d99.js | 1 + assets/js/app.72629fdf.js | 58 ++ avatar.png | Bin 0 -> 26287 bytes avatar1.png | Bin 0 -> 163265 bytes blogs/acknowledge/ackonwledge.html | 88 +++ blogs/acknowledge/c1000ktest.html | 628 ++++++++++++++++++ blogs/acknowledge/gdbguide.html | 507 ++++++++++++++ blogs/acknowledge/locktest.html | 312 +++++++++ blogs/acknowledge/memoryleak.html | 213 ++++++ blogs/acknowledge/perf_flamegraph.html | 184 +++++ blogs/acknowledge/site.html | 87 +++ blogs/inlove/frame_1.html | 87 +++ blogs/inlove/frame_2.html | 87 +++ blogs/inlove/frame_3.html | 87 +++ blogs/inlove/frame_date.html | 92 +++ blogs/inlove/this36question.html | 160 +++++ blogs/mianjing/duoyi.html | 87 +++ blogs/mianjing/sangfor.html | 87 +++ blogs/other/guide.html | 97 +++ blogs/other/markdowngrammar.html | 100 +++ blogs/technology/redis/092101.html | 87 +++ blogs/technology/redis/121501.html | 87 +++ blogs/technology/zmq/121501.html | 87 +++ blogs/work/ability.html | 87 +++ blogs/work/ability1.html | 87 +++ blogs/work/resume.html | 115 ++++ categories/index.html | 87 +++ categories/redis/index.html | 87 +++ categories/zmq/index.html | 87 +++ .../\345\267\245\344\275\234/index.html" | 87 +++ .../\347\237\245\350\257\206/index.html" | 87 +++ .../\350\201\212\345\244\251/index.html" | 87 +++ .../\351\235\242\347\273\217/index.html" | 87 +++ docs/theme-reco/index.html | 87 +++ favicon.ico | Bin 0 -> 129362 bytes favicon1.ico | Bin 0 -> 4286 bytes hero.png | Bin 0 -> 15414 bytes index.html | 103 +++ js/MouseClickEffect.js | 34 + logo.png | Bin 0 -> 26287 bytes logo1.png | Bin 0 -> 44905 bytes tag/index.html | 87 +++ tag/redis/index.html | 87 +++ tag/zmq/index.html | 87 +++ "tag/\345\267\245\344\275\234/index.html" | 87 +++ "tag/\347\237\245\350\257\206/index.html" | 87 +++ "tag/\350\201\212\345\244\251/index.html" | 87 +++ "tag/\351\235\242\347\273\217/index.html" | 87 +++ timeline/index.html | 87 +++ 86 files changed, 5149 insertions(+) create mode 100644 404.html create mode 100644 PrideandPrejudice.png create mode 100644 assets/css/0.styles.ece217d8.css create mode 100644 assets/fonts/iconfont.938fa69e.woff create mode 100644 assets/fonts/iconfont.ecabaf00.ttf create mode 100644 assets/img/bg.2cfdbb33.svg create mode 100644 assets/js/1.e2979132.js create mode 100644 assets/js/10.e8bfcf7f.js create mode 100644 assets/js/11.5733ddba.js create mode 100644 assets/js/12.a2732e14.js create mode 100644 assets/js/13.d8a01b18.js create mode 100644 assets/js/14.21bcebc4.js create mode 100644 assets/js/15.cc9f2f8e.js create mode 100644 assets/js/16.d264cc33.js create mode 100644 assets/js/17.79a30f21.js create mode 100644 assets/js/18.3b2b186e.js create mode 100644 assets/js/19.876eee7d.js create mode 100644 assets/js/20.9e432406.js create mode 100644 assets/js/21.b160f907.js create mode 100644 assets/js/22.b98bdf43.js create mode 100644 assets/js/23.c61a42c5.js create mode 100644 assets/js/24.3e59a9da.js create mode 100644 assets/js/25.3423b9d6.js create mode 100644 assets/js/26.14b116b2.js create mode 100644 assets/js/27.946e74f9.js create mode 100644 assets/js/28.33fa0677.js create mode 100644 assets/js/29.6f72c1d3.js create mode 100644 assets/js/3.5a4097ad.js create mode 100644 assets/js/30.f92ae4d6.js create mode 100644 assets/js/31.3d8017d0.js create mode 100644 assets/js/32.59e154c6.js create mode 100644 assets/js/33.9c591539.js create mode 100644 assets/js/4.735d6392.js create mode 100644 assets/js/5.eb8174c0.js create mode 100644 assets/js/6.6356d18d.js create mode 100644 assets/js/7.2141c153.js create mode 100644 assets/js/8.e3d6ceb6.js create mode 100644 assets/js/9.973d1d99.js create mode 100644 assets/js/app.72629fdf.js create mode 100644 avatar.png create mode 100644 avatar1.png create mode 100644 blogs/acknowledge/ackonwledge.html create mode 100644 blogs/acknowledge/c1000ktest.html create mode 100644 blogs/acknowledge/gdbguide.html create mode 100644 blogs/acknowledge/locktest.html create mode 100644 blogs/acknowledge/memoryleak.html create mode 100644 blogs/acknowledge/perf_flamegraph.html create mode 100644 blogs/acknowledge/site.html create mode 100644 blogs/inlove/frame_1.html create mode 100644 blogs/inlove/frame_2.html create mode 100644 blogs/inlove/frame_3.html create mode 100644 blogs/inlove/frame_date.html create mode 100644 blogs/inlove/this36question.html create mode 100644 blogs/mianjing/duoyi.html create mode 100644 blogs/mianjing/sangfor.html create mode 100644 blogs/other/guide.html create mode 100644 blogs/other/markdowngrammar.html create mode 100644 blogs/technology/redis/092101.html create mode 100644 blogs/technology/redis/121501.html create mode 100644 blogs/technology/zmq/121501.html create mode 100644 blogs/work/ability.html create mode 100644 blogs/work/ability1.html create mode 100644 blogs/work/resume.html create mode 100644 categories/index.html create mode 100644 categories/redis/index.html create mode 100644 categories/zmq/index.html create mode 100644 "categories/\345\267\245\344\275\234/index.html" create mode 100644 "categories/\347\237\245\350\257\206/index.html" create mode 100644 "categories/\350\201\212\345\244\251/index.html" create mode 100644 "categories/\351\235\242\347\273\217/index.html" create mode 100644 docs/theme-reco/index.html create mode 100644 favicon.ico create mode 100644 favicon1.ico create mode 100644 hero.png create mode 100644 index.html create mode 100644 js/MouseClickEffect.js create mode 100644 logo.png create mode 100644 logo1.png create mode 100644 tag/index.html create mode 100644 tag/redis/index.html create mode 100644 tag/zmq/index.html create mode 100644 "tag/\345\267\245\344\275\234/index.html" create mode 100644 "tag/\347\237\245\350\257\206/index.html" create mode 100644 "tag/\350\201\212\345\244\251/index.html" create mode 100644 "tag/\351\235\242\347\273\217/index.html" create mode 100644 timeline/index.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..95cdacb --- /dev/null +++ b/404.html @@ -0,0 +1,21 @@ + + + + + + 斯人如彩虹 + + + + + + + + + + + +
+ + + diff --git a/PrideandPrejudice.png b/PrideandPrejudice.png new file mode 100644 index 0000000000000000000000000000000000000000..cda45d3b5416aa46bd3b1fb3494f7b0db6f726c8 GIT binary patch literal 1256337 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

{Nz&WA`^ad)tyvp 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 `Un(K@O5KrNS1O%D^ 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

0CJNCpl0G9A3J!z*qVm%h`yj^SsHdaMrC{%(uAG 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

L?YDq6N!~wPe8OCQKu!M_L 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

0~{%E0i4nDMS{iORe} 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 z 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

h5q?RR_qItkA)UI-%G0pq^{>LAG{Q2jfs`{nf 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

-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%0DIZD;hqA3$x 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�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

Wgj^kY)9GG1KoBUh)?7NeUi1Naj2RTgv*O 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

N^wzW60-+ql@_9X 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 &Kv|n77 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 m+!O9cfr>V!Og*%A2l#(v#(?O4h@^c00000qU literal 0 HcmV?d00001 diff --git a/assets/css/0.styles.ece217d8.css b/assets/css/0.styles.ece217d8.css new file mode 100644 index 0000000..534d0a3 --- /dev/null +++ b/assets/css/0.styles.ece217d8.css @@ -0,0 +1,10 @@ +.medium-zoom-overlay{z-index:100}.medium-zoom-overlay~img{z-index:101}html{scroll-behavior:smooth}.back-to-ceiling[data-v-c6073ba8]{background-color:#fff;background-color:var(--background-color);box-shadow:0 1px 6px 0 rgba(0,0,0,.2);box-shadow:var(--box-shadow);position:fixed;display:inline-block;text-align:center;cursor:pointer}.back-to-ceiling[data-v-c6073ba8]::hover{background:#d5dbe7}.back-to-ceiling .icon[data-v-c6073ba8]{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:26px;height:26px;fill:#3eaf7c}.fade-enter-active[data-v-c6073ba8],.fade-leave-active[data-v-c6073ba8]{transition:all .5s}.fade-enter[data-v-c6073ba8],.fade-leave-to[data-v-c6073ba8]{opacity:0;transform:translateY(120px)}#loader-wrapper[data-v-d48f4d20]{height:100vh;width:100vw;background:#fff;background:var(--background-color)}#loader-wrapper .loader-main[data-v-d48f4d20]{position:fixed;width:120px;height:50px;top:45%;left:50%;z-index:555;transform:translate(-50%)}#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(2){-webkit-animation:pacman-balls-data-v-d48f4d20 1s linear 0s infinite;animation:pacman-balls-data-v-d48f4d20 1s linear 0s infinite}#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(3){-webkit-animation:pacman-balls-data-v-d48f4d20 1s linear .33s infinite;animation:pacman-balls-data-v-d48f4d20 1s linear .33s infinite}#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(4){-webkit-animation:pacman-balls-data-v-d48f4d20 1s linear .66s infinite;animation:pacman-balls-data-v-d48f4d20 1s linear .66s infinite}#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(5){-webkit-animation:pacman-balls-data-v-d48f4d20 1s linear .99s infinite;animation:pacman-balls-data-v-d48f4d20 1s linear .99s infinite}#loader-wrapper .loader-main div[data-v-d48f4d20]:first-of-type{width:0;height:0;border:25px solid #3eaf7c;border-right-color:transparent;border-radius:25px;-webkit-animation:rotate_pacman_half_up-data-v-d48f4d20 .5s 0s infinite;animation:rotate_pacman_half_up-data-v-d48f4d20 .5s 0s infinite}#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(2){width:0;height:0;border:25px solid #3eaf7c;border-right-color:transparent;border-radius:25px;-webkit-animation:rotate_pacman_half_down-data-v-d48f4d20 .5s 0s infinite;animation:rotate_pacman_half_down-data-v-d48f4d20 .5s 0s infinite;margin-top:-50px}#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(3),#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(4),#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(5),#loader-wrapper .loader-main div[data-v-d48f4d20]:nth-child(6){background-color:#3eaf7c;width:15px;height:15px;border-radius:100%;margin:2px;width:10px;height:10px;position:absolute;transform:translateY(-6.25px);top:25px;left:100px}#loader-wrapper .title[data-v-d48f4d20]{margin:8rem auto 2rem;font-size:30px}#loader-wrapper .description[data-v-d48f4d20],#loader-wrapper .title[data-v-d48f4d20]{text-align:center;color:#242424;color:var(--text-color);box-sizing:border-box;padding:0 10px;text-shadow:0 2px 10px rgba(0,0,0,.2)}#loader-wrapper .description[data-v-d48f4d20]{margin:auto;font-size:22px}@-webkit-keyframes pacman-balls-data-v-d48f4d20{75%{opacity:.7}to{transform:translate(-100px,-6.25px)}}@keyframes pacman-balls-data-v-d48f4d20{75%{opacity:.7}to{transform:translate(-100px,-6.25px)}}@-webkit-keyframes rotate_pacman_half_up-data-v-d48f4d20{0%{transform:rotate(270deg)}50%{transform:rotate(1turn)}to{transform:rotate(270deg)}}@keyframes rotate_pacman_half_up-data-v-d48f4d20{0%{transform:rotate(270deg)}50%{transform:rotate(1turn)}to{transform:rotate(270deg)}}@-webkit-keyframes rotate_pacman_half_down-data-v-d48f4d20{0%{transform:rotate(90deg)}50%{transform:rotate(0deg)}to{transform:rotate(90deg)}}@keyframes rotate_pacman_half_down-data-v-d48f4d20{0%{transform:rotate(90deg)}50%{transform:rotate(0deg)}to{transform:rotate(90deg)}}.pagation[data-v-094d08e4]{font-weight:700;text-align:center;color:#888;color:var(--text-color);margin:20px auto 0;background:#f2f2f2;background:var(--background-color)}.pagation .pagation-list[data-v-094d08e4]{font-size:0;line-height:50px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pagation .pagation-list span[data-v-094d08e4]{font-size:14px}.pagation .pagation-list span.jump[data-v-094d08e4],.pagation .pagation-list span.jumpinp input[data-v-094d08e4]{box-shadow:var(--box-shadow);border:1px solid var(--border-color)!important;border:1px solid #ccc}.pagation .pagation-list span.jump[data-v-094d08e4]{padding:5px 8px;border-radius:4px;cursor:pointer;margin-left:5px}.pagation .pagation-list span.jumpinp input[data-v-094d08e4]{width:55px;height:26px;background-color:var(--background-color);font-size:13px;border-radius:4px;text-align:center;outline:none}.pagation .pagation-list span.bgprimary[data-v-094d08e4]{cursor:default;color:#fff;background:#3eaf7c;border-color:#3eaf7c}.pagation .pagation-list span.ellipsis[data-v-094d08e4]{padding:0 8px}.pagation .pagation-list span.jumppoint[data-v-094d08e4]{margin:0 10px 0 30px}.valine-wrapper #valine.v .vbtn{color:#2c3e50;color:var(--text-color);border:1px solid #eaecef;border-color:var(--border-color)}.valine-wrapper #valine.v .vbtn:hover{color:#3eaf7c;border-color:#3eaf7c}.valine-wrapper #valine.v .vwrap{background:rgba(27,31,35,.05);background:var(--code-color);border:1px solid #eaecef;border-color:var(--border-color)}.valine-wrapper #valine.v .vwrap .vheader .vinput{border-bottom:1px dashed var(--border-color)}.valine-wrapper #valine.v .vwrap .vheader .vinput:focus{border-bottom-color:#3eaf7c}.valine-wrapper #valine.v .vwrap .vheader .vinput:-internal-autofill-selected{background-color:var(--code-color)!important}.valine-wrapper #valine.v .vinfo{padding-left:.6rem}.valine-wrapper #valine.v .vcard .vquote{margin-left:0;border-left:none}.valine-wrapper #valine.v .vcard .vimg{width:2.8rem;height:2.8rem;border-radius:.25rem;border:none}.valine-wrapper #valine.v .vcard .vhead .vnick{color:#3eaf7c}.valine-wrapper #valine.v .vcard .vhead .vnick:before{background:#3eaf7c}.valine-wrapper #valine.v .vh{border-bottom:none}.valine-wrapper #valine.v .vh .vhead .vsys{color:#3eaf7c;color:var(--text-color);background:rgba(27,31,35,.05);background:var(--code-color)}.valine-wrapper #valine.v .vh .vmeta{margin-bottom:1rem}.valine-wrapper #valine.v .vh .vmeta .vat{margin-right:.3rem;background:rgba(27,31,35,.05);background:var(--code-color);border-radius:.25rem;padding:0 .4rem;color:var(--text-color);border:1px solid #eaecef;border-color:var(--border-color)}.valine-wrapper #valine.v .vh .vmeta .vat:hover{color:#3eaf7c;border-color:#3eaf7c}.valine-wrapper #valine.v .vh .vcontent{background:rgba(27,31,35,.05);background:var(--code-color);border-radius:.25rem;margin:0 .3rem;padding:.1rem .6rem .05rem}.valine-wrapper #valine.v .vh .vcontent p .at{color:#3eaf7c}.valine-wrapper #valine.v .vh .vcontent.expand:before{z-index:1;background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff);background:linear-gradient(180deg,hsla(0,0%,100%,0),var(--background-color))}.valine-wrapper #valine.v .vh .vcontent.expand:after{color:#3eaf7c;color:var(--text-color);background:#fff;background:var(--background-color)}.valine-wrapper #valine.v .info{padding-right:.6rem}.valine-wrapper #valine.v .vbtn,.valine-wrapper #valine.v code,.valine-wrapper #valine.v pre{background:var(--background-color);color:var(--text-color)}.valine-wrapper #valine.v a{color:#3eaf7c}.valine-wrapper #valine.v a:before{background:#3eaf7c} + +/*! + * vssue - A vue-powered issue-based comment plugin + * + * @version v1.4.8 + * @link https://vssue.js.org + * @license MIT + * @copyright 2018-2021 meteorlxy + */.vssue{color:#2c3e50}@media screen and (max-width:576px){.vssue .vssue-new-comment .vssue-new-comment-body{margin-left:60px}}@media screen and (min-width:577px){.vssue .vssue-new-comment .vssue-new-comment-body{margin-left:70px}}@media screen and (max-width:576px){.vssue .vssue-new-comment .vssue-new-comment-footer{text-align:center}.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-new-comment-operations{margin-top:10px}}@media screen and (min-width:577px){.vssue .vssue-new-comment .vssue-new-comment-footer{margin-left:70px;text-align:right}.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-current-user{float:left}}@media screen and (max-width:576px){.vssue .vssue-comments .vssue-comment .vssue-comment-body{margin-left:60px}}@media screen and (min-width:577px){.vssue .vssue-comments .vssue-comment .vssue-comment-body{margin-left:70px}}@media screen and (max-width:576px){.vssue .vssue-pagination{flex-direction:column;justify-content:center;text-align:center}}@media screen and (max-width:576px){.vssue .vssue-pagination .vssue-pagination-page{margin-top:10px}}@media screen and (min-width:577px){.vssue .vssue-pagination .vssue-pagination-page{text-align:right}}.markdown-body .tab-size[data-tab-size="1"]{-o-tab-size:1}.markdown-body .tab-size[data-tab-size="2"]{-o-tab-size:2}.markdown-body .tab-size[data-tab-size="3"]{-o-tab-size:3}.markdown-body .tab-size[data-tab-size="4"]{-o-tab-size:4}.markdown-body .tab-size[data-tab-size="5"]{-o-tab-size:5}.markdown-body .tab-size[data-tab-size="6"]{-o-tab-size:6}.markdown-body .tab-size[data-tab-size="7"]{-o-tab-size:7}.markdown-body .tab-size[data-tab-size="8"]{-o-tab-size:8}.markdown-body .tab-size[data-tab-size="9"]{-o-tab-size:9}.markdown-body .tab-size[data-tab-size="10"]{-o-tab-size:10}.markdown-body .tab-size[data-tab-size="11"]{-o-tab-size:11}.markdown-body .tab-size[data-tab-size="12"]{-o-tab-size:12}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,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) format("woff")}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{background-color:#b31d28;color:#fafbfc}.markdown-body .pl-c2{background-color:#d73a49;color:#fafbfc}.markdown-body .pl-c2:before{content:"^M"}.markdown-body .pl-sr .pl-cce{color:#22863a;font-weight:700}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:#005cc5;font-weight:700}.markdown-body .pl-mi{color:#24292e;font-style:italic}.markdown-body .pl-mb{color:#24292e;font-weight:700}.markdown-body .pl-md{background-color:#ffeef0;color:#b31d28}.markdown-body .pl-mi1{background-color:#f0fff4;color:#22863a}.markdown-body .pl-mc{background-color:#ffebda;color:#e36209}.markdown-body .pl-mi2{background-color:#005cc5;color:#f6f8fa}.markdown-body .pl-mdr{color:#6f42c1;font-weight:700}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{color:#032f62;text-decoration:underline}.markdown-body details{display:block}.markdown-body summary{display:list-item}.markdown-body a{background-color:transparent}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit;font-weight:bolder}.markdown-body h1{margin:.67em 0}.markdown-body img{border-style:none}.markdown-body code,.markdown-body kbd,.markdown-body pre{font-family:monospace,monospace;font-size:1em}.markdown-body hr{box-sizing:content-box;overflow:visible}.markdown-body input{font:inherit;margin:0;overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}.markdown-body hr:after,.markdown-body hr:before{content:"";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-bottom:0;margin-top:0}.markdown-body h1{font-size:32px}.markdown-body h1,.markdown-body h2{font-weight:600}.markdown-body h2{font-size:24px}.markdown-body h3{font-size:20px}.markdown-body h3,.markdown-body h4{font-weight:600}.markdown-body h4{font-size:16px}.markdown-body h5{font-size:14px}.markdown-body h5,.markdown-body h6{font-weight:600}.markdown-body h6{font-size:12px}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .border{border:1px solid #e1e4e8!important}.markdown-body .border-0{border:0!important}.markdown-body .border-bottom{border-bottom:1px solid #e1e4e8!important}.markdown-body .rounded-1{border-radius:3px!important}.markdown-body .bg-white{background-color:#fff!important}.markdown-body .bg-gray-light{background-color:#fafbfc!important}.markdown-body .text-gray-light{color:#6a737d!important}.markdown-body .mb-0{margin-bottom:0!important}.markdown-body .my-2{margin-bottom:8px!important;margin-top:8px!important}.markdown-body .py-0{padding-bottom:0!important;padding-top:0!important}.markdown-body .py-2{padding-bottom:8px!important;padding-top:8px!important}.markdown-body .pl-3,.markdown-body .px-3{padding-left:16px!important}.markdown-body .px-3{padding-right:16px!important}.markdown-body .f6{font-size:12px!important}.markdown-body .lh-condensed{line-height:1.25!important}.markdown-body .text-bold{font-weight:600!important}.markdown-body:after,.markdown-body:before{content:"";display:table}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}.markdown-body blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{border:1px solid #c6cbd1;border-bottom-color:#959da5;box-shadow:inset 0 -1px 0 #959da5;font-size:11px}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{color:#6a737d;font-size:.85em}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table{display:block;overflow:auto;width:100%}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{border:1px solid #dfe2e5;padding:6px 13px}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{background-color:#fff;box-sizing:content-box;max-width:100%}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code{background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal}.markdown-body .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:90%}.markdown-body .blob-wrapper{border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow-x:auto;overflow-y:hidden}.markdown-body .blob-wrapper-embedded{max-height:240px;overflow-y:auto}.markdown-body .blob-num{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;user-select:none;vertical-align:top;white-space:nowrap;width:1%}.markdown-body .blob-num:hover{color:rgba(27,31,35,.6)}.markdown-body .blob-num:before{content:attr(data-line-number)}.markdown-body .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}.markdown-body .blob-code-inner{color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre;word-wrap:normal}.markdown-body .pl-token.active,.markdown-body .pl-token:hover{background:#ffea7f;cursor:pointer}.markdown-body kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}.markdown-body .tab-size[data-tab-size="1"]{-moz-tab-size:1;tab-size:1}.markdown-body .tab-size[data-tab-size="2"]{-moz-tab-size:2;tab-size:2}.markdown-body .tab-size[data-tab-size="3"]{-moz-tab-size:3;tab-size:3}.markdown-body .tab-size[data-tab-size="4"]{-moz-tab-size:4;tab-size:4}.markdown-body .tab-size[data-tab-size="5"]{-moz-tab-size:5;tab-size:5}.markdown-body .tab-size[data-tab-size="6"]{-moz-tab-size:6;tab-size:6}.markdown-body .tab-size[data-tab-size="7"]{-moz-tab-size:7;tab-size:7}.markdown-body .tab-size[data-tab-size="8"]{-moz-tab-size:8;tab-size:8}.markdown-body .tab-size[data-tab-size="9"]{-moz-tab-size:9;tab-size:9}.markdown-body .tab-size[data-tab-size="10"]{-moz-tab-size:10;tab-size:10}.markdown-body .tab-size[data-tab-size="11"]{-moz-tab-size:11;tab-size:11}.markdown-body .tab-size[data-tab-size="12"]{-moz-tab-size:12;tab-size:12}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body .pl-7{padding-left:48px!important}.markdown-body .pl-8{padding-left:64px!important}.markdown-body .pl-9{padding-left:80px!important}.markdown-body .pl-10{padding-left:96px!important}.markdown-body .pl-11{padding-left:112px!important}.markdown-body .pl-12{padding-left:128px!important}.clearfix:after,.vssue .vssue-new-comment .vssue-new-comment-footer:after{display:block;clear:both;content:""}.vssue{width:100%;color:#242424;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;padding:10px}.vssue .vssue-button{outline:none;cursor:pointer;padding:10px 20px;font-size:1.05;font-weight:700;color:#3eaf7c;background-color:transparent;border:2px solid #3eaf7c;border-radius:10px}.vssue .vssue-button:disabled{cursor:not-allowed;color:#eaecef;border-color:#eaecef}.vssue .vssue-button:disabled .vssue-icon{fill:#eaecef}.vssue .vssue-button:not(:disabled).vssue-button-default{color:#a3aab1;border-color:#a3aab1}.vssue .vssue-button:not(:disabled).vssue-button-primary{color:#3eaf7c;border-color:#3eaf7c}.vssue .vssue-icon{width:1em;height:1em;vertical-align:-.15em;fill:#3eaf7c;overflow:hidden}.vssue .vssue-icon-loading{-webkit-animation:vssue-keyframe-rotation 1s linear infinite;animation:vssue-keyframe-rotation 1s linear infinite}@-webkit-keyframes vssue-keyframe-rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes vssue-keyframe-rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vssue .fade-appear-active,.vssue .fade-enter-active{transition:all .3s ease}.vssue .fade-leave-active{transition:all .3s cubic-bezier(1,.5,.8,1)}.vssue .fade-appear,.vssue .fade-enter,.vssue .fade-leave-to{opacity:0}.vssue .vssue-notice{position:relative;z-index:100;transform:translateY(-11px)}.vssue .vssue-notice .vssue-alert{position:absolute;z-index:101;cursor:pointer;top:0;padding:10px 20px;width:100%;color:#3eaf7c;border:2px solid #c3ead8;border-radius:5px;background-color:#f5fbf8}.vssue .vssue-notice .vssue-progress{position:absolute;top:0;left:0;height:2px;background-color:#3eaf7c}.vssue .vssue-status{text-align:center;padding-top:20px;padding-bottom:10px;color:#3eaf7c}.vssue .vssue-status .vssue-icon{font-size:1.4em}.vssue .vssue-status .vssue-status-info{margin-top:10px;margin-bottom:10px}.vssue .vssue-header{padding-bottom:10px;border-bottom:1px solid #eaecef;margin-bottom:10px;overflow:hidden}.vssue .vssue-header .vssue-header-powered-by{float:right}.vssue .vssue-new-comment{border-bottom:1px solid #eaecef;margin-top:10px;margin-bottom:10px}.vssue .vssue-new-comment .vssue-comment-avatar{float:left;width:50px;height:50px}.vssue .vssue-new-comment .vssue-comment-avatar img{width:50px;height:50px}.vssue .vssue-new-comment .vssue-comment-avatar .vssue-icon{cursor:pointer;padding:5px;font-size:50px;fill:#757f8a}.vssue .vssue-new-comment .vssue-new-comment-body{position:relative}@media screen and (max-width:719px){.vssue .vssue-new-comment .vssue-new-comment-body{margin-left:60px}}@media screen and (min-width:720px){.vssue .vssue-new-comment .vssue-new-comment-body{margin-left:70px}}.vssue .vssue-new-comment .vssue-new-comment-body .vssue-new-comment-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vssue .vssue-new-comment .vssue-new-comment-footer{margin-top:10px;margin-bottom:10px}.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-current-user{color:#a3aab1}.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-current-user .vssue-logout{cursor:pointer;text-decoration:underline;color:#a3aab1;font-weight:400}@media screen and (max-width:719px){.vssue .vssue-new-comment .vssue-new-comment-footer{text-align:center}.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-new-comment-operations{margin-top:10px}}@media screen and (min-width:720px){.vssue .vssue-new-comment .vssue-new-comment-footer{margin-left:70px;text-align:right}.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-current-user{float:left}}.vssue .vssue-new-comment .vssue-new-comment-input{resize:none;outline:none;width:100%;padding:15px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;background-color:#f5fbf8;border:1px solid #eaecef;border-radius:5px}.vssue .vssue-new-comment .vssue-new-comment-input:disabled{cursor:not-allowed;background-color:#f0f2f4}.vssue .vssue-new-comment .vssue-new-comment-input:focus{background-color:#fff;border-color:#9adbbe;box-shadow:0 0 1px 1px #9adbbe}.vssue .vssue-new-comment .vssue-new-comment-input::-moz-placeholder{color:#a3aab1}.vssue .vssue-new-comment .vssue-new-comment-input:-ms-input-placeholder{color:#a3aab1}.vssue .vssue-new-comment .vssue-new-comment-input::placeholder{color:#a3aab1}.vssue .vssue-comments .vssue-comment{margin:15px 0}.vssue .vssue-comments .vssue-comment.vssue-comment-edit-mode .vssue-comment-main{border-color:#9adbbe;box-shadow:0 0 1px 1px #9adbbe}.vssue .vssue-comments .vssue-comment.vssue-comment-disabled{pointer-events:none}.vssue .vssue-comments .vssue-comment.vssue-comment-disabled .vssue-comment-body{background-color:#f9f9fa}.vssue .vssue-comments .vssue-comment .vssue-comment-avatar{float:left;width:50px;height:50px}.vssue .vssue-comments .vssue-comment .vssue-comment-avatar img{width:50px;height:50px}@media screen and (max-width:719px){.vssue .vssue-comments .vssue-comment .vssue-comment-body{margin-left:60px}}@media screen and (min-width:720px){.vssue .vssue-comments .vssue-comment .vssue-comment-body{margin-left:70px}}.vssue .vssue-comments .vssue-comment .vssue-comment-header{padding:10px 15px;overflow:hidden;border-top-left-radius:5px;border-top-right-radius:5px;border:1px solid #eaecef;border-bottom:none}.vssue .vssue-comments .vssue-comment .vssue-comment-header .vssue-comment-created-at{float:right;cursor:default;color:#a3aab1}.vssue .vssue-comments .vssue-comment .vssue-comment-main{padding:15px;border:1px solid #eaecef}.vssue .vssue-comments .vssue-comment .vssue-comment-main .vssue-edit-comment-input{resize:none;outline:none;border:none;width:100%;background:transparent}.vssue .vssue-comments .vssue-comment .vssue-comment-footer{padding:10px 15px;overflow:hidden;border-bottom-left-radius:5px;border-bottom-right-radius:5px;border:1px solid #eaecef;border-top:none}.vssue .vssue-comments .vssue-comment .vssue-comment-footer .vssue-comment-hint{cursor:default;color:#a3aab1}.vssue .vssue-comments .vssue-comment .vssue-comment-footer .vssue-comment-reactions .vssue-comment-reaction{cursor:pointer;display:inline-block;margin-right:8px;color:#3eaf7c}.vssue .vssue-comments .vssue-comment .vssue-comment-footer .vssue-comment-operations{float:right;color:#3eaf7c}.vssue .vssue-comments .vssue-comment .vssue-comment-footer .vssue-comment-operations .vssue-comment-operation{cursor:pointer;margin-left:8px}.vssue .vssue-comments .vssue-comment .vssue-comment-footer .vssue-comment-operations .vssue-comment-operation.vssue-comment-operation-muted{color:#a3aab1}.vssue .vssue-comments .vssue-comment .vssue-comment-footer .vssue-comment-operations .vssue-comment-operation.vssue-comment-operation-muted .vssue-icon{fill:#a3aab1}.vssue .vssue-pagination{cursor:default;display:flex;padding:5px;color:#a3aab1}@media screen and (max-width:719px){.vssue .vssue-pagination{flex-direction:column;justify-content:center;text-align:center}}.vssue .vssue-pagination .vssue-pagination-loading,.vssue .vssue-pagination .vssue-pagination-page,.vssue .vssue-pagination .vssue-pagination-per-page{flex:1}@media screen and (max-width:719px){.vssue .vssue-pagination .vssue-pagination-page{margin-top:10px}}@media screen and (min-width:720px){.vssue .vssue-pagination .vssue-pagination-page{text-align:right}}.vssue .vssue-pagination .vssue-pagination-select{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #9adbbe;padding-left:.2rem;padding-right:1rem;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg class='icon' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cstyle/%3E%3C/defs%3E%3Cpath d='M676.395 432.896a21.333 21.333 0 0 0-30.166 0L511.061 568.021 377.728 434.645a21.333 21.333 0 0 0-30.165 30.166l148.394 148.48a21.419 21.419 0 0 0 30.208 0l150.23-150.187a21.333 21.333 0 0 0 0-30.208'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:100%}.vssue .vssue-pagination .vssue-pagination-select:disabled{cursor:not-allowed}.vssue .vssue-pagination .vssue-pagination-select:focus{background-color:#fff;box-shadow:0 0 .2px .2px #9adbbe}.vssue .vssue-pagination .vssue-pagination-link{display:inline-block;min-width:1em;text-align:center}.vssue .vssue-pagination .vssue-pagination-link.disabled{pointer-events:none}.vssue .vssue-pagination .vssue-pagination-link:not(.disabled){color:#3eaf7c;font-weight:500;cursor:pointer}.vssue,.vssue *{box-sizing:border-box}.vssue :not(.vssue-comment-content) a{cursor:pointer;font-weight:500;color:#3eaf7c;text-decoration:none}.vssue :not(.vssue-comment-content) hr{display:block;height:1px;border:0;border-top:1px solid #eaecef;margin:1.2rem 0;padding:0}.vssue-wrapper.vssue{color:#2c3e50;color:var(--text-color)}.vssue-wrapper.vssue .vssue-new-comment{border-bottom:1px solid #eaecef;border-bottom:1px solid var(--border-color)}.vssue-wrapper.vssue .vssue-new-comment .vssue-new-comment-input:disabled{background-color:#fff;background-color:var(--background-color);border:1px solid #eaecef;border:1px solid var(--border-color)}.vssue-wrapper.vssue .vssue-new-comment .vssue-new-comment-footer .vssue-current-user{color:#2c3e50;color:var(--text-color)}.vssue-wrapper.vssue .vssue-header{border-bottom:1px solid #eaecef;border-bottom:1px solid var(--border-color)}.vssue-wrapper.vssue .vssue-comments .vssue-pagination .vssue-pagination-per-page .vssue-pagination-select{color:var(--text-color)}.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-body .vssue-comment-footer,.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-body .vssue-comment-header,.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-body .vssue-comment-main{border:none}.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-body .vssue-comment-footer,.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-body .vssue-comment-main{background:var(--code-color)}.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-body .vssue-comment-footer{border-top:2px solid var(--background-color)}.vssue-wrapper.vssue .vssue-comments .vssue-comment .vssue-comment-avatar img{width:2.8rem;height:2.8rem;border-radius:.25rem}.vssue-wrapper.vssue .markdown-body{color:var(--text-color)}#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#3eaf7c transparent transparent #3eaf7c;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto}.home .hero{text-align:center}.home .hero h1{display:block;font-size:2.5rem;color:var(--text-color)}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{font-size:1.6rem;line-height:1.3;color:var(--text-color)}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.2rem 1.2rem;border-radius:.25rem;transition:background-color .1s ease;box-sizing:border-box}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid var(--border-color);padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%;transition:all .5s;color:var(--text-color)}.home .feature h2{font-size:1.6rem;font-weight:500;border-bottom:none;padding-bottom:0}.home .feature:hover{transform:scale(1.05)}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.badge[data-v-08862138]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:.25rem;padding:0 6px;color:#fff}.badge.green[data-v-08862138],.badge.tip[data-v-08862138],.badge[data-v-08862138]{background-color:#42b983}.badge.error[data-v-08862138]{background-color:#da5961}.badge.warn[data-v-08862138],.badge.warning[data-v-08862138],.badge.yellow[data-v-08862138]{background-color:#e7c000}.badge+.badge[data-v-08862138]{margin-left:5px}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box .iconfont{position:absolute;top:0;bottom:0;z-index:0;left:.6rem;margin:auto}.search-box input{cursor:text;width:10rem;height:2rem;color:#5b5b5b;display:inline-block;border:1px solid var(--border-color);border-radius:.25rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:transparent;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:var(--background-color);width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:var(--text-color)}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:var(--border-color)}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box{margin-right:0}.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid var(--border-color);padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--text-color-sub);border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:var(--background-color);padding:.6rem 0;box-shadow:var(--box-shadow);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:var(--text-color)}.nav-links a.router-link-active,.nav-links a.router-link-active .iconfont,.nav-links a:hover,.nav-links a:hover .iconfont{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px}}.mode-options{background-color:var(--background-color);min-width:125px;margin:0;padding:1em;box-shadow:var(--box-shadow);border-radius:.25rem}.mode-options .title{margin-top:0;margin-bottom:.6rem;font-weight:700;color:var(--text-color)}.mode-options .color-mode-options{display:flex;flex-wrap:wrap}.mode-options .color-mode-options li{flex:1;text-align:center;font-size:12px;color:var(--text-color);line-height:18px;padding:3px 6px;border-top:1px solid #666;border-bottom:1px solid #666;background-color:var(--background-color);cursor:pointer}.mode-options .color-mode-options li.dark{border-radius:.25rem 0 0 .25rem;border-left:1px solid #666}.mode-options .color-mode-options li.light{border-radius:0 .25rem .25rem 0;border-right:1px solid #666}.mode-options .color-mode-options li.active{background-color:#3eaf7c;color:#fff}.mode-options .color-mode-options li:not(.active){border-right:1px solid #666}.color-picker{position:relative;margin-right:1em;cursor:pointer}.color-picker .color-button{align-items:center;height:100%}.color-picker .color-button .iconfont{font-size:1.4rem;color:#3eaf7c}.color-picker .color-picker-menu{position:absolute;top:40px;left:50%;z-index:150}.color-picker .color-picker-menu ul{list-style-type:none;margin:0;padding:0}@media (max-width:719px){.color-picker{margin-right:1rem}.color-picker .color-picker-menu{left:calc(50% - 35px)}.color-picker .color-picker-menu:before{left:calc(50% + 35px)}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;box-shadow:var(--box-shadow);background:var(--background-color)}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top;border-radius:50%}.navbar .site-name{font-size:1.2rem;font-weight:600;color:var(--text-color);position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex;background-color:var(--background-color)}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:.2rem}}.tags[data-v-285c9a44]{margin:30px 0}.tags span[data-v-285c9a44]{vertical-align:middle;margin:4px 4px 10px;padding:4px 8px;display:inline-block;cursor:pointer;border-radius:.25rem;background:#fff;color:#fff;line-height:13px;font-size:13px;box-shadow:var(--box-shadow);transition:all .5s}.tags span[data-v-285c9a44]:hover{transform:scale(1.04)}.tags span.active[data-v-285c9a44]{transform:scale(1.2)}.friend-link-wrapper[data-v-165dc218]{position:relative;margin:30px 0}.friend-link-wrapper .friend-link-item[data-v-165dc218]{position:relative;vertical-align:middle;margin:4px 4px 10px;padding:4px 8px 4px 20px;line-height:20px;display:inline-block;cursor:default;border-radius:.25rem;font-size:13px;box-shadow:var(--box-shadow);transition:all .5s}.friend-link-wrapper .friend-link-item .list-style[data-v-165dc218]{position:absolute;left:.4rem;top:0;bottom:0;margin:auto;display:block;width:.4rem;height:.4rem;border-radius:.1rem;background:#3eaf7c;content:""}.friend-link-wrapper .friend-link-item .popup-window-wrapper[data-v-165dc218]{display:none}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window[data-v-165dc218]{position:absolute;display:flex;background:var(--background-color);box-shadow:var(--box-shadow);border-radius:.25rem;box-sizing:border-box;padding:.8rem 1rem;width:280px}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .logo[data-v-165dc218]{margin-right:.4rem;width:2rem;height:2rem;flex:0 0 2rem;border-radius:.25rem;overflow:hidden}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .logo img[data-v-165dc218]{width:2rem;height:2rem}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .info[data-v-165dc218]{flex:0 0 85%;width:85%}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .info .title[data-v-165dc218]{display:flex;align-items:center;justify-content:space-between;height:2rem}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .info .title h4[data-v-165dc218]{margin:.2rem 0;flex:0 0 86%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .info .title .btn-go[data-v-165dc218]{width:1.4rem;height:1.2rem;border-radius:.25rem;font-size:12px;color:#fff;text-align:center;line-height:1.2rem;cursor:pointer;transition:all .5s}.friend-link-wrapper .friend-link-item .popup-window-wrapper .popup-window .info .title .btn-go[data-v-165dc218]:hover{transform:scale(1.1)}.fade-enter-active[data-v-165dc218],.fade-leave-active[data-v-165dc218]{transition:opacity .5s}.fade-enter[data-v-165dc218],.fade-leave-to[data-v-165dc218]{opacity:0}.iconfont[data-v-f875f3fc]{display:inline-block;line-height:1.5rem}.iconfont[data-v-f875f3fc]:not(:last-child){margin-right:1rem}.iconfont span[data-v-f875f3fc]{margin-left:.5rem}.tags .tag-item[data-v-f875f3fc]{font-family:Ubuntu,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;cursor:pointer}.tags .tag-item.active[data-v-f875f3fc],.tags .tag-item[data-v-f875f3fc]:hover{color:#3eaf7c}@media (max-width:719px){.tags[data-v-f875f3fc]{display:block;margin-left:0!important}}.abstract-item[data-v-ff2c8be0]{position:relative;margin:0 auto 20px;padding:16px 20px;width:100%;overflow:hidden;border-radius:.25rem;box-shadow:var(--box-shadow);box-sizing:border-box;transition:all .3s;background-color:var(--background-color);cursor:pointer}.abstract-item>[data-v-ff2c8be0]{pointer-events:auto}.abstract-item .reco-sticky[data-v-ff2c8be0]{position:absolute;top:0;left:0;display:inline-block;color:#3eaf7c;font-size:2.4rem}.abstract-item[data-v-ff2c8be0]:hover{box-shadow:var(--box-shadow-hover)}.abstract-item .title[data-v-ff2c8be0]{position:relative;font-size:1.28rem;line-height:46px;display:inline-block}.abstract-item .title a[data-v-ff2c8be0]{color:var(--text-color)}.abstract-item .title .reco-lock[data-v-ff2c8be0]{font-size:1.28rem;color:#3eaf7c}.abstract-item .title[data-v-ff2c8be0]:after{content:"";position:absolute;width:100%;height:2px;bottom:0;left:0;background-color:#3eaf7c;visibility:hidden;transform:scaleX(0);transition:.3s ease-in-out}.abstract-item .title:hover a[data-v-ff2c8be0]{color:#3eaf7c}.abstract-item .title[data-v-ff2c8be0]:hover:after{visibility:visible;transform:scaleX(1)}.abstract-item .tags .tag-item.active[data-v-ff2c8be0],.abstract-item .tags .tag-item[data-v-ff2c8be0]:hover{color:#3eaf7c}@media (max-width:719px){.tags[data-v-ff2c8be0]{display:block;margin-top:1rem;margin-left:0!important}}.sidebar-group{background:var(--background-color)}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:var(--text-color)}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{position:relative;color:var(--text-color);transition:color .15s ease;cursor:pointer;font-size:1em;font-weight:500;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0}.sidebar-heading.open,.sidebar-heading:hover{color:#3eaf7c}.sidebar-heading .arrow{position:absolute;top:0;bottom:0;right:1em;margin:auto}.sidebar-heading.clickable.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-heading.clickable:hover{color:#3eaf7c}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.abstract-wrapper[data-v-6cc0658a]{width:100%}.personal-info-wrapper .personal-img[data-v-39576ba9]{display:block;margin:2rem auto 1rem;width:6rem;height:6rem;border-radius:50%}.personal-info-wrapper .name[data-v-39576ba9]{font-size:1rem;text-align:center;color:var(--text-color)}.personal-info-wrapper .num[data-v-39576ba9]{display:flex;margin:0 auto 1rem;width:80%}.personal-info-wrapper .num>div[data-v-39576ba9]{text-align:center;flex:0 0 50%}.personal-info-wrapper .num>div[data-v-39576ba9]:first-child{border-right:1px solid #333}.personal-info-wrapper .num>div h3[data-v-39576ba9]{line-height:auto;margin:0 0 .6rem;color:var(--text-color)}.personal-info-wrapper .num>div h6[data-v-39576ba9]{line-height:auto;color:var(--text-color);margin:0}.personal-info-wrapper .social-links[data-v-39576ba9]{box-sizing:border-box;display:flex;flex-wrap:wrap;padding:10px}.personal-info-wrapper .social-links .social-item[data-v-39576ba9]{width:39px;height:36px;line-height:36px;text-align:center;list-style:none;transition:transform .3s}.personal-info-wrapper .social-links .social-item[data-v-39576ba9]:hover{transform:scale(1.08)}.personal-info-wrapper .social-links .social-item i[data-v-39576ba9]{cursor:pointer;font-size:22px}.home-blog{padding:0;margin:0 auto}.home-blog .hero{margin:3.6rem auto 0;position:relative;box-sizing:border-box;padding:0 20px;height:100vh;display:flex;align-items:center;justify-content:center}.home-blog .hero .hero-img{max-width:300px;margin:0 auto 1.5rem}.home-blog .hero h1{display:block;margin:0 auto 1.8rem;font-size:2.5rem}.home-blog .hero .description{margin:1.8rem auto;font-size:1.6rem;line-height:1.3}.home-blog .home-blog-wrapper{display:flex;align-items:flex-start;margin:20px auto 0;padding:0 20px;max-width:1126px}.home-blog .home-blog-wrapper .blog-list{flex:auto;width:0}.home-blog .home-blog-wrapper .blog-list .abstract-wrapper .abstract-item:last-child{margin-bottom:0}.home-blog .home-blog-wrapper .info-wrapper{position:-webkit-sticky;position:sticky;top:70px;overflow:hidden;transition:all .3s;margin-left:15px;flex:0 0 300px;height:auto;box-shadow:var(--box-shadow);border-radius:.25rem;box-sizing:border-box;padding:0 15px;background:var(--background-color)}.home-blog .home-blog-wrapper .info-wrapper:hover{box-shadow:var(--box-shadow-hover)}.home-blog .home-blog-wrapper .info-wrapper h4{color:var(--text-color)}.home-blog .home-blog-wrapper .info-wrapper .category-wrapper{list-style:none;padding-left:0}.home-blog .home-blog-wrapper .info-wrapper .category-wrapper .category-item{margin-bottom:.4rem;padding:.4rem .8rem;transition:all .5s;border-radius:.25rem;box-shadow:var(--box-shadow);background-color:var(--background-color)}.home-blog .home-blog-wrapper .info-wrapper .category-wrapper .category-item:hover{transform:scale(1.04)}.home-blog .home-blog-wrapper .info-wrapper .category-wrapper .category-item:hover a{color:#3eaf7c}.home-blog .home-blog-wrapper .info-wrapper .category-wrapper .category-item a{display:flex;justify-content:space-between;align-items:center;color:var(--text-color)}.home-blog .home-blog-wrapper .info-wrapper .category-wrapper .category-item a .post-num{width:1.6rem;height:1.6rem;text-align:center;line-height:1.6rem;border-radius:.25rem;background:#eee;font-size:13px;color:#fff}@media (max-width:719px){.home-blog .hero{height:450px}.home-blog .hero img{max-height:210px;margin:2rem auto 1.2rem}.home-blog .hero h1{margin:0 auto 1.8rem;font-size:2rem}.home-blog .hero .description{font-size:1.2rem}.home-blog .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home-blog .home-blog-wrapper{display:block!important}.home-blog .home-blog-wrapper .blog-list{width:auto}.home-blog .home-blog-wrapper .info-wrapper{margin-left:0}.home-blog .home-blog-wrapper .info-wrapper .personal-info-wrapper{display:none}}@media (max-width:419px){.home-blog .hero{height:450px}.home-blog .hero img{max-height:210px;margin:2rem auto 1.2rem}.home-blog .hero h1{margin:0 auto 1.8rem;font-size:2rem}.home-blog .hero .description{font-size:1.2rem}.home-blog .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home-blog .home-blog-wrapper{display:block!important}.home-blog .home-blog-wrapper .blog-list{width:auto}.home-blog .home-blog-wrapper .info-wrapper{margin-left:0}.home-blog .home-blog-wrapper .info-wrapper .personal-info-wrapper{display:none}}.sub-sidebar-wrapper[data-v-cb1513f6]{width:12rem;padding-left:0;list-style:none;font-size:12px}.sub-sidebar-wrapper li[data-v-cb1513f6]{padding:.2rem 0;cursor:pointer;border-left:1px solid var(--border-color)}.sub-sidebar-wrapper li a[data-v-cb1513f6]{padding:.35rem 1rem .35rem 0;color:var(--text-color)}.sub-sidebar-wrapper li:hover a[data-v-cb1513f6]{color:#3eaf7c}.sub-sidebar-wrapper li.active[data-v-cb1513f6]{border-left:1px solid #3eaf7c}.sub-sidebar-wrapper li.active a[data-v-cb1513f6]{color:#3eaf7c}.sub-sidebar-wrapper li.level-1[data-v-cb1513f6]{padding-left:.4rem}.sub-sidebar-wrapper li.level-2[data-v-cb1513f6]{padding-left:.9rem}.sub-sidebar-wrapper li.level-3[data-v-cb1513f6]{padding-left:1.5rem}.page-nav,.page .comments-wrapper,.page .page-edit{max-width:860px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav,.page .comments-wrapper,.page .page-edit{padding:2rem}}@media (max-width:419px){.page-nav,.page .comments-wrapper,.page .page-edit{padding:1.5rem}}.page{position:relative;padding-top:5rem;padding-bottom:2rem;padding-right:14rem;display:block}.page .side-bar{position:fixed;top:10rem;bottom:10rem;right:2rem;overflow-y:scroll}.page .side-bar::-webkit-scrollbar{width:0;height:0}.page .page-title{max-width:860px;margin:0 auto;padding:1rem 2.5rem;color:var(--text-color)}.page .theme-reco-content h2{position:relative;padding-left:.8rem}.page .theme-reco-content h2:before{position:absolute;left:0;top:3.5rem;display:block;height:1.8rem;content:"";border-left:5px solid #3eaf7c}.page .page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page .page-edit .edit-link{display:inline-block}.page .page-edit .edit-link a{color:#3eaf7c;margin-right:.25rem}.page .page-edit .last-updated{float:right;font-size:.9em}.page .page-edit .last-updated .prefix{font-weight:500;color:#3eaf7c}.page .page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid var(--border-color);padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page{padding-right:0}.page .side-bar{display:none}.page .page-title{padding:0 1rem}.page .page-edit .edit-link{margin-bottom:.5rem}.page .page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.footer-wrapper[data-v-c3cf170c]{padding:1.5rem 2.5rem;border-top:1px solid var(--border-color);text-align:center;color:#5b5b5b}.footer-wrapper a[data-v-c3cf170c]{font-size:14px}.footer-wrapper>span[data-v-c3cf170c]{margin-left:1rem}.footer-wrapper>span>i[data-v-c3cf170c]{margin-right:.5rem}.footer-wrapper .cyber-security img[data-v-c3cf170c]{margin-right:.5rem;width:20px;height:20px;vertical-align:middle}.footer-wrapper .cyber-security a[data-v-c3cf170c]{vertical-align:middle}@media (max-width:719px){.footer[data-v-c3cf170c]{text-align:left!important}.footer>span[data-v-c3cf170c]{display:block;margin-left:0;line-height:2rem}}.sidebar .sidebar-sub-headers{padding-left:1.5rem;font-size:.95em}.sidebar-sub-headers a.sidebar-link{margin:0 1rem 0 .6rem}a.sidebar-link{font-size:1em;font-weight:400;display:block!important;color:var(--text-color);padding:.35rem 1rem .35rem 2.25rem;line-height:1.7;background:var(--background-color);box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;background:var(--default-color-8);border-right:3px solid #3eaf7c}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500;background:transparent;color:#3eaf7c}.sidebar.sidebar::-webkit-scrollbar{width:0;height:0}.sidebar .personal-info-wrapper{display:none}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar ul.sidebar-links>li{background:#3eaf7c}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid var(--border-color);padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1em;line-height:1.7;font-weight:500}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links,.sidebar .personal-info-wrapper{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.password-shadow[data-v-25ba6db2]{overflow:hidden;position:relative;background:#fff;background:var(--background-color);box-sizing:border-box}.password-shadow .title[data-v-25ba6db2]{margin:8rem auto 2rem;width:100%;font-size:30px}.password-shadow .description[data-v-25ba6db2],.password-shadow .title[data-v-25ba6db2]{text-align:center;box-sizing:border-box;text-shadow:0 2px 4px rgba(0,0,0,.1);color:#242424;color:var(--text-color)}.password-shadow .description[data-v-25ba6db2]{margin:0 auto 6rem;font-size:22px;padding:0 10px}.password-shadow .inputBox[data-v-25ba6db2]{position:absolute;top:40%;left:0;right:0;margin:auto;display:block;max-width:700px;height:100px;background:#3eaf7c;border-radius:.25rem;padding-left:20px;box-sizing:border-box;opacity:.9}.password-shadow .inputBox input[data-v-25ba6db2]{width:570px;height:100%;border:none;padding:0 0 0 5px;color:#fff;background:none;outline:none;position:absolute;bottom:0;left:20px;opacity:0;font-size:50px}.password-shadow .inputBox input[data-v-25ba6db2]:focus{opacity:1}.password-shadow .inputBox input:focus~span[data-v-25ba6db2]{transform:translateY(-80px);color:#3eaf7c;font-size:30px;opacity:.8}.password-shadow .inputBox input:focus~button[data-v-25ba6db2]{opacity:1;width:100px}.password-shadow .inputBox span[data-v-25ba6db2]{width:200px;height:100%;display:block;position:absolute;line-height:100px;top:0;left:20px;color:#fff;cursor:text;transition:.5s;transform-origin:left top;font-size:30px}.password-shadow .inputBox button[data-v-25ba6db2]{overflow:hidden;width:0;height:98px;border-radius:.25rem;position:absolute;background:var(--background-color);right:1px;top:1px;border:0;padding:0;color:#3eaf7c;font-size:18px;outline:none;cursor:pointer;opacity:0;transition:.5s;z-index:1}.password-shadow .footer[data-v-25ba6db2]{position:absolute;left:0;right:0;bottom:10%;padding:2.5rem;text-align:center;color:#5b5b5b}.password-shadow .footer>span[data-v-25ba6db2]{margin-left:1rem}.password-shadow .footer>span>i[data-v-25ba6db2]{margin-right:.5rem}@media (max-width:719px){.password-shadow .inputBox[data-v-25ba6db2]{max-width:700px;height:60px;background:#3eaf7c;border-radius:.25rem;position:absolute;left:0;right:0;top:43%;margin:auto 20px;padding-left:0;box-sizing:border-box;opacity:.9}.password-shadow .inputBox input[data-v-25ba6db2]{width:60%;height:100%;border:none;padding:0 0 0 5px;color:#fff;background:none;outline:none;position:absolute;bottom:0;opacity:0;font-size:30px}.password-shadow .inputBox input[data-v-25ba6db2]:focus{opacity:1}.password-shadow .inputBox input:focus~span[data-v-25ba6db2]{transform:translateY(-60px);color:#3eaf7c;font-size:20px;opacity:.8}.password-shadow .inputBox input:focus~button[data-v-25ba6db2]{opacity:1;width:60px}.password-shadow .inputBox span[data-v-25ba6db2]{width:200px;height:100%;display:block;position:absolute;line-height:60px;top:0;left:20px;color:#fff;cursor:text;transition:.5s;transform-origin:left top;font-size:20px}.password-shadow .inputBox button[data-v-25ba6db2]{width:0;height:58px;border-radius:.25rem;position:absolute;right:1px;top:1px;border:0;padding:0;background:#fff;color:#3eaf7c;font-size:18px;outline:none;cursor:pointer;opacity:0;transition:.5s;z-index:1}.password-shadow .footer[data-v-25ba6db2]{margin-left:0}}@media (max-width:959px){.password-shadow .footer[data-v-25ba6db2]{margin-left:0}}.theme-container .loading-wrapper[data-v-1aefc0b4]{position:absolute;z-index:22;top:0;bottom:0;left:0;right:0;margin:auto}.theme-container .password-wrapper-out[data-v-1aefc0b4]{position:absolute;z-index:21;top:0;bottom:0;left:0;right:0;margin:auto}.theme-container .password-wrapper-in[data-v-1aefc0b4]{position:absolute;z-index:8;top:0;bottom:0;left:0;right:0}.theme-container .hide[data-v-1aefc0b4]{height:100vh;overflow:hidden;opacity:0}.fade-enter-active[data-v-1aefc0b4],.fade-leave-active[data-v-1aefc0b4]{transition:opacity .5s ease-in-out .5s}.fade-enter[data-v-1aefc0b4],.fade-leave-to[data-v-1aefc0b4]{opacity:0}@font-face{font-family:iconfont;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/fonts/iconfont.938fa69e.woff) format("woff"),url(/assets/fonts/iconfont.ecabaf00.ttf) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reco-reddit:before{content:"\e701"}.reco-instagram:before{content:"\e6fc"}.reco-language:before{content:"\e65e"}.reco-bitbucket:before{content:"\eb57"}.reco-faq:before{content:"\e643"}.reco-lock:before{content:"\e60f"}.reco-sticky:before{content:"\e62b"}.reco-blog:before{content:"\e61d"}.reco-mail:before{content:"\e624"}.reco-friend:before{content:"\e62f"}.reco-rss:before{content:"\f09d"}.reco-fullscreen:before{content:"\e602"}.reco-api:before{content:"\e662"}.reco-jianshu:before{content:"\e60c"}.reco-mayun:before{content:"\e6d0"}.reco-weibo:before{content:"\e612"}.reco-bilibili:before{content:"\e630"}.reco-douyin:before{content:"\e654"}.reco-v2ex:before{content:"\e62a"}.reco-csdn:before{content:"\e609"}.reco-juejin:before{content:"\e613"}.reco-wechat:before{content:"\e720"}.reco-qq:before{content:"\e67b"}.reco-facebook:before{content:"\e606"}.reco-twitter:before{content:"\e60b"}.reco-zhihu:before{content:"\e605"}.reco-douban:before{content:"\e603"}.reco-taobao:before{content:"\e6a5"}.reco-toutiao:before{content:"\e6b7"}.reco-linkedin:before{content:"\e668"}.reco-document:before{content:"\e67a"}.reco-sf:before{content:"\e610"}.reco-coding:before{content:"\e601"}.reco-gitlab:before{content:"\e63c"}.reco-suggestion:before{content:"\e608"}.reco-tongzhi:before{content:"\e764"}.reco-huawei:before{content:"\e6b9"}.reco-beian:before{content:"\e667"}.reco-color:before{content:"\eae9"}.reco-other:before{content:"\e60e"}.reco-copyright:before{content:"\ef87"}.reco-theme:before{content:"\e7e8"}.reco-eye:before{content:"\e669"}.reco-menu:before{content:"\e67c"}.reco-up:before{content:"\e68b"}.reco-npm:before{content:"\e88d"}.reco-search:before{content:"\e611"}.reco-message:before{content:"\e634"}.reco-three:before{content:"\e644"}.reco-github:before{content:"\e628"}.reco-bokeyuan:before{content:"\e626"}.reco-date:before{content:"\e63b"}.reco-account:before{content:"\e607"}.reco-category:before{content:"\e61e"}.reco-home:before{content:"\e65b"}.reco-tag:before{content:"\e633"}.content{margin:4rem auto 0;max-width:800px;padding:0 2rem}.mod_404 .desc .desc_link{display:inline-block;background:#424242!important;color:#fff;padding:6px 20px!important;text-decoration:none!important;border-radius:4px}@media screen and (max-width:720px){.mod_404 .desc{margin:50px 0}.mod_404 .wrapper{margin:0!important;padding-top:20px}}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.categories-wrapper[data-v-1e68bc8d]{max-width:860px;margin:0 auto;padding:4.6rem 2.5rem 0}.categories-wrapper .category-wrapper[data-v-1e68bc8d]{list-style:none;padding-left:0}.categories-wrapper .category-wrapper .category-item[data-v-1e68bc8d]{vertical-align:middle;margin:4px 8px 10px;display:inline-block;cursor:pointer;border-radius:.25rem;font-size:13px;box-shadow:var(--box-shadow);transition:all .5s;background-color:var(--background-color)}.categories-wrapper .category-wrapper .category-item.active[data-v-1e68bc8d],.categories-wrapper .category-wrapper .category-item[data-v-1e68bc8d]:hover{background:#3eaf7c}.categories-wrapper .category-wrapper .category-item.active a span.category-name[data-v-1e68bc8d],.categories-wrapper .category-wrapper .category-item:hover a span.category-name[data-v-1e68bc8d]{color:#fff}.categories-wrapper .category-wrapper .category-item.active a span.category-name .post-num[data-v-1e68bc8d],.categories-wrapper .category-wrapper .category-item:hover a span.category-name .post-num[data-v-1e68bc8d]{color:#3eaf7c}.categories-wrapper .category-wrapper .category-item a[data-v-1e68bc8d]{display:flex;box-sizing:border-box;width:100%;height:100%;padding:8px 14px;justify-content:space-between;align-items:center;color:#666}.categories-wrapper .category-wrapper .category-item a .post-num[data-v-1e68bc8d]{margin-left:4px;width:1.2rem;height:1.2rem;text-align:center;line-height:1.2rem;border-radius:.25rem;font-size:.7rem;color:#fff}@media (max-width:719px){.categories-wrapper[data-v-1e68bc8d]{padding:4.6rem 1rem 0}.page-edit .edit-link[data-v-1e68bc8d]{margin-bottom:.5rem}.page-edit .last-updated[data-v-1e68bc8d]{font-size:.8em;float:none;text-align:left}}.content__default code{color:#505050;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:var(--code-color);border-radius:3px}.content__default code .token.deleted{color:#ec5975}.content__default code .token.inserted{color:#3eaf7c}.content__default pre,.content__default pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.content__default pre[class*=language-] code,.content__default pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:2.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:3.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:2.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:2.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:var(--code-color);border-color:#67cc86}.custom-block.tip .title{color:#67cc86}.custom-block.warning{background-color:var(--code-color);border-color:#fb9b5f}.custom-block.warning .title{color:#fb9b5f}.custom-block.danger{background-color:var(--code-color);border-color:#f26d6d}.custom-block.danger .title{color:#f26d6d}.custom-block.right{color:rgba(0,0,0,.4);font-size:.9rem;text-align:right}.custom-block.theorem{margin:1rem 0;padding:.1rem 1.5rem;border-radius:.4rem;background-color:var(--code-color)}.custom-block.theorem .title{font-weight:700}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1em 0;padding:1rem;background-color:var(--code-color)}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid var(--text-color-sub)}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid var(--text-color-sub)}.arrow.right{border-left:6px solid var(--text-color-sub)}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid var(--text-color-sub)}.content__default:not(.custom){max-width:860px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.content__default:not(.custom){padding:2rem}}@media (max-width:419px){.content__default:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0}body{font-family:Ubuntu,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;color:var(--text-color);background-color:var(--background-color)}.page,.password-wrapper-in{overflow-x:hidden;margin-left:18rem}.navbar{z-index:20;right:0;height:3.6rem;box-sizing:border-box}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none;background-color:rgba(0,0,0,.65)}.sidebar{font-size:16px;background-color:var(--background-color);width:18rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid var(--border-color);overflow-y:auto}.content__default:not(.custom) a:hover{text-decoration:underline}.content__default:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.content__default:not(.custom) img{max-width:100%}.content__default:not(.custom) :first-child{margin-top:0}.content__default.custom{padding:0;margin:0}.abstract img,.content__default.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:.9rem;color:#999;border-left:.25rem solid #999;background-color:var(--code-color);margin:.5rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.25}.content__default:not(.custom)>h1,.content__default:not(.custom)>h2,.content__default:not(.custom)>h3,.content__default:not(.custom)>h4,.content__default:not(.custom)>h5,.content__default:not(.custom)>h6{margin-top:-1.5rem;padding-top:3.6rem;margin-bottom:1rem}.content__default:not(.custom)>h1:first-child,.content__default:not(.custom)>h2:first-child,.content__default:not(.custom)>h3:first-child,.content__default:not(.custom)>h4:first-child,.content__default:not(.custom)>h5:first-child,.content__default:not(.custom)>h6:first-child{margin-top:-3.5rem}h1{font-size:1.6rem}h2{font-size:1.4rem}h3{font-size:1.2rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:2.2}hr{border:0;border-top:1px solid var(--border-color)}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid var(--border-color)}tr:nth-child(2n){background-color:var(--code-color)}td,th{border:1px solid var(--border-color);padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .content__default:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page,.theme-container.no-sidebar .password-wrapper-in{margin-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:14.76rem}.page,.password-wrapper-in{margin-left:14.76rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page,.password-wrapper-in{margin-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}.password-shadow{padding-left:0}}@media (max-width:419px){h1{font-size:1.9rem}.content__default div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.iconfont{font-family:iconfont,Ubuntu,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important;font-size:13px;color:var(--text-color-sub)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb:vertical{height:5px;background-color:#3eaf7c}::-webkit-scrollbar-thumb:horizontal{width:5px;background-color:#3eaf7c}.vuepress-flowchart{overflow:auto}.sw-update-popup{border-radius:.25rem!important;box-shadow:var(--box-shadow)!important;color:var(--text-color)!important;background:var(--background-color)!important;border:none!important}.sw-update-popup>button{background:#3eaf7c;border-radius:.25rem;color:#fff;-webkit-tap-highlight-color:rgba(0,0,0,0);border:none}.tag-wrapper[data-v-25a0fadc]{max-width:860px;margin:0 auto;padding:4.6rem 2.5rem 0}@media (max-width:719px){.tag-wrapper[data-v-25a0fadc]{padding:4.6rem 1rem 0}}.tags-wrapper[data-v-615c9794]{max-width:860px;margin:0 auto;padding:4.6rem 2.5rem 0}@media (max-width:719px){.tags-wrapper[data-v-615c9794]{padding:5rem .6rem 0}}.timeline-wrapper[data-v-42b59284]{max-width:860px;margin:0 auto;padding:4.6rem 2.5rem 0}.timeline-wrapper .timeline-content[data-v-42b59284]{box-sizing:border-box;position:relative;list-style:none}.timeline-wrapper .timeline-content[data-v-42b59284]:after{content:" ";position:absolute;top:14px;left:0;z-index:-1;margin-left:-2px;width:4px;height:100%;background:var(--border-color)}.timeline-wrapper .timeline-content .desc[data-v-42b59284],.timeline-wrapper .timeline-content .year[data-v-42b59284]{position:relative;color:var(--text-color);font-size:16px}.timeline-wrapper .timeline-content .desc[data-v-42b59284]:before,.timeline-wrapper .timeline-content .year[data-v-42b59284]:before{content:" ";position:absolute;z-index:2;left:-20px;top:50%;margin-left:-4px;margin-top:-4px;width:8px;height:8px;background:var(--background-color);border:1px solid var(--border-color);border-radius:50%}.timeline-wrapper .timeline-content .year[data-v-42b59284]{margin:80px 0 0;color:var(--text-color);font-weight:700;font-size:26px}.timeline-wrapper .timeline-content .year-wrapper[data-v-42b59284]{padding-left:0!important}.timeline-wrapper .timeline-content .year-wrapper li[data-v-42b59284]{display:flex;padding:30px 0 10px;list-style:none;border-bottom:1px dashed var(--border-color);position:relative}.timeline-wrapper .timeline-content .year-wrapper li:hover .date[data-v-42b59284]{color:#3eaf7c}.timeline-wrapper .timeline-content .year-wrapper li:hover .date[data-v-42b59284]:before{background:#3eaf7c}.timeline-wrapper .timeline-content .year-wrapper li:hover .title[data-v-42b59284]{color:#3eaf7c}.timeline-wrapper .timeline-content .year-wrapper li .date[data-v-42b59284]{width:40px;line-height:30px;color:var(--text-color-sub);font-size:12px}.timeline-wrapper .timeline-content .year-wrapper li .date[data-v-42b59284]:before{content:" ";position:absolute;left:-18px;top:41px;width:6px;height:6px;margin-left:-4px;background:var(--background-color);border-radius:50%;border:1px solid var(--border-color);z-index:2}.timeline-wrapper .timeline-content .year-wrapper li .title[data-v-42b59284]{line-height:30px;color:var(--text-color-sub);font-size:16px;cursor:pointer}@media (max-width:719px){.timeline-wrapper[data-v-42b59284]{margin:0 1.2rem}} \ No newline at end of file diff --git a/assets/fonts/iconfont.938fa69e.woff b/assets/fonts/iconfont.938fa69e.woff new file mode 100644 index 0000000000000000000000000000000000000000..d2e44dc6f44690de4844e4d23c770c52563523fa GIT binary patch literal 11476 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/iconfont.ecabaf00.ttf b/assets/fonts/iconfont.ecabaf00.ttf new file mode 100644 index 0000000000000000000000000000000000000000..eb85b129061be8a4575dc0faf8724bb246641948 GIT binary patch literal 17648 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 B=I#Ih literal 0 HcmV?d00001 diff --git a/assets/img/bg.2cfdbb33.svg b/assets/img/bg.2cfdbb33.svg new file mode 100644 index 0000000..f576b34 --- /dev/null +++ b/assets/img/bg.2cfdbb33.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/js/1.e2979132.js b/assets/js/1.e2979132.js new file mode 100644 index 0000000..7cc957e --- /dev/null +++ b/assets/js/1.e2979132.js @@ -0,0 +1,8 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{490:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));n(44),n(45);var o=n(96);function r(){var e=Object(o.d)();if(!e)throw new Error("must be called in setup");return e||{}}},491:function(e,t,n){"use strict";n.d(t,"b",(function(){return g})),n.d(t,"a",(function(){return y}));var o=n(547),r=n.n(o),a=n(25),i=n(26),s=n(168),c=n(167),l=n(108),u=(n(265),n(8),n(162),n(93),n(27),n(63),n(64),n(160),n(548),n(509),n(1)),f=n(7),d=function(e,t,n,o){var r,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"===("undefined"==typeof Reflect?"undefined":Object(l.a)(Reflect))&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(i=(a<3?r(i):a>3?r(t,n,i):r(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i},p=/^(\w+)\-/,h=function(e){Object(s.a)(n,e);var t=Object(c.a)(n);function n(){return Object(a.a)(this,n),t.apply(this,arguments)}return Object(i.a)(n,[{key:"getClass",value:function(e){return p.test(e)?e.replace(p,(function(){return"reco"===(arguments.length<=1?void 0:arguments[1])?"iconfont ".concat(arguments.length<=0?void 0:arguments[0]):"".concat(arguments.length<=1?void 0:arguments[1]," ").concat(arguments.length<=0?void 0:arguments[0])})):e}},{key:"go",value:function(e){""!==e&&window.open(e)}},{key:"render",value:function(){var e=arguments[0];return e("i",r()([{},{class:this.getClass(this.icon),on:{click:this.go.bind(this,this.link)}}]),[this.$slots.default])}}]),n}(u.default.extend({props:{icon:{type:String,default:""},link:{type:String,default:""}}})),g=h=d([f.b],h),v=n(17),m=function(e,t,n,o){var r,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"===("undefined"==typeof Reflect?"undefined":Object(l.a)(Reflect))&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(i=(a<3?r(i):a>3?r(t,n,i):r(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i},b=function(e){Object(s.a)(n,e);var t=Object(c.a)(n);function n(){return Object(a.a)(this,n),t.apply(this,arguments)}return Object(i.a)(n,[{key:"setStyle",value:function(e){e.style.transition="transform ".concat(this.duration,"s ease-in-out ").concat(this.delay,"s, opacity ").concat(this.duration,"s ease-in-out ").concat(this.delay,"s"),e.style.transform=this.transform[0],e.style.opacity=0}},{key:"unsetStyle",value:function(e){e.style.transform=this.transform[1],e.style.opacity=1}},{key:"render",value:function(){var e=arguments[0];return e("transition",{attrs:Object(v.a)({},{name:"module"}),on:Object(v.a)({},{enter:this.setStyle,appear:this.setStyle,"before-leave":this.setStyle,"after-appear":this.unsetStyle,"after-enter":this.unsetStyle})},[this.$slots.default])}}]),n}(u.default.extend({props:{delay:{type:String,default:"0"},duration:{type:String,default:".25"},transform:{type:Array,default:function(){return["translateY(-20px)","translateY(0)"]}}}})),y=b=m([f.b],b)},504:function(e,t,n){"use strict";n(90);t.a={data:function(){return{recoShowModule:!1}},mounted:function(){this.recoShowModule=!0},watch:{$route:function(e,t){var n=this;e.path!==t.path&&(this.recoShowModule=!1,setTimeout((function(){n.recoShowModule=!0}),200))}}}},507:function(e,t,n){"use strict";n(8),n(39),n(49),n(65);var o=n(159),r=(n(264),n(17)),a=(n(512),n(491)),i=n(490),s=Object(o.b)({components:{RecoIcon:a.b},setup:function(e,t){var n=Object(i.a)(),a=Object(o.f)({query:"",focused:!1,focusIndex:0,placeholder:void 0}),s=Object(o.a)((function(){return a.focused&&l.value&&l.value.length})),c=function(e){for(var t in n.$site.locales||{})if("/"!==t&&0===e.path.indexOf(t))return t;return"/"},l=Object(o.a)((function(){var e=a.query.trim().toLowerCase();if(e){for(var t=n.$site.pages,o=n.$site.themeConfig.searchMaxSuggestions,r=n.$localePath,i=function(t){return t&&t.title&&t.title.toLowerCase().indexOf(e)>-1},s=[],l=0;l=o);l++){var u=t[l];if(c(u)===r)if(i(u))s.push(u);else if(u.headers)for(var f=0;f=o);f++){var d=u.headers[f];i(d)&&s.push(Object.assign({},u,{path:u.path+"#"+d.slug,header:d}))}}return s}})),u=Object(o.a)((function(){return(n.$site.themeConfig.nav||[]).length+(n.$site.repo?1:0)<=2}));return Object(r.a)({showSuggestions:s,suggestions:l,alignRight:u,onUp:function(){s.value&&(a.focusIndex>0?a.focusIndex--:a.focusIndex=l.value.length-1)},onDown:function(){s.value&&(a.focusIndex "+e._s(t.header.title))]):e._e()])])})),0):e._e()],1)}),[],!1,null,null,null).exports,u=(n(552),Object(c.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-button",on:{click:function(t){return e.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),f=n(66),d=(n(92),n(27),n(64),n(121),n(160),n(553),n(509),n(123),n(63),n(269),n(270),n(271),n(164),n(272),n(510)),p=n(544),h=Object(o.b)({components:{NavLink:d.a,DropdownTransition:p.a,RecoIcon:a.b},props:{item:{required:!0}},setup:function(e,t){var n=Object(o.g)(!1);return{open:n,toggle:function(){n.value=!n.value}}}}),g=(n(555),Object(c.a)(h,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"dropdown-wrapper",class:{open:e.open}},[n("a",{staticClass:"dropdown-title",on:{click:e.toggle}},[n("span",{staticClass:"title"},[n("reco-icon",{attrs:{icon:""+e.item.icon}}),e._v("\n "+e._s(e.item.text)+"\n ")],1),e._v(" "),n("span",{staticClass:"arrow",class:e.open?"down":"right"})]),e._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:e.open,expression:"open"}],staticClass:"nav-dropdown"},e._l(e.item.items,(function(t,o){return n("li",{key:t.link||o,staticClass:"dropdown-item"},["links"===t.type?n("h4",[e._v(e._s(t.text))]):e._e(),e._v(" "),"links"===t.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},e._l(t.items,(function(e){return n("li",{key:e.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:e}})],1)})),0):n("NavLink",{attrs:{item:t}})],1)})),0)])],1)}),[],!1,null,null,null).exports),v=n(50),m=Object(o.b)({components:{NavLink:d.a,DropdownLink:g,RecoIcon:a.b},setup:function(e,t){var n=Object(i.a)(),r=Object(o.a)((function(){return n.$themeLocaleConfig.nav||n.$themeConfig.nav||[]})),a=Object(o.a)((function(){var e=n.$site.locales||{};if(e&&Object.keys(e).length>1){var t=n.$page.path,o=n.$router.options.routes,a=n.$themeConfig.locales||{},i={text:n.$themeLocaleConfig.selectText||"Languages",items:Object.keys(e).map((function(r){var i,s=e[r],c=a[r]&&a[r].label||s.lang;return s.lang===n.$lang?i=t:(i=t.replace(n.$localeConfig.path,r),o.some((function(e){return e.path===i}))||(i=r)),{text:c,link:i}}))};return[].concat(Object(f.a)(r.value),[i])}var s=n.$themeConfig.blogConfig||{},c=r.value.some((function(e){return!s.category||e.text===(s.category.text||"分类")})),l=r.value.some((function(e){return!s.tag||e.text===(s.tag.text||"标签")}));if(!c&&Object.hasOwnProperty.call(s,"category")){var u=s.category,d=n.$categories;r.value.splice(parseInt(u.location||2)-1,0,{items:d.list.map((function(e){return e.link=e.path,e.text=e.name,e})),text:u.text||n.$recoLocales.category,type:"links",icon:"reco-category"})}if(!l&&Object.hasOwnProperty.call(s,"tag")){var p=s.tag;r.value.splice(parseInt(p.location||3)-1,0,{link:"/tag/",text:p.text||n.$recoLocales.tag,type:"links",icon:"reco-tag"})}return r.value})),s=Object(o.a)((function(){return(n.nav||[]).map((function(e){return Object.assign(Object(v.j)(e),{items:(e.items||[]).map(v.j)})}))})),c=Object(o.a)((function(){var e=n.$themeConfig.repo;return e?/^https?:/.test(e)?e:"https://github.com/".concat(e):""})),l=Object(o.a)((function(){if(!n.repoLink)return"";if(n.$themeConfig.repoLabel)return n.$themeConfig.repoLabel;for(var e=n.repoLink.match(/^https?:\/\/[^/]+/)[0],t=["GitHub","GitLab","Bitbucket"],o=0;o=18?"dark":"light")}}else w(e)}var C={name:"ModeOptions",data:function(){return{modeOptions:[{mode:"dark",title:"dark"},{mode:"auto",title:"auto"},{mode:"light",title:"light"}],currentMode:"auto"}},mounted:function(){this.currentMode=localStorage.getItem("mode")||this.$themeConfig.mode||"auto";var e=this;window.matchMedia("(prefers-color-scheme: dark)").addListener((function(){"auto"===e.$data.currentMode&&O(e.$data.currentMode)})),window.matchMedia("(prefers-color-scheme: light)").addListener((function(){"auto"===e.$data.currentMode&&O(e.$data.currentMode)})),O(this.currentMode)},methods:{selectMode:function(e){e!==this.currentMode&&(this.currentMode=e,O(e),localStorage.setItem("mode",e))},getClass:function(e){return e!==this.currentMode?e:"".concat(e," active")}}},x=(n(558),Object(c.a)(C,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"mode-options"},[n("h4",{staticClass:"title"},[e._v("Choose mode")]),e._v(" "),n("ul",{staticClass:"color-mode-options"},e._l(e.modeOptions,(function(t,o){return n("li",{key:o,class:e.getClass(t.mode),on:{click:function(n){return e.selectMode(t.mode)}}},[e._v(e._s(t.title))])})),0)])}),[],!1,null,null,null).exports),$={name:"UserSettings",directives:{"click-outside":_.a},components:{ModePicker:x,RecoIcon:a.b,ModuleTransition:a.a},data:function(){return{showMenu:!1}},mounted:function(){var e=this.$themeConfig.mode||"auto";!1===this.$themeConfig.modePicker&&("auto"===e&&(window.matchMedia("(prefers-color-scheme: dark)").addListener((function(){O(e)})),window.matchMedia("(prefers-color-scheme: light)").addListener((function(){O(e)}))),O(e))},methods:{hideMenu:function(){this.showMenu=!1}}},j=(n(559),Object(c.a)($,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return!1!==e.$themeConfig.modePicker?n("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.hideMenu,expression:"hideMenu"}],staticClass:"color-picker"},[n("a",{staticClass:"color-button",on:{click:function(t){t.preventDefault(),e.showMenu=!e.showMenu}}},[n("reco-icon",{attrs:{icon:"reco-color"}})],1),e._v(" "),n("ModuleTransition",{attrs:{transform:["translate(-50%, 0)","translate(-50%, -10px)"]}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.showMenu,expression:"showMenu"}],staticClass:"color-picker-menu"},[n("ModePicker")],1)])],1):e._e()}),[],!1,null,null,null).exports),S=Object(o.b)({components:{SidebarButton:u,NavLinks:b,SearchBox:l,AlgoliaSearchBox:{},Mode:j},setup:function(e,t){var n=Object(i.a)(),r=Object(o.g)(null),a=Object(o.a)((function(){return n.$themeLocaleConfig.algolia||n.$themeConfig.algolia||{}})),s=Object(o.a)((function(){a.value&&a.value.apiKey&&a.value.indexName}));function c(e,t){return e.ownerDocument.defaultView.getComputedStyle(e,null)[t]}return Object(o.d)((function(){var e=parseInt(c(n.$el,"paddingLeft"))+parseInt(c(n.$el,"paddingRight")),t=function(){document.documentElement.clientWidth<719?r.value=null:r.value=n.$el.offsetWidth-e-(n.$refs.siteName&&n.$refs.siteName.offsetWidth||0)};t(),window.addEventListener("resize",t,!1)})),{linksWrapMaxWidth:r,algolia:a,isAlgoliaSearch:s,css:c}}}),L=(n(560),Object(c.a)(S,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("header",{staticClass:"navbar"},[n("SidebarButton",{on:{"toggle-sidebar":function(t){return e.$emit("toggle-sidebar")}}}),e._v(" "),n("router-link",{staticClass:"home-link",attrs:{to:e.$localePath}},[e.$themeConfig.logo?n("img",{staticClass:"logo",attrs:{src:e.$withBase(e.$themeConfig.logo),alt:e.$siteTitle}}):e._e(),e._v(" "),e.$siteTitle?n("span",{ref:"siteName",staticClass:"site-name"},[e._v(e._s(e.$siteTitle))]):e._e()]),e._v(" "),n("div",{staticClass:"links",style:e.linksWrapMaxWidth?{"max-width":e.linksWrapMaxWidth+"px"}:{}},[n("Mode"),e._v(" "),e.isAlgoliaSearch?n("AlgoliaSearchBox",{attrs:{options:e.algolia}}):!1!==e.$themeConfig.search&&!1!==e.$frontmatter.search?n("SearchBox"):e._e(),e._v(" "),n("NavLinks",{staticClass:"can-hide"})],1)],1)}),[],!1,null,null,null).exports),I=n(542),M=Object(o.b)({name:"Sidebar",components:{SidebarLinks:I.default,NavLinks:b},props:["items"]}),T=(n(563),Object(c.a)(M,(function(){var e=this.$createElement,t=this._self._c||e;return t("aside",{staticClass:"sidebar"},[this._t("top"),this._v(" "),t("NavLinks"),this._v(" "),t("SidebarLinks",{attrs:{depth:0,items:this.items}}),this._v(" "),this._t("bottom")],2)}),[],!1,null,null,null).exports),P=n(543),E=(n(90),n(525)),B=n.n(E),N=Object(o.b)({name:"Password",components:{ModuleTransition:a.a,RecoIcon:a.b},props:{isPage:{type:Boolean,default:!1}},setup:function(e,t){var n=Object(i.a)(),r=(new Date).getFullYear(),a=Object(o.g)(""),s=Object(o.g)("Konck! Knock!"),c=Object(o.a)((function(){var e;return null==n||null===(e=n.$parent)||void 0===e?void 0:e.recoShowModule})),l=Object(o.h)(e).isPage;return{warningText:s,year:r,key:a,recoShowModule:c,inter:function(){var e=B()(a.value.trim()),t="pageKey".concat(window.location.pathname),o=l.value?t:"key";if(sessionStorage.setItem(o,e),l.value?function(){var e=n.$frontmatter.keys.map((function(e){return e.toLowerCase()})),t="pageKey".concat(window.location.pathname);return e&&e.indexOf(sessionStorage.getItem(t))>-1}():n.$themeConfig.keyPage.keys.map((function(e){return e.toLowerCase()})).indexOf(sessionStorage.getItem("key"))>-1){s.value="Key Success";var r=document.getElementById("box").style.width;n.$refs.passwordBtn.style.width="".concat(r-2,"px"),n.$refs.passwordBtn.style.opacity=1,setTimeout((function(){window.location.reload()}),800)}else s.value="Key Error"},inputFocus:function(){s.value="Input Your Key"},inputBlur:function(){s.value="Konck! Knock!"}}}}),A=(n(567),Object(c.a)(N,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"password-shadow"},[n("ModuleTransition",[n("h3",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"title"},[e._v(e._s(e.isPage?e.$frontmatter.title:e.$site.title||e.$localeConfig.title))])]),e._v(" "),n("ModuleTransition",{attrs:{delay:"0.08"}},[e.recoShowModule&&!e.isPage?n("p",{staticClass:"description"},[e._v(e._s(e.$site.description||e.$localeConfig.description))]):e._e()]),e._v(" "),n("ModuleTransition",{attrs:{delay:"0.16"}},[n("label",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"inputBox",attrs:{id:"box"}},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.key,expression:"key"}],attrs:{type:"password"},domProps:{value:e.key},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.inter.apply(null,arguments)},focus:e.inputFocus,blur:e.inputBlur,input:function(t){t.target.composing||(e.key=t.target.value)}}}),e._v(" "),n("span",[e._v(e._s(e.warningText))]),e._v(" "),n("button",{ref:"passwordBtn",on:{click:e.inter}},[e._v("OK")])])]),e._v(" "),n("ModuleTransition",{attrs:{delay:"0.24"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"footer"},[n("span",[n("reco-icon",{attrs:{icon:"reco-theme"}}),e._v(" "),n("a",{attrs:{target:"blank",href:"https://vuepress-theme-reco.recoluan.com"}},[e._v("vuePress-theme-reco")])],1),e._v(" "),n("span",[n("reco-icon",{attrs:{icon:"reco-copyright"}}),e._v(" "),n("a",[e.$themeConfig.author?n("span",[e._v(e._s(e.$themeConfig.author))]):e._e(),e._v("\n   \n "),e.$themeConfig.startYear&&e.$themeConfig.startYear!=e.year?n("span",[e._v(e._s(e.$themeConfig.startYear)+" - ")]):e._e(),e._v("\n "+e._s(e.year)+"\n ")])],1)])])],1)}),[],!1,null,"25ba6db2",null).exports),H=n(568),R=Object(o.b)({components:{Sidebar:T,Navbar:L,Password:A,PersonalInfo:P.a},props:{sidebar:{type:Boolean,default:!0},sidebarItems:{type:Array,default:function(){return[]}},showModule:{type:Boolean,default:!1}},setup:function(e,t){var n=Object(i.a)(),r=Object(o.g)(!1),a=Object(o.g)(!0),s=Object(o.g)(!0),c=Object(o.g)(!0),l=Object(o.a)((function(){return e.sidebarItems.length>0})),u=Object(o.a)((function(){return n.$themeConfig.keyPage&&!0===n.$themeConfig.keyPage.absoluteEncryption})),f=Object(o.a)((function(){var e=n.$site.themeConfig;return!1!==n.$page.frontmatter.navbar&&!1!==e.navbar&&(n.$title||e.logo||e.repo||e.nav||n.$themeLocaleConfig.nav)})),d=Object(o.a)((function(){var e={"no-navbar":!f.value,"sidebar-open":r.value,"no-sidebar":!l.value},t=(n.$frontmatter||{}).pageClass;return t&&(e[t]=!0),e})),p=function(){var e=n.$themeConfig.keyPage;if(e&&e.keys&&0!==e.keys.length){var t=e.keys;t=t.map((function(e){return e.toLowerCase()})),a.value=t&&t.indexOf(sessionStorage.getItem("key"))>-1}else a.value=!0},h=function(){var e=n.$frontmatter.keys;e&&0!==e.length?(e=e.map((function(e){return e.toLowerCase()})),s.value=e.indexOf(sessionStorage.getItem("pageKey".concat(window.location.pathname)))>-1):s.value=!0},g=Object(o.h)(e).showModule,v=Object(o.a)((function(){return!!c.value||g.value}));return Object(o.d)((function(){var e;n.$router.afterEach((function(){r.value=!1})),p(),h(),e=n.$frontmatter.home&&null==sessionStorage.getItem("firstLoad")?1e3:0,Object(H.setTimeout)((function(){c.value=!1,null==sessionStorage.getItem("firstLoad")&&sessionStorage.setItem("firstLoad",!1)}),e)})),{isSidebarOpen:r,absoluteEncryption:u,shouldShowNavbar:f,shouldShowSidebar:l,pageClasses:d,hasKey:p,hasPageKey:h,isHasKey:a,isHasPageKey:s,toggleSidebar:function(e){r.value="boolean"==typeof e?e:!r.value},firstLoad:c,recoShowModule:v}},watch:{$frontmatter:function(e,t){this.hasKey(),this.hasPageKey()}}}),K=(n(570),Object(c.a)(R,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"theme-container",class:e.pageClasses},[e.absoluteEncryption?n("div",[n("transition",{attrs:{name:"fade"}},[e.firstLoad?n("LoadingPage"):e.isHasKey?n("div",[e.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":e.toggleSidebar}}):e._e(),e._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(t){return e.toggleSidebar(!1)}}}),e._v(" "),n("Sidebar",{attrs:{items:e.sidebarItems},on:{"toggle-sidebar":e.toggleSidebar}},[n("PersonalInfo",{attrs:{slot:"top"},slot:"top"}),e._v(" "),e._t("sidebar-bottom",null,{slot:"bottom"})],2),e._v(" "),e.isHasPageKey?e._t("default"):n("Password",{attrs:{isPage:!0}})],2):n("Password")],1)],1):n("div",[n("transition",{attrs:{name:"fade"}},[n("LoadingPage",{directives:[{name:"show",rawName:"v-show",value:e.firstLoad,expression:"firstLoad"}],staticClass:"loading-wrapper"})],1),e._v(" "),n("transition",{attrs:{name:"fade"}},[n("Password",{directives:[{name:"show",rawName:"v-show",value:!e.firstLoad&&!e.isHasKey,expression:"!firstLoad && !isHasKey"}],key:"out",staticClass:"password-wrapper-out"})],1),e._v(" "),n("div",{class:{hide:e.firstLoad||!e.isHasKey}},[e.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":e.toggleSidebar}}):e._e(),e._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(t){return e.toggleSidebar(!1)}}}),e._v(" "),n("Sidebar",{attrs:{items:e.sidebarItems},on:{"toggle-sidebar":e.toggleSidebar}},[n("PersonalInfo",{attrs:{slot:"top"},slot:"top"}),e._v(" "),e._t("sidebar-bottom",null,{slot:"bottom"})],2),e._v(" "),n("Password",{directives:[{name:"show",rawName:"v-show",value:!e.isHasPageKey,expression:"!isHasPageKey"}],key:"in",staticClass:"password-wrapper-in",attrs:{isPage:!0}}),e._v(" "),n("div",{class:{hide:!e.isHasPageKey}},[e._t("default")],2)],1)],1)])}),[],!1,null,"1aefc0b4",null));t.a=K.exports},509:function(e,t,n){"use strict";var o=n(2),r=n(549);o({target:"String",proto:!0,forced:n(550)("link")},{link:function(e){return r(this,"a","href",e)}})},510:function(e,t,n){"use strict";n(509),n(121),n(8),n(92);var o=n(159),r=n(50),a=n(491),i=n(490),s=Object(o.b)({components:{RecoIcon:a.b},props:{item:{required:!0}},setup:function(e,t){var n=Object(i.a)(),a=Object(o.h)(e).item,s=Object(o.a)((function(){return Object(r.d)(a.value.link)})),c=Object(o.a)((function(){return n.$site.locales?Object.keys(n.$site.locales).some((function(e){return e===s.value})):"/"===s.value}));return{link:s,exact:c,isExternal:r.f,isMailto:r.g,isTel:r.h}}}),c=n(15),l=Object(c.a)(s,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal(e.link)?n("a",{staticClass:"nav-link external",attrs:{href:e.link,target:e.isMailto(e.link)||e.isTel(e.link)?null:"_blank",rel:e.isMailto(e.link)||e.isTel(e.link)?null:"noopener noreferrer"}},[n("reco-icon",{attrs:{icon:""+e.item.icon}}),e._v("\n "+e._s(e.item.text)+"\n "),n("OutboundLink")],1):n("router-link",{staticClass:"nav-link",attrs:{to:e.link,exact:e.exact}},[n("reco-icon",{attrs:{icon:""+e.item.icon}}),e._v("\n "+e._s(e.item.text)+"\n")],1)}),[],!1,null,null,null);t.a=l.exports},512:function(e,t,n){"use strict";var o=n(2),r=n(165).trim;o({target:"String",proto:!0,forced:n(546)("trim")},{trim:function(){return r(this)}})},513:function(e,t,n){},514:function(e,t,n){},515:function(e,t,n){},516:function(e,t,n){},517:function(e,t,n){},518:function(e,t,n){},519:function(e,t,n){},520:function(e,t,n){},521:function(e,t,n){},522:function(e,t,n){},523:function(e,t,n){},524:function(e,t,n){},525:function(e,t,n){var o,r,a,i,s;o=n(565),r=n(526).utf8,a=n(566),i=n(526).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?i.stringToBytes(e):r.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||(e=e.toString());for(var n=o.bytesToWords(e),c=8*e.length,l=1732584193,u=-271733879,f=-1732584194,d=271733878,p=0;p>>24)|4278255360&(n[p]<<24|n[p]>>>8);n[c>>>5]|=128<>>9<<4)]=c;var h=s._ff,g=s._gg,v=s._hh,m=s._ii;for(p=0;p>>0,u=u+y>>>0,f=f+_>>>0,d=d+k>>>0}return o.endian([l,u,f,d])})._ff=function(e,t,n,o,r,a,i){var s=e+(t&n|~t&o)+(r>>>0)+i;return(s<>>32-a)+t},s._gg=function(e,t,n,o,r,a,i){var s=e+(t&o|n&~o)+(r>>>0)+i;return(s<>>32-a)+t},s._hh=function(e,t,n,o,r,a,i){var s=e+(t^n^o)+(r>>>0)+i;return(s<>>32-a)+t},s._ii=function(e,t,n,o,r,a,i){var s=e+(n^(t|~o))+(r>>>0)+i;return(s<>>32-a)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=o.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?i.bytesToString(n):o.bytesToHex(n)}},526:function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n-1&&(s.value=e)},l=function(){var e=[].slice.call(document.querySelectorAll(".header-anchor")).filter((function(e){return-1!=decodeURIComponent(n.$route.fullPath).indexOf(decodeURIComponent(e.hash))}));null==e||e.length<1||null==e[0].offsetTop||setTimeout((function(){window.scrollTo(0,e[0].offsetTop+160)}),100)},u=function(){var e=document.getElementsByClassName("sidebar")[0],t=document.getElementsByClassName("active sidebar-link")[1];if(null!=t&&null!=t&&null!=t.offsetTop||(t=document.getElementsByClassName("active sidebar-link")[0]),null!=t&&null!=t&&null!=t.offsetTop){var n=e.clientHeight||window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,o=t.offsetTop,r=t.offsetTop+t.offsetHeight,a=e.scrollTop;r<=n+a||(e.scrollTop=r+5-n),o>=a||(e.scrollTop=o-5)}};return c(),Object(o.d)((function(){!function(){var e=decodeURIComponent(n.$route.fullPath);if(e&&""!=e)for(var t=[].slice.call(document.querySelectorAll(".sidebar-link")),o=0;o"+c+""}},550:function(e,t,n){var o=n(4);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},551:function(e,t,n){"use strict";n(513)},552:function(e,t,n){"use strict";n(514)},553:function(e,t,n){"use strict";var o=n(2),r=n(0),a=n(122),i=n(51),s=n(33),c=n(20),l=n(163),u=n(67),f=n(95)("splice"),d=r.TypeError,p=Math.max,h=Math.min;o({target:"Array",proto:!0,forced:!f},{splice:function(e,t){var n,o,r,f,g,v,m=c(this),b=s(m),y=a(e,b),_=arguments.length;if(0===_?n=o=0:1===_?(n=0,o=b-y):(n=_-2,o=h(p(i(t),0),b-y)),b+n-o>9007199254740991)throw d("Maximum allowed length exceeded");for(r=l(m,o),f=0;fb-o+n;f--)delete m[f-1]}else if(n>o)for(f=b-o;f>y;f--)v=f+n-1,(g=f+o-1)in m?m[v]=m[g]:delete m[v];for(f=0;f0&&n.unshift(t.target),e.contains(t.target)||function(e,t){if(!e||!t)return!1;for(var n=0,o=t.length;n>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&o.rotl(e,8)|4278255360&o.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,o=0;n>>5]|=e[n]<<24-o%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-a)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],o=0,r=0;o>>6-2*r);return t}},e.exports=o},566:function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)} +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},567:function(e,t,n){"use strict";n(527)},568:function(e,t,n){var o="undefined"!=typeof global&&global||"undefined"!=typeof self&&self||window,r=Function.prototype.apply;function a(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new a(r.call(setTimeout,o,arguments),clearTimeout)},t.setInterval=function(){return new a(r.call(setInterval,o,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(o,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(569),t.setImmediate="undefined"!=typeof self&&self.setImmediate||"undefined"!=typeof global&&global.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||"undefined"!=typeof global&&global.clearImmediate||this&&this.clearImmediate},569:function(e,t){!function(e,t){"use strict";if(!e.setImmediate){var n,o,r,a,i,s=1,c={},l=!1,u=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?n=function(e){process.nextTick((function(){p(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((r=new MessageChannel).port1.onmessage=function(e){p(e.data)},n=function(e){r.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(o=u.documentElement,n=function(e){var t=u.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):n=function(e){setTimeout(p,0,e)}:(a="setImmediate$"+Math.random()+"$",i=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&p(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",i,!1):e.attachEvent("onmessage",i),n=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),o=0;o")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("BUFFER_LENGTH")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1024")])])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("MAX_EPOLL_EVENTS")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1024")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1024")]),s._v(" ")]),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//connection ")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("MAX_EPOLL_ITEM")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("102400")]),s._v(" ")]),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//con")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("SERVER_PORT")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("8888")])])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("LISTEN_PORT_COUNT")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")])])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("typedef")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("NCALLBACK")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("callback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" status"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("BUFFER_LENGTH"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" length"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("long")]),s._v(" last_active"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 1024 * 1024")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("recv_cb")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("send_cb")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_set")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" NCALLBACK callback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("callback "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" callback"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("arg "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("last_active "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("time")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("epoll_event")]),s._v(" ep_ev "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ep_ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ptr "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ep_ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" op"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n op "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" EPOLL_CTL_MOD"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n op "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" EPOLL_CTL_ADD"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_ctl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" op"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("ep_ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"event add failed [fd=%d], events[%d]\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_del")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("epoll_event")]),s._v(" ep_ev "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n ep_ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ptr "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_ctl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" EPOLL_CTL_DEL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("ep_ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("recv_cb")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ev "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" len "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("recv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" BUFFER_LENGTH"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_del")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("len "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n \n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" len"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("len"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token char"}},[s._v("'\\0'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"C[%d]:%s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_set")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" send_cb"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" EPOLLOUT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("len "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"[fd=%d] pos[%ld], closed\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"recv[fd=%d] error[%d]:%s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" len"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("send_cb")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ev "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" len "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("send")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("length"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("len "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"send[fd=%d], [%d]%s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" len"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_del")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_set")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" recv_cb"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" EPOLLIN"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_del")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"send[fd=%d] error %s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" len"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("accept_cb")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr_in")]),s._v(" client_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("socklen_t")]),s._v(" len "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("client_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("clientfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("accept")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("client_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("len"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!=")]),s._v(" EAGAIN "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" errno "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!=")]),s._v(" EINTR"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"accept: %s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("do")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" MAX_EPOLL_EVENTS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("break")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" MAX_EPOLL_EVENTS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"%s: max connect limit[%d]\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("__func__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" MAX_EPOLL_EVENTS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("break")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("endif")])]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" flag "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("flag "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("fcntl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" F_SETFL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" O_NONBLOCK"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"%s: fcntl nonblocking failed, %d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("__func__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" MAX_EPOLL_EVENTS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("break")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_set")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" recv_cb"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" EPOLLIN"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("while")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"new connect [%s:%d][time:%ld], pos[%d]\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" \n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("inet_ntoa")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("client_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntohs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("client_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_port"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("last_active"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("init_sock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("short")]),s._v(" port"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("socket")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("AF_INET"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" SOCK_STREAM"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("fcntl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" F_SETFL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" O_NONBLOCK"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr_in")]),s._v(" server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("memset")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_family "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" AF_INET"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("s_addr "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("htonl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("INADDR_ANY"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_port "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("htons")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("port"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("bind")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("server_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("listen")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"listen failed : %s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"listen port : %d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" port"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("memset")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_create")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"create epfd in %s err %s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("__func__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("malloc")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("MAX_EPOLL_EVENTS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"create epfd in %s err %s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("__func__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_destory")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("free")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_addlistener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" NCALLBACK "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("acceptor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_set")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" acceptor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" EPOLLIN"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_run")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("epoll_event")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("MAX_EPOLL_ITEM"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" checkpos "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("while")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("long")]),s._v(" now "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("time")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" checkpos "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("checkpos "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" MAX_EPOLL_EVENTS"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n checkpos "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("checkpos"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("status "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("continue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("long")]),s._v(" duration "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" now "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("checkpos"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("last_active"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("duration "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("60")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("checkpos"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"[fd=%d] timeout\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("checkpos"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("nty_event_del")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("checkpos"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("endif")])]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 一次能从就绪队列带出数量 event长度 时间")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" nready "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_wait")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("epfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" MAX_EPOLL_ITEM"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("nready "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"epoll_wait error, exit\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("continue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" nready"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ev "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyevent")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("ptr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v(" EPOLLIN"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v(" EPOLLIN"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("callback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v(" EPOLLOUT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v(" EPOLLOUT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("callback")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" argc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("argv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("unsigned")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("short")]),s._v(" port "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" SERVER_PORT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("argc "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n port "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("atoi")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("argv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("reactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("malloc")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ntyreactor")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" listenfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("LISTEN_PORT_COUNT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" LISTEN_PORT_COUNT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n listenfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("init_sock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("port"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_addlistener")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" listenfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" accept_cb"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_run")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntyreactor_destory")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" LISTEN_PORT_COUNT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("listenfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n \n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br"),a("span",{staticClass:"line-number"},[s._v("41")]),a("br"),a("span",{staticClass:"line-number"},[s._v("42")]),a("br"),a("span",{staticClass:"line-number"},[s._v("43")]),a("br"),a("span",{staticClass:"line-number"},[s._v("44")]),a("br"),a("span",{staticClass:"line-number"},[s._v("45")]),a("br"),a("span",{staticClass:"line-number"},[s._v("46")]),a("br"),a("span",{staticClass:"line-number"},[s._v("47")]),a("br"),a("span",{staticClass:"line-number"},[s._v("48")]),a("br"),a("span",{staticClass:"line-number"},[s._v("49")]),a("br"),a("span",{staticClass:"line-number"},[s._v("50")]),a("br"),a("span",{staticClass:"line-number"},[s._v("51")]),a("br"),a("span",{staticClass:"line-number"},[s._v("52")]),a("br"),a("span",{staticClass:"line-number"},[s._v("53")]),a("br"),a("span",{staticClass:"line-number"},[s._v("54")]),a("br"),a("span",{staticClass:"line-number"},[s._v("55")]),a("br"),a("span",{staticClass:"line-number"},[s._v("56")]),a("br"),a("span",{staticClass:"line-number"},[s._v("57")]),a("br"),a("span",{staticClass:"line-number"},[s._v("58")]),a("br"),a("span",{staticClass:"line-number"},[s._v("59")]),a("br"),a("span",{staticClass:"line-number"},[s._v("60")]),a("br"),a("span",{staticClass:"line-number"},[s._v("61")]),a("br"),a("span",{staticClass:"line-number"},[s._v("62")]),a("br"),a("span",{staticClass:"line-number"},[s._v("63")]),a("br"),a("span",{staticClass:"line-number"},[s._v("64")]),a("br"),a("span",{staticClass:"line-number"},[s._v("65")]),a("br"),a("span",{staticClass:"line-number"},[s._v("66")]),a("br"),a("span",{staticClass:"line-number"},[s._v("67")]),a("br"),a("span",{staticClass:"line-number"},[s._v("68")]),a("br"),a("span",{staticClass:"line-number"},[s._v("69")]),a("br"),a("span",{staticClass:"line-number"},[s._v("70")]),a("br"),a("span",{staticClass:"line-number"},[s._v("71")]),a("br"),a("span",{staticClass:"line-number"},[s._v("72")]),a("br"),a("span",{staticClass:"line-number"},[s._v("73")]),a("br"),a("span",{staticClass:"line-number"},[s._v("74")]),a("br"),a("span",{staticClass:"line-number"},[s._v("75")]),a("br"),a("span",{staticClass:"line-number"},[s._v("76")]),a("br"),a("span",{staticClass:"line-number"},[s._v("77")]),a("br"),a("span",{staticClass:"line-number"},[s._v("78")]),a("br"),a("span",{staticClass:"line-number"},[s._v("79")]),a("br"),a("span",{staticClass:"line-number"},[s._v("80")]),a("br"),a("span",{staticClass:"line-number"},[s._v("81")]),a("br"),a("span",{staticClass:"line-number"},[s._v("82")]),a("br"),a("span",{staticClass:"line-number"},[s._v("83")]),a("br"),a("span",{staticClass:"line-number"},[s._v("84")]),a("br"),a("span",{staticClass:"line-number"},[s._v("85")]),a("br"),a("span",{staticClass:"line-number"},[s._v("86")]),a("br"),a("span",{staticClass:"line-number"},[s._v("87")]),a("br"),a("span",{staticClass:"line-number"},[s._v("88")]),a("br"),a("span",{staticClass:"line-number"},[s._v("89")]),a("br"),a("span",{staticClass:"line-number"},[s._v("90")]),a("br"),a("span",{staticClass:"line-number"},[s._v("91")]),a("br"),a("span",{staticClass:"line-number"},[s._v("92")]),a("br"),a("span",{staticClass:"line-number"},[s._v("93")]),a("br"),a("span",{staticClass:"line-number"},[s._v("94")]),a("br"),a("span",{staticClass:"line-number"},[s._v("95")]),a("br"),a("span",{staticClass:"line-number"},[s._v("96")]),a("br"),a("span",{staticClass:"line-number"},[s._v("97")]),a("br"),a("span",{staticClass:"line-number"},[s._v("98")]),a("br"),a("span",{staticClass:"line-number"},[s._v("99")]),a("br"),a("span",{staticClass:"line-number"},[s._v("100")]),a("br"),a("span",{staticClass:"line-number"},[s._v("101")]),a("br"),a("span",{staticClass:"line-number"},[s._v("102")]),a("br"),a("span",{staticClass:"line-number"},[s._v("103")]),a("br"),a("span",{staticClass:"line-number"},[s._v("104")]),a("br"),a("span",{staticClass:"line-number"},[s._v("105")]),a("br"),a("span",{staticClass:"line-number"},[s._v("106")]),a("br"),a("span",{staticClass:"line-number"},[s._v("107")]),a("br"),a("span",{staticClass:"line-number"},[s._v("108")]),a("br"),a("span",{staticClass:"line-number"},[s._v("109")]),a("br"),a("span",{staticClass:"line-number"},[s._v("110")]),a("br"),a("span",{staticClass:"line-number"},[s._v("111")]),a("br"),a("span",{staticClass:"line-number"},[s._v("112")]),a("br"),a("span",{staticClass:"line-number"},[s._v("113")]),a("br"),a("span",{staticClass:"line-number"},[s._v("114")]),a("br"),a("span",{staticClass:"line-number"},[s._v("115")]),a("br"),a("span",{staticClass:"line-number"},[s._v("116")]),a("br"),a("span",{staticClass:"line-number"},[s._v("117")]),a("br"),a("span",{staticClass:"line-number"},[s._v("118")]),a("br"),a("span",{staticClass:"line-number"},[s._v("119")]),a("br"),a("span",{staticClass:"line-number"},[s._v("120")]),a("br"),a("span",{staticClass:"line-number"},[s._v("121")]),a("br"),a("span",{staticClass:"line-number"},[s._v("122")]),a("br"),a("span",{staticClass:"line-number"},[s._v("123")]),a("br"),a("span",{staticClass:"line-number"},[s._v("124")]),a("br"),a("span",{staticClass:"line-number"},[s._v("125")]),a("br"),a("span",{staticClass:"line-number"},[s._v("126")]),a("br"),a("span",{staticClass:"line-number"},[s._v("127")]),a("br"),a("span",{staticClass:"line-number"},[s._v("128")]),a("br"),a("span",{staticClass:"line-number"},[s._v("129")]),a("br"),a("span",{staticClass:"line-number"},[s._v("130")]),a("br"),a("span",{staticClass:"line-number"},[s._v("131")]),a("br"),a("span",{staticClass:"line-number"},[s._v("132")]),a("br"),a("span",{staticClass:"line-number"},[s._v("133")]),a("br"),a("span",{staticClass:"line-number"},[s._v("134")]),a("br"),a("span",{staticClass:"line-number"},[s._v("135")]),a("br"),a("span",{staticClass:"line-number"},[s._v("136")]),a("br"),a("span",{staticClass:"line-number"},[s._v("137")]),a("br"),a("span",{staticClass:"line-number"},[s._v("138")]),a("br"),a("span",{staticClass:"line-number"},[s._v("139")]),a("br"),a("span",{staticClass:"line-number"},[s._v("140")]),a("br"),a("span",{staticClass:"line-number"},[s._v("141")]),a("br"),a("span",{staticClass:"line-number"},[s._v("142")]),a("br"),a("span",{staticClass:"line-number"},[s._v("143")]),a("br"),a("span",{staticClass:"line-number"},[s._v("144")]),a("br"),a("span",{staticClass:"line-number"},[s._v("145")]),a("br"),a("span",{staticClass:"line-number"},[s._v("146")]),a("br"),a("span",{staticClass:"line-number"},[s._v("147")]),a("br"),a("span",{staticClass:"line-number"},[s._v("148")]),a("br"),a("span",{staticClass:"line-number"},[s._v("149")]),a("br"),a("span",{staticClass:"line-number"},[s._v("150")]),a("br"),a("span",{staticClass:"line-number"},[s._v("151")]),a("br"),a("span",{staticClass:"line-number"},[s._v("152")]),a("br"),a("span",{staticClass:"line-number"},[s._v("153")]),a("br"),a("span",{staticClass:"line-number"},[s._v("154")]),a("br"),a("span",{staticClass:"line-number"},[s._v("155")]),a("br"),a("span",{staticClass:"line-number"},[s._v("156")]),a("br"),a("span",{staticClass:"line-number"},[s._v("157")]),a("br"),a("span",{staticClass:"line-number"},[s._v("158")]),a("br"),a("span",{staticClass:"line-number"},[s._v("159")]),a("br"),a("span",{staticClass:"line-number"},[s._v("160")]),a("br"),a("span",{staticClass:"line-number"},[s._v("161")]),a("br"),a("span",{staticClass:"line-number"},[s._v("162")]),a("br"),a("span",{staticClass:"line-number"},[s._v("163")]),a("br"),a("span",{staticClass:"line-number"},[s._v("164")]),a("br"),a("span",{staticClass:"line-number"},[s._v("165")]),a("br"),a("span",{staticClass:"line-number"},[s._v("166")]),a("br"),a("span",{staticClass:"line-number"},[s._v("167")]),a("br"),a("span",{staticClass:"line-number"},[s._v("168")]),a("br"),a("span",{staticClass:"line-number"},[s._v("169")]),a("br"),a("span",{staticClass:"line-number"},[s._v("170")]),a("br"),a("span",{staticClass:"line-number"},[s._v("171")]),a("br"),a("span",{staticClass:"line-number"},[s._v("172")]),a("br"),a("span",{staticClass:"line-number"},[s._v("173")]),a("br"),a("span",{staticClass:"line-number"},[s._v("174")]),a("br"),a("span",{staticClass:"line-number"},[s._v("175")]),a("br"),a("span",{staticClass:"line-number"},[s._v("176")]),a("br"),a("span",{staticClass:"line-number"},[s._v("177")]),a("br"),a("span",{staticClass:"line-number"},[s._v("178")]),a("br"),a("span",{staticClass:"line-number"},[s._v("179")]),a("br"),a("span",{staticClass:"line-number"},[s._v("180")]),a("br"),a("span",{staticClass:"line-number"},[s._v("181")]),a("br"),a("span",{staticClass:"line-number"},[s._v("182")]),a("br"),a("span",{staticClass:"line-number"},[s._v("183")]),a("br"),a("span",{staticClass:"line-number"},[s._v("184")]),a("br"),a("span",{staticClass:"line-number"},[s._v("185")]),a("br"),a("span",{staticClass:"line-number"},[s._v("186")]),a("br"),a("span",{staticClass:"line-number"},[s._v("187")]),a("br"),a("span",{staticClass:"line-number"},[s._v("188")]),a("br"),a("span",{staticClass:"line-number"},[s._v("189")]),a("br"),a("span",{staticClass:"line-number"},[s._v("190")]),a("br"),a("span",{staticClass:"line-number"},[s._v("191")]),a("br"),a("span",{staticClass:"line-number"},[s._v("192")]),a("br"),a("span",{staticClass:"line-number"},[s._v("193")]),a("br"),a("span",{staticClass:"line-number"},[s._v("194")]),a("br"),a("span",{staticClass:"line-number"},[s._v("195")]),a("br"),a("span",{staticClass:"line-number"},[s._v("196")]),a("br"),a("span",{staticClass:"line-number"},[s._v("197")]),a("br"),a("span",{staticClass:"line-number"},[s._v("198")]),a("br"),a("span",{staticClass:"line-number"},[s._v("199")]),a("br"),a("span",{staticClass:"line-number"},[s._v("200")]),a("br"),a("span",{staticClass:"line-number"},[s._v("201")]),a("br"),a("span",{staticClass:"line-number"},[s._v("202")]),a("br"),a("span",{staticClass:"line-number"},[s._v("203")]),a("br"),a("span",{staticClass:"line-number"},[s._v("204")]),a("br"),a("span",{staticClass:"line-number"},[s._v("205")]),a("br"),a("span",{staticClass:"line-number"},[s._v("206")]),a("br"),a("span",{staticClass:"line-number"},[s._v("207")]),a("br"),a("span",{staticClass:"line-number"},[s._v("208")]),a("br"),a("span",{staticClass:"line-number"},[s._v("209")]),a("br"),a("span",{staticClass:"line-number"},[s._v("210")]),a("br"),a("span",{staticClass:"line-number"},[s._v("211")]),a("br"),a("span",{staticClass:"line-number"},[s._v("212")]),a("br"),a("span",{staticClass:"line-number"},[s._v("213")]),a("br"),a("span",{staticClass:"line-number"},[s._v("214")]),a("br"),a("span",{staticClass:"line-number"},[s._v("215")]),a("br"),a("span",{staticClass:"line-number"},[s._v("216")]),a("br"),a("span",{staticClass:"line-number"},[s._v("217")]),a("br"),a("span",{staticClass:"line-number"},[s._v("218")]),a("br"),a("span",{staticClass:"line-number"},[s._v("219")]),a("br"),a("span",{staticClass:"line-number"},[s._v("220")]),a("br"),a("span",{staticClass:"line-number"},[s._v("221")]),a("br"),a("span",{staticClass:"line-number"},[s._v("222")]),a("br"),a("span",{staticClass:"line-number"},[s._v("223")]),a("br"),a("span",{staticClass:"line-number"},[s._v("224")]),a("br"),a("span",{staticClass:"line-number"},[s._v("225")]),a("br"),a("span",{staticClass:"line-number"},[s._v("226")]),a("br"),a("span",{staticClass:"line-number"},[s._v("227")]),a("br"),a("span",{staticClass:"line-number"},[s._v("228")]),a("br"),a("span",{staticClass:"line-number"},[s._v("229")]),a("br"),a("span",{staticClass:"line-number"},[s._v("230")]),a("br"),a("span",{staticClass:"line-number"},[s._v("231")]),a("br"),a("span",{staticClass:"line-number"},[s._v("232")]),a("br"),a("span",{staticClass:"line-number"},[s._v("233")]),a("br"),a("span",{staticClass:"line-number"},[s._v("234")]),a("br"),a("span",{staticClass:"line-number"},[s._v("235")]),a("br"),a("span",{staticClass:"line-number"},[s._v("236")]),a("br"),a("span",{staticClass:"line-number"},[s._v("237")]),a("br"),a("span",{staticClass:"line-number"},[s._v("238")]),a("br"),a("span",{staticClass:"line-number"},[s._v("239")]),a("br"),a("span",{staticClass:"line-number"},[s._v("240")]),a("br"),a("span",{staticClass:"line-number"},[s._v("241")]),a("br"),a("span",{staticClass:"line-number"},[s._v("242")]),a("br"),a("span",{staticClass:"line-number"},[s._v("243")]),a("br"),a("span",{staticClass:"line-number"},[s._v("244")]),a("br"),a("span",{staticClass:"line-number"},[s._v("245")]),a("br"),a("span",{staticClass:"line-number"},[s._v("246")]),a("br"),a("span",{staticClass:"line-number"},[s._v("247")]),a("br"),a("span",{staticClass:"line-number"},[s._v("248")]),a("br"),a("span",{staticClass:"line-number"},[s._v("249")]),a("br"),a("span",{staticClass:"line-number"},[s._v("250")]),a("br"),a("span",{staticClass:"line-number"},[s._v("251")]),a("br"),a("span",{staticClass:"line-number"},[s._v("252")]),a("br"),a("span",{staticClass:"line-number"},[s._v("253")]),a("br"),a("span",{staticClass:"line-number"},[s._v("254")]),a("br"),a("span",{staticClass:"line-number"},[s._v("255")]),a("br"),a("span",{staticClass:"line-number"},[s._v("256")]),a("br"),a("span",{staticClass:"line-number"},[s._v("257")]),a("br"),a("span",{staticClass:"line-number"},[s._v("258")]),a("br"),a("span",{staticClass:"line-number"},[s._v("259")]),a("br"),a("span",{staticClass:"line-number"},[s._v("260")]),a("br"),a("span",{staticClass:"line-number"},[s._v("261")]),a("br"),a("span",{staticClass:"line-number"},[s._v("262")]),a("br"),a("span",{staticClass:"line-number"},[s._v("263")]),a("br"),a("span",{staticClass:"line-number"},[s._v("264")]),a("br"),a("span",{staticClass:"line-number"},[s._v("265")]),a("br"),a("span",{staticClass:"line-number"},[s._v("266")]),a("br"),a("span",{staticClass:"line-number"},[s._v("267")]),a("br"),a("span",{staticClass:"line-number"},[s._v("268")]),a("br"),a("span",{staticClass:"line-number"},[s._v("269")]),a("br"),a("span",{staticClass:"line-number"},[s._v("270")]),a("br"),a("span",{staticClass:"line-number"},[s._v("271")]),a("br"),a("span",{staticClass:"line-number"},[s._v("272")]),a("br"),a("span",{staticClass:"line-number"},[s._v("273")]),a("br"),a("span",{staticClass:"line-number"},[s._v("274")]),a("br"),a("span",{staticClass:"line-number"},[s._v("275")]),a("br"),a("span",{staticClass:"line-number"},[s._v("276")]),a("br"),a("span",{staticClass:"line-number"},[s._v("277")]),a("br"),a("span",{staticClass:"line-number"},[s._v("278")]),a("br"),a("span",{staticClass:"line-number"},[s._v("279")]),a("br"),a("span",{staticClass:"line-number"},[s._v("280")]),a("br"),a("span",{staticClass:"line-number"},[s._v("281")]),a("br"),a("span",{staticClass:"line-number"},[s._v("282")]),a("br"),a("span",{staticClass:"line-number"},[s._v("283")]),a("br"),a("span",{staticClass:"line-number"},[s._v("284")]),a("br"),a("span",{staticClass:"line-number"},[s._v("285")]),a("br"),a("span",{staticClass:"line-number"},[s._v("286")]),a("br"),a("span",{staticClass:"line-number"},[s._v("287")]),a("br"),a("span",{staticClass:"line-number"},[s._v("288")]),a("br"),a("span",{staticClass:"line-number"},[s._v("289")]),a("br"),a("span",{staticClass:"line-number"},[s._v("290")]),a("br"),a("span",{staticClass:"line-number"},[s._v("291")]),a("br"),a("span",{staticClass:"line-number"},[s._v("292")]),a("br"),a("span",{staticClass:"line-number"},[s._v("293")]),a("br"),a("span",{staticClass:"line-number"},[s._v("294")]),a("br"),a("span",{staticClass:"line-number"},[s._v("295")]),a("br"),a("span",{staticClass:"line-number"},[s._v("296")]),a("br"),a("span",{staticClass:"line-number"},[s._v("297")]),a("br"),a("span",{staticClass:"line-number"},[s._v("298")]),a("br"),a("span",{staticClass:"line-number"},[s._v("299")]),a("br"),a("span",{staticClass:"line-number"},[s._v("300")]),a("br"),a("span",{staticClass:"line-number"},[s._v("301")]),a("br"),a("span",{staticClass:"line-number"},[s._v("302")]),a("br"),a("span",{staticClass:"line-number"},[s._v("303")]),a("br"),a("span",{staticClass:"line-number"},[s._v("304")]),a("br"),a("span",{staticClass:"line-number"},[s._v("305")]),a("br"),a("span",{staticClass:"line-number"},[s._v("306")]),a("br"),a("span",{staticClass:"line-number"},[s._v("307")]),a("br"),a("span",{staticClass:"line-number"},[s._v("308")]),a("br"),a("span",{staticClass:"line-number"},[s._v("309")]),a("br"),a("span",{staticClass:"line-number"},[s._v("310")]),a("br"),a("span",{staticClass:"line-number"},[s._v("311")]),a("br"),a("span",{staticClass:"line-number"},[s._v("312")]),a("br"),a("span",{staticClass:"line-number"},[s._v("313")]),a("br"),a("span",{staticClass:"line-number"},[s._v("314")]),a("br"),a("span",{staticClass:"line-number"},[s._v("315")]),a("br"),a("span",{staticClass:"line-number"},[s._v("316")]),a("br"),a("span",{staticClass:"line-number"},[s._v("317")]),a("br"),a("span",{staticClass:"line-number"},[s._v("318")]),a("br"),a("span",{staticClass:"line-number"},[s._v("319")]),a("br"),a("span",{staticClass:"line-number"},[s._v("320")]),a("br"),a("span",{staticClass:"line-number"},[s._v("321")]),a("br"),a("span",{staticClass:"line-number"},[s._v("322")]),a("br"),a("span",{staticClass:"line-number"},[s._v("323")]),a("br"),a("span",{staticClass:"line-number"},[s._v("324")]),a("br"),a("span",{staticClass:"line-number"},[s._v("325")]),a("br"),a("span",{staticClass:"line-number"},[s._v("326")]),a("br"),a("span",{staticClass:"line-number"},[s._v("327")]),a("br"),a("span",{staticClass:"line-number"},[s._v("328")]),a("br"),a("span",{staticClass:"line-number"},[s._v("329")]),a("br"),a("span",{staticClass:"line-number"},[s._v("330")]),a("br"),a("span",{staticClass:"line-number"},[s._v("331")]),a("br"),a("span",{staticClass:"line-number"},[s._v("332")]),a("br"),a("span",{staticClass:"line-number"},[s._v("333")]),a("br"),a("span",{staticClass:"line-number"},[s._v("334")]),a("br"),a("span",{staticClass:"line-number"},[s._v("335")]),a("br"),a("span",{staticClass:"line-number"},[s._v("336")]),a("br"),a("span",{staticClass:"line-number"},[s._v("337")]),a("br"),a("span",{staticClass:"line-number"},[s._v("338")]),a("br"),a("span",{staticClass:"line-number"},[s._v("339")]),a("br"),a("span",{staticClass:"line-number"},[s._v("340")]),a("br"),a("span",{staticClass:"line-number"},[s._v("341")]),a("br"),a("span",{staticClass:"line-number"},[s._v("342")]),a("br"),a("span",{staticClass:"line-number"},[s._v("343")]),a("br"),a("span",{staticClass:"line-number"},[s._v("344")]),a("br"),a("span",{staticClass:"line-number"},[s._v("345")]),a("br"),a("span",{staticClass:"line-number"},[s._v("346")]),a("br"),a("span",{staticClass:"line-number"},[s._v("347")]),a("br"),a("span",{staticClass:"line-number"},[s._v("348")]),a("br"),a("span",{staticClass:"line-number"},[s._v("349")]),a("br"),a("span",{staticClass:"line-number"},[s._v("350")]),a("br"),a("span",{staticClass:"line-number"},[s._v("351")]),a("br"),a("span",{staticClass:"line-number"},[s._v("352")]),a("br")])]),a("p",[s._v("mul_port_client_epoll.c")]),s._v(" "),a("div",{staticClass:"language-c line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-c"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("MAX_BUFFER")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("128")])])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("MAX_EPOLLSIZE")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("384")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1024")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")])])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name"}},[s._v("MAX_PORT")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")])])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("define")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token macro-name function"}},[s._v("TIME_SUB_MS")]),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("tv1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" tv2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("tv1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tv_sec "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v(" tv2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tv_sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1000")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("tv1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tv_usec "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v(" tv2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tv_usec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")])])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" isContinue "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("static")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntySetNonblock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" flags"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n flags "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("fcntl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" F_GETFL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("flags "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" flags"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n flags "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|=")]),s._v(" O_NONBLOCK"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("fcntl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" F_SETFL"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" flags"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("static")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntySetReUseAddr")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" reuse "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("setsockopt")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" SOL_SOCKET"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" SO_REUSEADDR"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("reuse"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reuse"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" argc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("argv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("argc "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Usage: %s ip port\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" argv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("exit")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("ip "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" argv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" port "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("atoi")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("argv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" connections "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("128")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" index "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("epoll_event")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("MAX_EPOLLSIZE"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" epoll_fd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_create")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("MAX_EPOLLSIZE"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strcpy")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('" Data From MulClient\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr_in")]),s._v(" addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("memset")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr_in")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_family "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" AF_INET"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("s_addr "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("inet_addr")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("ip"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("timeval")]),s._v(" tv_begin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("gettimeofday")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tv_begin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("while")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),s._v("index "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">=")]),s._v(" MAX_PORT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" index "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("epoll_event")]),s._v(" ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" sockfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("connections "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("500000")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("isContinue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n sockfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("socket")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("AF_INET"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" SOCK_STREAM"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("perror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"socket"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("goto")]),s._v(" err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//ntySetReUseAddr(sockfd);")]),s._v("\n addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sin_port "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("htons")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("port"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),s._v("index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("connect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("addr"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sockaddr_in")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("perror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"connect"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("goto")]),s._v(" err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntySetNonblock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ntySetReUseAddr")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sprintf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Hello Server: client --\x3e %d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" connections"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("send")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strlen")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("fd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" EPOLLIN "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" EPOLLOUT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_ctl")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("epoll_fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" EPOLL_CTL_ADD"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("ev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n connections "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//connections ++;")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("connections "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("%")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1000")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("999")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("||")]),s._v(" connections "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("340000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("timeval")]),s._v(" tv_cur"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("memcpy")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tv_cur"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tv_begin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("timeval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("gettimeofday")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tv_begin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" time_used "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("TIME_SUB_MS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("tv_begin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" tv_cur"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"connections: %d, sockfd:%d, time_used:%d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" connections"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" time_used"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" nfds "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("epoll_wait")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("epoll_fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" connections"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" nfds"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" clientfd "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("fd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v(" EPOLLOUT"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sprintf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data from %d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("send")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strlen")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("buffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("events"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("events "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v(" EPOLLIN"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("char")]),s._v(" rBuffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("MAX_BUFFER"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" \n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("ssize_t")]),s._v(" length "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("recv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("sockfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" rBuffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" MAX_BUFFER"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('" RecvBuffer:%s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" rBuffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strcmp")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("rBuffer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"quit"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n isContinue "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('" Disconnect clientfd:%d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n connections "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("--")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("==")]),s._v(" EINTR"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("continue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('" Error clientfd:%d, errno:%d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("else")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('" clientfd:%d, errno:%d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("close")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("clientfd"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("usleep")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\nerr"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"error : %s\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("strerror")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("errno"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br"),a("span",{staticClass:"line-number"},[s._v("41")]),a("br"),a("span",{staticClass:"line-number"},[s._v("42")]),a("br"),a("span",{staticClass:"line-number"},[s._v("43")]),a("br"),a("span",{staticClass:"line-number"},[s._v("44")]),a("br"),a("span",{staticClass:"line-number"},[s._v("45")]),a("br"),a("span",{staticClass:"line-number"},[s._v("46")]),a("br"),a("span",{staticClass:"line-number"},[s._v("47")]),a("br"),a("span",{staticClass:"line-number"},[s._v("48")]),a("br"),a("span",{staticClass:"line-number"},[s._v("49")]),a("br"),a("span",{staticClass:"line-number"},[s._v("50")]),a("br"),a("span",{staticClass:"line-number"},[s._v("51")]),a("br"),a("span",{staticClass:"line-number"},[s._v("52")]),a("br"),a("span",{staticClass:"line-number"},[s._v("53")]),a("br"),a("span",{staticClass:"line-number"},[s._v("54")]),a("br"),a("span",{staticClass:"line-number"},[s._v("55")]),a("br"),a("span",{staticClass:"line-number"},[s._v("56")]),a("br"),a("span",{staticClass:"line-number"},[s._v("57")]),a("br"),a("span",{staticClass:"line-number"},[s._v("58")]),a("br"),a("span",{staticClass:"line-number"},[s._v("59")]),a("br"),a("span",{staticClass:"line-number"},[s._v("60")]),a("br"),a("span",{staticClass:"line-number"},[s._v("61")]),a("br"),a("span",{staticClass:"line-number"},[s._v("62")]),a("br"),a("span",{staticClass:"line-number"},[s._v("63")]),a("br"),a("span",{staticClass:"line-number"},[s._v("64")]),a("br"),a("span",{staticClass:"line-number"},[s._v("65")]),a("br"),a("span",{staticClass:"line-number"},[s._v("66")]),a("br"),a("span",{staticClass:"line-number"},[s._v("67")]),a("br"),a("span",{staticClass:"line-number"},[s._v("68")]),a("br"),a("span",{staticClass:"line-number"},[s._v("69")]),a("br"),a("span",{staticClass:"line-number"},[s._v("70")]),a("br"),a("span",{staticClass:"line-number"},[s._v("71")]),a("br"),a("span",{staticClass:"line-number"},[s._v("72")]),a("br"),a("span",{staticClass:"line-number"},[s._v("73")]),a("br"),a("span",{staticClass:"line-number"},[s._v("74")]),a("br"),a("span",{staticClass:"line-number"},[s._v("75")]),a("br"),a("span",{staticClass:"line-number"},[s._v("76")]),a("br"),a("span",{staticClass:"line-number"},[s._v("77")]),a("br"),a("span",{staticClass:"line-number"},[s._v("78")]),a("br"),a("span",{staticClass:"line-number"},[s._v("79")]),a("br"),a("span",{staticClass:"line-number"},[s._v("80")]),a("br"),a("span",{staticClass:"line-number"},[s._v("81")]),a("br"),a("span",{staticClass:"line-number"},[s._v("82")]),a("br"),a("span",{staticClass:"line-number"},[s._v("83")]),a("br"),a("span",{staticClass:"line-number"},[s._v("84")]),a("br"),a("span",{staticClass:"line-number"},[s._v("85")]),a("br"),a("span",{staticClass:"line-number"},[s._v("86")]),a("br"),a("span",{staticClass:"line-number"},[s._v("87")]),a("br"),a("span",{staticClass:"line-number"},[s._v("88")]),a("br"),a("span",{staticClass:"line-number"},[s._v("89")]),a("br"),a("span",{staticClass:"line-number"},[s._v("90")]),a("br"),a("span",{staticClass:"line-number"},[s._v("91")]),a("br"),a("span",{staticClass:"line-number"},[s._v("92")]),a("br"),a("span",{staticClass:"line-number"},[s._v("93")]),a("br"),a("span",{staticClass:"line-number"},[s._v("94")]),a("br"),a("span",{staticClass:"line-number"},[s._v("95")]),a("br"),a("span",{staticClass:"line-number"},[s._v("96")]),a("br"),a("span",{staticClass:"line-number"},[s._v("97")]),a("br"),a("span",{staticClass:"line-number"},[s._v("98")]),a("br"),a("span",{staticClass:"line-number"},[s._v("99")]),a("br"),a("span",{staticClass:"line-number"},[s._v("100")]),a("br"),a("span",{staticClass:"line-number"},[s._v("101")]),a("br"),a("span",{staticClass:"line-number"},[s._v("102")]),a("br"),a("span",{staticClass:"line-number"},[s._v("103")]),a("br"),a("span",{staticClass:"line-number"},[s._v("104")]),a("br"),a("span",{staticClass:"line-number"},[s._v("105")]),a("br"),a("span",{staticClass:"line-number"},[s._v("106")]),a("br"),a("span",{staticClass:"line-number"},[s._v("107")]),a("br"),a("span",{staticClass:"line-number"},[s._v("108")]),a("br"),a("span",{staticClass:"line-number"},[s._v("109")]),a("br"),a("span",{staticClass:"line-number"},[s._v("110")]),a("br"),a("span",{staticClass:"line-number"},[s._v("111")]),a("br"),a("span",{staticClass:"line-number"},[s._v("112")]),a("br"),a("span",{staticClass:"line-number"},[s._v("113")]),a("br"),a("span",{staticClass:"line-number"},[s._v("114")]),a("br"),a("span",{staticClass:"line-number"},[s._v("115")]),a("br"),a("span",{staticClass:"line-number"},[s._v("116")]),a("br"),a("span",{staticClass:"line-number"},[s._v("117")]),a("br"),a("span",{staticClass:"line-number"},[s._v("118")]),a("br"),a("span",{staticClass:"line-number"},[s._v("119")]),a("br"),a("span",{staticClass:"line-number"},[s._v("120")]),a("br"),a("span",{staticClass:"line-number"},[s._v("121")]),a("br"),a("span",{staticClass:"line-number"},[s._v("122")]),a("br"),a("span",{staticClass:"line-number"},[s._v("123")]),a("br"),a("span",{staticClass:"line-number"},[s._v("124")]),a("br"),a("span",{staticClass:"line-number"},[s._v("125")]),a("br"),a("span",{staticClass:"line-number"},[s._v("126")]),a("br"),a("span",{staticClass:"line-number"},[s._v("127")]),a("br"),a("span",{staticClass:"line-number"},[s._v("128")]),a("br"),a("span",{staticClass:"line-number"},[s._v("129")]),a("br"),a("span",{staticClass:"line-number"},[s._v("130")]),a("br"),a("span",{staticClass:"line-number"},[s._v("131")]),a("br"),a("span",{staticClass:"line-number"},[s._v("132")]),a("br"),a("span",{staticClass:"line-number"},[s._v("133")]),a("br"),a("span",{staticClass:"line-number"},[s._v("134")]),a("br"),a("span",{staticClass:"line-number"},[s._v("135")]),a("br"),a("span",{staticClass:"line-number"},[s._v("136")]),a("br"),a("span",{staticClass:"line-number"},[s._v("137")]),a("br"),a("span",{staticClass:"line-number"},[s._v("138")]),a("br"),a("span",{staticClass:"line-number"},[s._v("139")]),a("br"),a("span",{staticClass:"line-number"},[s._v("140")]),a("br"),a("span",{staticClass:"line-number"},[s._v("141")]),a("br"),a("span",{staticClass:"line-number"},[s._v("142")]),a("br"),a("span",{staticClass:"line-number"},[s._v("143")]),a("br"),a("span",{staticClass:"line-number"},[s._v("144")]),a("br"),a("span",{staticClass:"line-number"},[s._v("145")]),a("br"),a("span",{staticClass:"line-number"},[s._v("146")]),a("br"),a("span",{staticClass:"line-number"},[s._v("147")]),a("br"),a("span",{staticClass:"line-number"},[s._v("148")]),a("br"),a("span",{staticClass:"line-number"},[s._v("149")]),a("br"),a("span",{staticClass:"line-number"},[s._v("150")]),a("br"),a("span",{staticClass:"line-number"},[s._v("151")]),a("br"),a("span",{staticClass:"line-number"},[s._v("152")]),a("br"),a("span",{staticClass:"line-number"},[s._v("153")]),a("br"),a("span",{staticClass:"line-number"},[s._v("154")]),a("br")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/13.d8a01b18.js b/assets/js/13.d8a01b18.js new file mode 100644 index 0000000..c752770 --- /dev/null +++ b/assets/js/13.d8a01b18.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{595:function(t,s,n){"use strict";n.r(s);var a=n(15),e=Object(a.a)({},(function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("p",[n("strong",[t._v("GDB调试手册")])]),t._v(" "),n("p",[n("strong",[t._v("目录")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#0-%E7%94%A8gdb%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F"}},[t._v("0 用GDB调试程序")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#01gdb%E6%A6%82%E8%BF%B0"}},[t._v("0.1 GDB概述")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#02-%E8%B0%83%E8%AF%95%E7%A4%BA%E4%BE%8B"}},[t._v("0.2 调试示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#021-%E6%BA%90%E4%BB%A3%E7%A0%81test1c"}},[t._v("0.2.1 源代码test1.c")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#022-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("0.2.2 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#03-%E4%BD%BF%E7%94%A8gdb"}},[t._v("0.3 使用GDB")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#031-%E5%90%AF%E5%8A%A8gdb"}},[t._v("0.3.1 启动GDB")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#032gdb%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8shell%E5%91%BD%E4%BB%A4"}},[t._v("0.3.2 GDB环境中使用shell命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#033-%E5%9C%A8gdb%E4%B8%AD%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F"}},[t._v("0.3.3 在GDB中运行程序")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#1-%E8%AE%BE%E7%BD%AE%E6%96%AD%E7%82%B9"}},[t._v("1 设置断点")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#11-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("1.1 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#12-%E7%A4%BA%E4%BE%8B"}},[t._v("1.2 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#121-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("1.2.1 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#2-%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%8D%95%E6%AD%A5%E6%89%A7%E8%A1%8C"}},[t._v("2 程序的单步执行")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#21-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("2.1 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#22-%E7%A4%BA%E4%BE%8B"}},[t._v("2.2 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#221-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("2.2.1 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#3-%E6%98%BE%E7%A4%BA%E4%BF%AE%E6%94%B9%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC"}},[t._v("3 显示/修改变量的值")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#31%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("3.1使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#32%E7%A4%BA%E4%BE%8B"}},[t._v("3.2示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#321-%E6%BA%90%E4%BB%A3%E7%A0%81test2c"}},[t._v("3.2.1 源代码test2.c")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#322-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("3.2.2 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#4-%E7%9B%91%E8%A7%86%E7%A8%8B%E5%BA%8F%E5%8F%98%E9%87%8F%E5%80%BC"}},[t._v("4 监视程序变量值")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#41-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("4.1 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#42-%E7%A4%BA%E4%BE%8B"}},[t._v("4.2 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#421-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("4.2.1 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#5-%E6%98%BE%E7%A4%BA%E4%BF%AE%E6%94%B9%E5%AF%84%E5%AD%98%E5%99%A8"}},[t._v("5 显示/修改寄存器")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#51-%E8%83%8C%E6%99%AF%E7%9F%A5%E8%AF%86"}},[t._v("5.1 背景知识")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#52-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("5.2 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#53-%E7%A4%BA%E4%BE%8B"}},[t._v("5.3 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#521-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("5.2.1 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#6-%E6%9F%A5%E7%9C%8B%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%A0%86%E6%A0%88"}},[t._v("6 查看程序的堆栈")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#61-%E8%83%8C%E6%99%AF%E7%9F%A5%E8%AF%86"}},[t._v("6.1 背景知识")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#62-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("6.2 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#63-%E7%A4%BA%E4%BE%8B"}},[t._v("6.3 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#631-%E6%BA%90%E4%BB%A3%E7%A0%81test3c"}},[t._v("6.3.1 源代码test3.c")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#632-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("6.3.2 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#7-%E5%A4%9A%E7%BA%BF%E7%A8%8B%E8%B0%83%E8%AF%95"}},[t._v("7 多线程调试")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#71-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("7.1 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#72-%E7%A4%BA%E4%BE%8B"}},[t._v("7.2 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#721-%E6%BA%90%E4%BB%A3%E7%A0%81test4c"}},[t._v("7.2.1 源代码test4.c")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#722-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("7.2.2 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#8-%E6%AD%BB%E9%94%81%E8%B0%83%E8%AF%95"}},[t._v("8 死锁调试")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#81-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("8.1 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#82-%E7%A4%BA%E4%BE%8B"}},[t._v("8.2 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#821-%E6%BA%90%E6%96%87%E4%BB%B6test5c"}},[t._v("8.2.1 源文件test5.c")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#822-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("8.2.2 调试过程")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#9-core%E6%96%87%E4%BB%B6%E8%B0%83%E8%AF%95"}},[t._v("9 core文件调试")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#91-%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4"}},[t._v("9.1 使用命令")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#92-%E7%A4%BA%E4%BE%8B"}},[t._v("9.2 示例")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#921-%E6%BA%90%E4%BB%A3%E7%A0%81test6c"}},[t._v("9.2.1 源代码test6.c")])]),t._v(" "),n("p",[n("a",{attrs:{href:"#922-%E8%B0%83%E8%AF%95%E8%BF%87%E7%A8%8B"}},[t._v("9.2.2 调试过程")])]),t._v(" "),n("h1",{attrs:{id:"_0-用gdb调试程序"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-用gdb调试程序"}},[t._v("#")]),t._v(" 0 用GDB调试程序")]),t._v(" "),n("h2",{attrs:{id:"_0-1-gdb概述"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-1-gdb概述"}},[t._v("#")]),t._v(" 0.1 GDB概述")]),t._v(" "),n("p",[t._v("GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。")]),t._v(" "),n("p",[t._v("一般来说,GDB主要帮忙你完成下面四个方面的功能:")]),t._v(" "),n("p",[t._v("1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。")]),t._v(" "),n("p",[t._v("2、调试的程序在你所指定的断点处停住。(断点可以是条件表达式)")]),t._v(" "),n("p",[t._v("3、程序被停住时,可以检查此时你的程序中所发生的事。")]),t._v(" "),n("p",[t._v("4、动态的改变你程序的执行环境。")]),t._v(" "),n("p",[t._v("从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。")]),t._v(" "),n("h2",{attrs:{id:"_0-2-调试示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-2-调试示例"}},[t._v("#")]),t._v(" 0.2 调试示例")]),t._v(" "),n("h3",{attrs:{id:"_0-2-1-源代码test1-c"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-2-1-源代码test1-c"}},[t._v("#")]),t._v(" 0.2.1 源代码test1.c")]),t._v(" "),n("div",{staticClass:"language-c line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-c"}},[n("code",[n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.")]),t._v("#include "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("stdio"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("h"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3.")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("func")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" sum"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8.")]),t._v(" sum"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" sum"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11.")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("12.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("13.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("14.")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("15.")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("p "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23.")]),t._v(" result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("24.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("25.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("j"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("26.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("27.")]),t._v(" m"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("28.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("29.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("30.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("printf")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-100] = %d \\n"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" result "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("printf")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-250] = %d \\n"')]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("func")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("33.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("34.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("35.")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br")])]),n("h3",{attrs:{id:"_0-2-2-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-2-2-调试过程"}},[t._v("#")]),t._v(" 0.2.2 调试过程")]),t._v(" "),n("p",[t._v("编译生成执行文件:")]),t._v(" "),n("div",{staticClass:"language-shell line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-shell"}},[n("code",[t._v("root@luo:~/workspace/test/ exec"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gcc -g test1.c -o test1\n使用GDB调试:\nroot@luo:~/workspace/test/exec"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gdb test1-------------- 启动GDB\nGNU gdb "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Wind River Linux Sourcery CodeBench "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.8")]),t._v("-45"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7.6")]),t._v("\nCopyright "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("C"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2013")]),t._v(" Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" or later "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("http://gnu.org/licenses/gpl.html"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\nThis is "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("free")]),t._v(" software: you are "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("free")]),t._v(" to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"show copying"')]),t._v("\nand "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"show warranty"')]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" details.\nThis GDB was configured as "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x86_64-wrs-linux-gnu"')]),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\nFor bug reporting instructions, please see:\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("support@windriver.com"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".\nReading symbols from /home/luo/workspace/test/exec/test1"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".done.\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" l "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-------------- 从第一行开始列出源码,l为list缩写\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#include ")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\tint func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("int n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v("\t\tint "),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" -------------- 直接回车表示重复上一次命令\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v("\tint main"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v("\t\tint i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v("\t\tint j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v("\t\tint result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v("\t\tint m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\t\tint *p "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v(" -------------- 设置断点,在源程序第16行\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" at 0x400566: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test1.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" func -------------- 设置断点,在func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("函数入口处\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" at 0x400537: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test1.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" info "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" -------------- 显示断点信息\nNum Type Disp Enb Address What\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" breakpoint keep y 0x0000000000400566 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main at test1.c:16\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" breakpoint keep y 0x0000000000400537 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" func at test1.c:5\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" r -------------- 运行程序,r为run简写\nStarting program: /home/luo/workspace/test/exec/test1 \nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test1.c:16\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v("\t\tint i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- 单条语句执行,next命令简写\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v("\t\tint j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v("\t\tint result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v("\t\tint m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\t\tint *p "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序,continue命令简写\nContinuing.\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-100"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v(" -------------- 程序输出\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", func "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test1.c:5\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v("\t\tint "),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p i -------------- 打印变量i的值,p为print命令简写\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("sum")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$2")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p i\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$3")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("sum")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$4")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" bt -------------- 查看函数堆栈\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#0 func (n=250) at test1.c:6")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#1 0x00000000004005dd in main () at test1.c:32")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" finish -------------- 退出函数\nRun till "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("exit")]),t._v(" from "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#0 func (n=250) at test1.c:6")]),t._v("\n0x00000000004005dd "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test1.c:32\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-250] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nValue returned is "),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$5")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31125")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行\nContinuing.\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-250"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31125")]),t._v(" -------------- 程序输出\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("Inferior "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("process "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("46602")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" exited normally"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" ------------ 程序退出,调试结束\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" q -------------- 退出GDB\nroot@luo:~/workspace/test/exec"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br"),n("span",{staticClass:"line-number"},[t._v("36")]),n("br"),n("span",{staticClass:"line-number"},[t._v("37")]),n("br"),n("span",{staticClass:"line-number"},[t._v("38")]),n("br"),n("span",{staticClass:"line-number"},[t._v("39")]),n("br"),n("span",{staticClass:"line-number"},[t._v("40")]),n("br"),n("span",{staticClass:"line-number"},[t._v("41")]),n("br"),n("span",{staticClass:"line-number"},[t._v("42")]),n("br"),n("span",{staticClass:"line-number"},[t._v("43")]),n("br"),n("span",{staticClass:"line-number"},[t._v("44")]),n("br"),n("span",{staticClass:"line-number"},[t._v("45")]),n("br"),n("span",{staticClass:"line-number"},[t._v("46")]),n("br"),n("span",{staticClass:"line-number"},[t._v("47")]),n("br"),n("span",{staticClass:"line-number"},[t._v("48")]),n("br"),n("span",{staticClass:"line-number"},[t._v("49")]),n("br"),n("span",{staticClass:"line-number"},[t._v("50")]),n("br"),n("span",{staticClass:"line-number"},[t._v("51")]),n("br"),n("span",{staticClass:"line-number"},[t._v("52")]),n("br"),n("span",{staticClass:"line-number"},[t._v("53")]),n("br"),n("span",{staticClass:"line-number"},[t._v("54")]),n("br"),n("span",{staticClass:"line-number"},[t._v("55")]),n("br"),n("span",{staticClass:"line-number"},[t._v("56")]),n("br"),n("span",{staticClass:"line-number"},[t._v("57")]),n("br"),n("span",{staticClass:"line-number"},[t._v("58")]),n("br"),n("span",{staticClass:"line-number"},[t._v("59")]),n("br"),n("span",{staticClass:"line-number"},[t._v("60")]),n("br"),n("span",{staticClass:"line-number"},[t._v("61")]),n("br"),n("span",{staticClass:"line-number"},[t._v("62")]),n("br"),n("span",{staticClass:"line-number"},[t._v("63")]),n("br"),n("span",{staticClass:"line-number"},[t._v("64")]),n("br"),n("span",{staticClass:"line-number"},[t._v("65")]),n("br"),n("span",{staticClass:"line-number"},[t._v("66")]),n("br"),n("span",{staticClass:"line-number"},[t._v("67")]),n("br"),n("span",{staticClass:"line-number"},[t._v("68")]),n("br"),n("span",{staticClass:"line-number"},[t._v("69")]),n("br"),n("span",{staticClass:"line-number"},[t._v("70")]),n("br"),n("span",{staticClass:"line-number"},[t._v("71")]),n("br"),n("span",{staticClass:"line-number"},[t._v("72")]),n("br"),n("span",{staticClass:"line-number"},[t._v("73")]),n("br"),n("span",{staticClass:"line-number"},[t._v("74")]),n("br"),n("span",{staticClass:"line-number"},[t._v("75")]),n("br"),n("span",{staticClass:"line-number"},[t._v("76")]),n("br"),n("span",{staticClass:"line-number"},[t._v("77")]),n("br"),n("span",{staticClass:"line-number"},[t._v("78")]),n("br"),n("span",{staticClass:"line-number"},[t._v("79")]),n("br"),n("span",{staticClass:"line-number"},[t._v("80")]),n("br"),n("span",{staticClass:"line-number"},[t._v("81")]),n("br"),n("span",{staticClass:"line-number"},[t._v("82")]),n("br"),n("span",{staticClass:"line-number"},[t._v("83")]),n("br"),n("span",{staticClass:"line-number"},[t._v("84")]),n("br"),n("span",{staticClass:"line-number"},[t._v("85")]),n("br"),n("span",{staticClass:"line-number"},[t._v("86")]),n("br"),n("span",{staticClass:"line-number"},[t._v("87")]),n("br"),n("span",{staticClass:"line-number"},[t._v("88")]),n("br"),n("span",{staticClass:"line-number"},[t._v("89")]),n("br"),n("span",{staticClass:"line-number"},[t._v("90")]),n("br"),n("span",{staticClass:"line-number"},[t._v("91")]),n("br"),n("span",{staticClass:"line-number"},[t._v("92")]),n("br"),n("span",{staticClass:"line-number"},[t._v("93")]),n("br"),n("span",{staticClass:"line-number"},[t._v("94")]),n("br"),n("span",{staticClass:"line-number"},[t._v("95")]),n("br"),n("span",{staticClass:"line-number"},[t._v("96")]),n("br"),n("span",{staticClass:"line-number"},[t._v("97")]),n("br")])]),n("h2",{attrs:{id:"_0-3-使用gdb"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-3-使用gdb"}},[t._v("#")]),t._v(" 0.3 使用GDB")]),t._v(" "),n("p",[t._v("一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:")]),t._v(" "),n("p",[t._v("> cc -g hello.c -o hello")]),t._v(" "),n("p",[t._v("> g++ -g hello.cpp -o hello")]),t._v(" "),n("p",[t._v("如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。")]),t._v(" "),n("h3",{attrs:{id:"_0-3-1-启动gdb"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-3-1-启动gdb"}},[t._v("#")]),t._v(" 0.3.1 启动GDB")]),t._v(" "),n("p",[t._v("启动GDB的方法有以下几种:")]),t._v(" "),n("p",[t._v("1、gdb ")]),t._v(" "),n("p",[t._v("program也就是你的执行文件,一般在当然目录下。")]),t._v(" "),n("p",[t._v("2、gdb core")]),t._v(" "),n("p",[t._v("用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。")]),t._v(" "),n("p",[t._v("3、gdb ")]),t._v(" "),n("p",[t._v("如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。")]),t._v(" "),n("p",[t._v("GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。下面只例举一些比较常用的参数:")]),t._v(" "),n("p",[t._v("-symbols ")]),t._v(" "),n("p",[t._v("-s ")]),t._v(" "),n("p",[t._v("从指定文件中读取符号表。")]),t._v(" "),n("p",[t._v("-se file")]),t._v(" "),n("p",[t._v("指定文件中读取符号表信息,并把他用在可执行文件中。")]),t._v(" "),n("p",[t._v("-core ")]),t._v(" "),n("p",[t._v("-c ")]),t._v(" "),n("p",[t._v("调试时core dump的core文件。")]),t._v(" "),n("p",[t._v("-directory ")]),t._v(" "),n("p",[t._v("-d ")]),t._v(" "),n("p",[t._v("加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。")]),t._v(" "),n("h3",{attrs:{id:"_0-3-2-gdb环境中使用shell命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-3-2-gdb环境中使用shell命令"}},[t._v("#")]),t._v(" 0.3.2 GDB环境中使用shell命令")]),t._v(" "),n("p",[t._v("在gdb环境中,你可以执行UNIX的shell的命令,使用gdb的shell命令来完成:")]),t._v(" "),n("p",[n("strong",[t._v("shell ")])]),t._v(" "),n("p",[t._v("调用UNIX的shell来执行,环境变量SHELL中定义的UNIX的shell将会被用来执行,如果SHELL没有定义,那就使用UNIX的标准shell:/bin/sh。(在Windows中使用Command.com或cmd.exe)")]),t._v(" "),n("p",[t._v("还有一个gdb命令是make:")]),t._v(" "),n("p",[n("strong",[t._v("make ")])]),t._v(" "),n("p",[t._v("可以在gdb中执行make命令来重新build自己的程序。这个命令等价于“shell make ”。")]),t._v(" "),n("h3",{attrs:{id:"_0-3-3-在gdb中运行程序"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_0-3-3-在gdb中运行程序"}},[t._v("#")]),t._v(" 0.3.3 在GDB中运行程序")]),t._v(" "),n("p",[t._v("当以gdb 方式启动gdb后,gdb会在PATH路径和当前目录中搜索的源文件。如要确认gdb是否读到源文件,可使用l或list命令,看看gdb是否能列出源代码。")]),t._v(" "),n("p",[t._v("在gdb中,运行程序使用r或是run命令。程序的运行,你有可能需要设置下面四方面的事。")]),t._v(" "),n("p",[t._v("1、程序运行参数。")]),t._v(" "),n("p",[t._v("set args 可指定运行时参数。(如:set args 10 20 30 40 50)")]),t._v(" "),n("p",[t._v("show args 命令可以查看设置好的运行参数。")]),t._v(" "),n("p",[t._v("2、运行环境。")]),t._v(" "),n("p",[t._v("path

可设定程序的运行路径。")]),t._v(" "),n("p",[t._v("show paths 查看程序的运行路径。")]),t._v(" "),n("p",[t._v("set environment varname [=value] 设置环境变量。如:set env USER=aaa")]),t._v(" "),n("p",[t._v("show environment [varname] 查看环境变量。")]),t._v(" "),n("p",[t._v("3、工作目录。")]),t._v(" "),n("p",[t._v("cd 相当于shell的cd命令。")]),t._v(" "),n("p",[t._v("pwd 显示当前的所在目录。")]),t._v(" "),n("p",[t._v("4、程序的输入输出。")]),t._v(" "),n("p",[t._v("info terminal 显示你程序用到的终端的模式。")]),t._v(" "),n("p",[t._v("使用重定向控制程序输出。如:run > outfile")]),t._v(" "),n("p",[t._v("tty命令可以指写输入输出的终端设备。如:tty /dev/ttyb。")]),t._v(" "),n("h1",{attrs:{id:"_1-设置断点"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_1-设置断点"}},[t._v("#")]),t._v(" 1 设置断点")]),t._v(" "),n("h2",{attrs:{id:"_1-1-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_1-1-使用命令"}},[t._v("#")]),t._v(" 1.1 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("break linenum")])]),t._v(" "),n("p",[t._v("在指定行号设置断点。")]),t._v(" "),n("p",[n("strong",[t._v("break function")])]),t._v(" "),n("p",[t._v("在函数function的入口处设置断点。C++中可以使用class::function或function(type,type)格式来指定函数名。")]),t._v(" "),n("p",[n("strong",[t._v("break +offset/-offset")])]),t._v(" "),n("p",[t._v("在当前行前面或后面offset行设置断点,offset为自然数。")]),t._v(" "),n("p",[n("strong",[t._v("break filename:linenum")])]),t._v(" "),n("p",[t._v("在源文件filename的linenum行处设置断点。")]),t._v(" "),n("p",[n("strong",[t._v("break filename:function")])]),t._v(" "),n("p",[t._v("在源文件filename的function函数的入口处设置断点。")]),t._v(" "),n("p",[n("strong",[t._v("break")])]),t._v(" "),n("p",[t._v("break命令没有参数时,表示在下一条指令处设置断点。")]),t._v(" "),n("p",[n("strong",[t._v("break args if cond")])]),t._v(" "),n("p",[t._v("设置一个带有条件cond的断点,只有条件为“真”时才停止。args代表上述参数之一。")]),t._v(" "),n("p",[n("strong",[t._v("delete [breakpoint num]")])]),t._v(" "),n("p",[t._v("删除断点,breakpoint num为断点号。")]),t._v(" "),n("p",[n("strong",[t._v("tbreak args")])]),t._v(" "),n("p",[t._v("设置仅停止一次的断点。args与上面break命令的相同。程序在该断点停止后,该断点便立即被删除。")]),t._v(" "),n("h2",{attrs:{id:"_1-2-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_1-2-示例"}},[t._v("#")]),t._v(" 1.2 示例")]),t._v(" "),n("p",[t._v("源代码test1.c 同上")]),t._v(" "),n("h3",{attrs:{id:"_1-2-1-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_1-2-1-调试过程"}},[t._v("#")]),t._v(" 1.2.1 调试过程")]),t._v(" "),n("p",[t._v("编译生成可执行文件,注意要带上 "),n("em",[t._v("-g")]),t._v(" :")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/source\\>gcc -g test.c -o ../exec/test")])]),t._v(" "),n("p",[t._v("使用GDB调试:")]),t._v(" "),n("div",{staticClass:"language-shell line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-shell"}},[n("code",[t._v("\nroot@luo:~/workspace/test/source"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gcc -g test.c -o "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("/exec/test\n使用GDB调试:\nroot@luo:~/workspace/test/exec"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gdb "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("test")]),t._v(" \nGNU gdb "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Wind River Linux Sourcery CodeBench "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.8")]),t._v("-45"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7.6")]),t._v("\nCopyright "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("C"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2013")]),t._v(" Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" or later "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("http://gnu.org/licenses/gpl.html"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\nThis is "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("free")]),t._v(" software: you are "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("free")]),t._v(" to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law. Type "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"show copying"')]),t._v("\nand "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"show warranty"')]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" details.\nThis GDB was configured as "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"x86_64-wrs-linux-gnu"')]),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\nFor bug reporting instructions, please see:\n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("support@windriver.com"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".\nReading symbols from /home/luo/workspace/test/exec/test"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".done.\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" l "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" -------------- l为list的简写,从第一行开始列出源码\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#include ")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\tint func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("int n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v("\t\tint "),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" -------------- 直接回车,表示重复上一次命令\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v("\tint main"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v("\t\tint i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v("\t\tint j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v("\t\tint result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v("\t\tint m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\t\tint *p "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),t._v("\t\t\tresult "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("24")]),t._v("\t \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),t._v("\t\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("j"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("26")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("27")]),t._v("\t\t\t\tm++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("28")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("29")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-100] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", result "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-250] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("33")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("34")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("35")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" main -------------- 设置断点,在函数main"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("入口处。\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" at 0x400566: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v(" -------------- 设置断点,在源程序第21行\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" at 0x400585: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" test.c:func -------------- 设置断点,在test.c文件的func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("函数入口处\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" at 0x400537: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" r -------------- 运行程序,run命令简写\nStarting program: /home/luo/workspace/test/exec/test \n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:17 ---------- 程序在main"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("入口停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v("\t\tint j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序,continue命令的简写\nContinuing.\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:22 -------------- 程序在22行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" tbreak "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("26")]),t._v(" -------------- 设置临时断点,在26行\nTemporary breakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" at 0x400594: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("26")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" info b -------------- 查看断点信息\nNum Type Disp Enb Address What\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" breakpoint keep y 0x0000000000400566 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main at test.c:17\n\tbreakpoint already hit "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("time")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" breakpoint keep y 0x0000000000400585 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main at test.c:21\n\tbreakpoint already hit "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("time")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" breakpoint keep y 0x0000000000400537 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" func at test.c:5\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" breakpoint del y 0x0000000000400594 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main at test.c:26\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\n\nTemporary breakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:26 --------------程序在26行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("26")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" info b -------------- 再查看断点信息,临时断点已删除\nNum Type Disp Enb Address What\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" breakpoint keep y 0x0000000000400566 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main at test.c:17\n\tbreakpoint already hit "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("time")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" breakpoint keep y 0x0000000000400585 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main at test.c:21\n\tbreakpoint already hit "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("time")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(" breakpoint keep y 0x0000000000400537 "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" func at test.c:5\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("27")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" ------------ 设置断点,在27行,当m"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("时生效\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(" at 0x4005b1: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("27")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:22 ------------ 程序在22行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:22\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:30 -------------- 程序在30行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" print "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"%d"')]),t._v(", m -------------- 打印m的值\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" -------------- 此时m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-100"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v(" \n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(", func "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:5 ---------- 程序在func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("函数入口处停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v("\t\tint "),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" tbreak +3 -------------- 在当前行+3行处设置临时断点\nTemporary breakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(" at 0x400547: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\nTemporary breakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(", func "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:8\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" -------------- 在下一条指令处设置断点\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v(" at 0x400547: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v(", func "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:8 -------------- 在第8行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v(", func "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:8 -------------- 在第8行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t\t"),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("clear")]),t._v(" --------------清楚所有断点\nDeleted breakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-250"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31125")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br"),n("span",{staticClass:"line-number"},[t._v("36")]),n("br"),n("span",{staticClass:"line-number"},[t._v("37")]),n("br"),n("span",{staticClass:"line-number"},[t._v("38")]),n("br"),n("span",{staticClass:"line-number"},[t._v("39")]),n("br"),n("span",{staticClass:"line-number"},[t._v("40")]),n("br"),n("span",{staticClass:"line-number"},[t._v("41")]),n("br"),n("span",{staticClass:"line-number"},[t._v("42")]),n("br"),n("span",{staticClass:"line-number"},[t._v("43")]),n("br"),n("span",{staticClass:"line-number"},[t._v("44")]),n("br"),n("span",{staticClass:"line-number"},[t._v("45")]),n("br"),n("span",{staticClass:"line-number"},[t._v("46")]),n("br"),n("span",{staticClass:"line-number"},[t._v("47")]),n("br"),n("span",{staticClass:"line-number"},[t._v("48")]),n("br"),n("span",{staticClass:"line-number"},[t._v("49")]),n("br"),n("span",{staticClass:"line-number"},[t._v("50")]),n("br"),n("span",{staticClass:"line-number"},[t._v("51")]),n("br"),n("span",{staticClass:"line-number"},[t._v("52")]),n("br"),n("span",{staticClass:"line-number"},[t._v("53")]),n("br"),n("span",{staticClass:"line-number"},[t._v("54")]),n("br"),n("span",{staticClass:"line-number"},[t._v("55")]),n("br"),n("span",{staticClass:"line-number"},[t._v("56")]),n("br"),n("span",{staticClass:"line-number"},[t._v("57")]),n("br"),n("span",{staticClass:"line-number"},[t._v("58")]),n("br"),n("span",{staticClass:"line-number"},[t._v("59")]),n("br"),n("span",{staticClass:"line-number"},[t._v("60")]),n("br"),n("span",{staticClass:"line-number"},[t._v("61")]),n("br"),n("span",{staticClass:"line-number"},[t._v("62")]),n("br"),n("span",{staticClass:"line-number"},[t._v("63")]),n("br"),n("span",{staticClass:"line-number"},[t._v("64")]),n("br"),n("span",{staticClass:"line-number"},[t._v("65")]),n("br"),n("span",{staticClass:"line-number"},[t._v("66")]),n("br"),n("span",{staticClass:"line-number"},[t._v("67")]),n("br"),n("span",{staticClass:"line-number"},[t._v("68")]),n("br"),n("span",{staticClass:"line-number"},[t._v("69")]),n("br"),n("span",{staticClass:"line-number"},[t._v("70")]),n("br"),n("span",{staticClass:"line-number"},[t._v("71")]),n("br"),n("span",{staticClass:"line-number"},[t._v("72")]),n("br"),n("span",{staticClass:"line-number"},[t._v("73")]),n("br"),n("span",{staticClass:"line-number"},[t._v("74")]),n("br"),n("span",{staticClass:"line-number"},[t._v("75")]),n("br"),n("span",{staticClass:"line-number"},[t._v("76")]),n("br"),n("span",{staticClass:"line-number"},[t._v("77")]),n("br"),n("span",{staticClass:"line-number"},[t._v("78")]),n("br"),n("span",{staticClass:"line-number"},[t._v("79")]),n("br"),n("span",{staticClass:"line-number"},[t._v("80")]),n("br"),n("span",{staticClass:"line-number"},[t._v("81")]),n("br"),n("span",{staticClass:"line-number"},[t._v("82")]),n("br"),n("span",{staticClass:"line-number"},[t._v("83")]),n("br"),n("span",{staticClass:"line-number"},[t._v("84")]),n("br"),n("span",{staticClass:"line-number"},[t._v("85")]),n("br"),n("span",{staticClass:"line-number"},[t._v("86")]),n("br"),n("span",{staticClass:"line-number"},[t._v("87")]),n("br"),n("span",{staticClass:"line-number"},[t._v("88")]),n("br"),n("span",{staticClass:"line-number"},[t._v("89")]),n("br"),n("span",{staticClass:"line-number"},[t._v("90")]),n("br"),n("span",{staticClass:"line-number"},[t._v("91")]),n("br"),n("span",{staticClass:"line-number"},[t._v("92")]),n("br"),n("span",{staticClass:"line-number"},[t._v("93")]),n("br"),n("span",{staticClass:"line-number"},[t._v("94")]),n("br"),n("span",{staticClass:"line-number"},[t._v("95")]),n("br"),n("span",{staticClass:"line-number"},[t._v("96")]),n("br"),n("span",{staticClass:"line-number"},[t._v("97")]),n("br"),n("span",{staticClass:"line-number"},[t._v("98")]),n("br"),n("span",{staticClass:"line-number"},[t._v("99")]),n("br"),n("span",{staticClass:"line-number"},[t._v("100")]),n("br"),n("span",{staticClass:"line-number"},[t._v("101")]),n("br"),n("span",{staticClass:"line-number"},[t._v("102")]),n("br"),n("span",{staticClass:"line-number"},[t._v("103")]),n("br"),n("span",{staticClass:"line-number"},[t._v("104")]),n("br"),n("span",{staticClass:"line-number"},[t._v("105")]),n("br"),n("span",{staticClass:"line-number"},[t._v("106")]),n("br"),n("span",{staticClass:"line-number"},[t._v("107")]),n("br"),n("span",{staticClass:"line-number"},[t._v("108")]),n("br"),n("span",{staticClass:"line-number"},[t._v("109")]),n("br"),n("span",{staticClass:"line-number"},[t._v("110")]),n("br"),n("span",{staticClass:"line-number"},[t._v("111")]),n("br"),n("span",{staticClass:"line-number"},[t._v("112")]),n("br"),n("span",{staticClass:"line-number"},[t._v("113")]),n("br"),n("span",{staticClass:"line-number"},[t._v("114")]),n("br"),n("span",{staticClass:"line-number"},[t._v("115")]),n("br"),n("span",{staticClass:"line-number"},[t._v("116")]),n("br"),n("span",{staticClass:"line-number"},[t._v("117")]),n("br"),n("span",{staticClass:"line-number"},[t._v("118")]),n("br"),n("span",{staticClass:"line-number"},[t._v("119")]),n("br"),n("span",{staticClass:"line-number"},[t._v("120")]),n("br"),n("span",{staticClass:"line-number"},[t._v("121")]),n("br"),n("span",{staticClass:"line-number"},[t._v("122")]),n("br"),n("span",{staticClass:"line-number"},[t._v("123")]),n("br"),n("span",{staticClass:"line-number"},[t._v("124")]),n("br"),n("span",{staticClass:"line-number"},[t._v("125")]),n("br"),n("span",{staticClass:"line-number"},[t._v("126")]),n("br"),n("span",{staticClass:"line-number"},[t._v("127")]),n("br"),n("span",{staticClass:"line-number"},[t._v("128")]),n("br"),n("span",{staticClass:"line-number"},[t._v("129")]),n("br"),n("span",{staticClass:"line-number"},[t._v("130")]),n("br"),n("span",{staticClass:"line-number"},[t._v("131")]),n("br"),n("span",{staticClass:"line-number"},[t._v("132")]),n("br"),n("span",{staticClass:"line-number"},[t._v("133")]),n("br"),n("span",{staticClass:"line-number"},[t._v("134")]),n("br"),n("span",{staticClass:"line-number"},[t._v("135")]),n("br"),n("span",{staticClass:"line-number"},[t._v("136")]),n("br"),n("span",{staticClass:"line-number"},[t._v("137")]),n("br"),n("span",{staticClass:"line-number"},[t._v("138")]),n("br")])]),n("h1",{attrs:{id:"_2-程序的单步执行"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_2-程序的单步执行"}},[t._v("#")]),t._v(" 2 程序的单步执行")]),t._v(" "),n("h2",{attrs:{id:"_2-1-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_2-1-使用命令"}},[t._v("#")]),t._v(" 2.1 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("step ")])]),t._v(" "),n("p",[t._v("单步跟踪,如果有函数调用,他会进入该函数。进入函数的前提是,此函数被编译有debug信息。后面可以加count也可以不加,不加表示一条条地执行,加表示执行后面的count条指令,然后再停住。")]),t._v(" "),n("p",[n("strong",[t._v("next ")])]),t._v(" "),n("p",[t._v("同样单步跟踪,如果有函数调用,他不会进入该函数。后面可以加count也可以不加,不加表示一条条地执行,加表示执行后面的count条指令,然后再停住。")]),t._v(" "),n("p",[n("strong",[t._v("finish")])]),t._v(" "),n("p",[t._v("运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值及参数值等信息。")]),t._v(" "),n("p",[n("strong",[t._v("until 或 u")])]),t._v(" "),n("p",[t._v("当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体。")]),t._v(" "),n("h2",{attrs:{id:"_2-2-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_2-2-示例"}},[t._v("#")]),t._v(" 2.2 示例")]),t._v(" "),n("p",[t._v("源代码test1.c 同上")]),t._v(" "),n("h3",{attrs:{id:"_2-2-1-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_2-2-1-调试过程"}},[t._v("#")]),t._v(" 2.2.1 调试过程")]),t._v(" "),n("div",{staticClass:"language-shell line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-shell"}},[n("code",[t._v("root@luo:~/workspace/test/exec"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gdb -q "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("test")]),t._v(" \n----- 启动GDB,-q使启动使版本信息不显示\nReading symbols from /home/luo/workspace/test/exec/test"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".done.\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v(" -------------- 在第18行设置断点\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" at 0x400574: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" r -------------- 运行程序\nStarting program: /home/luo/workspace/test/exec/test \n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:18 -------------- 在18行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v("\t\tint result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- 下一条\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v("\t\tint m "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- 下一条\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\t\tint *p "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&")]),t._v("m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" s -------------- 下一条\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" s -------------- 下一条\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),t._v("\t\t\tresult "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- 下一条\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),t._v("\t\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("j"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- 下一条 \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("27")]),t._v("\t\t\t\tm++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" u -------------- 运行函数到退出当前循环\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),t._v("\t\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("j"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" j++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" u -------------- 运行程序到退出当前循环\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" u -------------- 运行程序到退出当前循环\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-100] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", result "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" s -------------- 下一条\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-100"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-250] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" s -------------- step下一条\nfunc "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:5 -------------- 进入函数func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v("\t\tint "),n("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("sum")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",i"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" finish -------------- 运行程序到函数完成\nRun till "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("exit")]),t._v(" from "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#0 func (n=250) at test.c:5")]),t._v("\n0x00000000004005dd "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:32\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-250] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nValue returned is "),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31125")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" r -------------- 再次运行程序\nThe program being debugged has been started already.\nStart it from the beginning? "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("y or n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" y\nStarting program: /home/luo/workspace/test/exec/test \nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:18 -------------- 程序在18行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v("\t\tint result "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v(" -------------- 设置断点,在30行\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" at 0x4005bf: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test.c:31 -------------- 程序在31行停止\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-100] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", result "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- next下一条\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-100"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("\t\tprintf"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"result[1-250] = %d '),n("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[t._v("\\n")]),t._v('"')]),t._v(", func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("250")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" n -------------- next下一条\nresult"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("-250"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("31125")]),t._v(" -------------- 未进入函数func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("34")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br"),n("span",{staticClass:"line-number"},[t._v("36")]),n("br"),n("span",{staticClass:"line-number"},[t._v("37")]),n("br"),n("span",{staticClass:"line-number"},[t._v("38")]),n("br"),n("span",{staticClass:"line-number"},[t._v("39")]),n("br"),n("span",{staticClass:"line-number"},[t._v("40")]),n("br"),n("span",{staticClass:"line-number"},[t._v("41")]),n("br"),n("span",{staticClass:"line-number"},[t._v("42")]),n("br"),n("span",{staticClass:"line-number"},[t._v("43")]),n("br"),n("span",{staticClass:"line-number"},[t._v("44")]),n("br"),n("span",{staticClass:"line-number"},[t._v("45")]),n("br"),n("span",{staticClass:"line-number"},[t._v("46")]),n("br"),n("span",{staticClass:"line-number"},[t._v("47")]),n("br"),n("span",{staticClass:"line-number"},[t._v("48")]),n("br"),n("span",{staticClass:"line-number"},[t._v("49")]),n("br"),n("span",{staticClass:"line-number"},[t._v("50")]),n("br"),n("span",{staticClass:"line-number"},[t._v("51")]),n("br"),n("span",{staticClass:"line-number"},[t._v("52")]),n("br"),n("span",{staticClass:"line-number"},[t._v("53")]),n("br"),n("span",{staticClass:"line-number"},[t._v("54")]),n("br"),n("span",{staticClass:"line-number"},[t._v("55")]),n("br"),n("span",{staticClass:"line-number"},[t._v("56")]),n("br"),n("span",{staticClass:"line-number"},[t._v("57")]),n("br"),n("span",{staticClass:"line-number"},[t._v("58")]),n("br")])]),n("h1",{attrs:{id:"_3-显示-修改变量的值"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_3-显示-修改变量的值"}},[t._v("#")]),t._v(" 3 显示/修改变量的值")]),t._v(" "),n("h2",{attrs:{id:"_3-1使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_3-1使用命令"}},[t._v("#")]),t._v(" 3.1使用命令")]),t._v(" "),n("p",[n("strong",[t._v("print ")])]),t._v(" "),n("p",[n("strong",[t._v("print / ")])]),t._v(" "),n("p",[t._v("当程序被停住时,可以使用print命令(简写为p),或同义命令inspect来查看当前程序的运行数据。是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x。")]),t._v(" "),n("p",[n("strong",[t._v("注意")]),t._v(":GDB中,变量分为全局变量、静态全局变量、局部变量三种,当局部变量与全局变量发生重名时,用pirnt显示出的变量的值会是函数中的局部变量的值。此时如果要查看全局变量的值,可以使用“::”操作符:")]),t._v(" "),n("p",[n("strong",[t._v("file::variable")])]),t._v(" "),n("p",[n("strong",[t._v("function::variable")])]),t._v(" "),n("p",[t._v("可以通过这种形式查看某个文件或是某个函数的变量。")]),t._v(" "),n("h2",{attrs:{id:"_3-2示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_3-2示例"}},[t._v("#")]),t._v(" 3.2示例")]),t._v(" "),n("h3",{attrs:{id:"_3-2-1-源代码test2-c"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_3-2-1-源代码test2-c"}},[t._v("#")]),t._v(" 3.2.1 源代码test2.c")]),t._v(" "),n("div",{staticClass:"language-c line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-c"}},[n("code",[n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.")]),t._v("#include "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("stdio"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("h"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3.")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("func")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7.")]),t._v(" n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11.")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("12.")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("13.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("14.")]),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("main")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("15.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" b "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("int")]),t._v(" sum "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19.")]),t._v(" sum "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("func")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21.")]),t._v(" n"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23.")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("24.")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br")])]),n("h3",{attrs:{id:"_3-2-2-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_3-2-2-调试过程"}},[t._v("#")]),t._v(" 3.2.2 调试过程")]),t._v(" "),n("p",[t._v("编译生成可执行文件:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/source\\>gcc -g test2.c -o ../exec/test2")])]),t._v(" "),n("p",[t._v("启动GDB:")]),t._v(" "),n("div",{staticClass:"language-sh line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-sh"}},[n("code",[t._v("\nroot@luo:~/workspace/test/source"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gcc -g test2.c -o "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("/exec/test2\n启动GDB:\nroot@luo:~/workspace/test/exec"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("gdb -q test2\nReading symbols from /home/luo/workspace/test/exec/test2"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".done.\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" l "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#include ")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v("\tint func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("int m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v("\t\tint n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v("\t\tint i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v("\t\t\tn "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" m"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("return")]),t._v(" n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v("\tint "),n("span",{pre:!0,attrs:{class:"token function-name function"}},[t._v("main")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v("\t\tint i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v("\t\tint b "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v("\t\tint n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v("\t\tint "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("sum")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("sum")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\t\tfor"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v("\t\t\tn++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("22")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("23")]),t._v("\t\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("24")]),t._v("\t\t"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),t._v("\t"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" func -------------- 设置断点,在func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("函数入口处\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" at 0x4004f7: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test2.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("break")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v(" -------------- 设置断点,在21行\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" at 0x40055f: "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("file")]),t._v(" test2.c, line "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v(".\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" r -------------- 运行程序\nStarting program: /home/luo/workspace/test/exec/test2 \n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", func "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("m"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test2.c:4\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v("\t\tint n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p n -------------- 在func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("函数内,显示变量n的值\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$1")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p main::n ------------ 在func"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("内,显示main"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("函数中n的值\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$2")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(" \n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test2.c:21\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v("\t\t\tn++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p n -------------- 显示n的值\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$3")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p n "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v(" -------------- 修改n的值为50\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$4")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p n -------------- 显示n的值\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$5")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" c -------------- 继续运行程序\nContinuing.\n\nBreakpoint "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", main "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" at test2.c:21\n"),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),t._v("\t\t\tn++"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p n ------------ 显示n的值,可以看到,n在修改基础上加1\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$6")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("51")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" p /x n ------------ 用16进制显示n值\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$7")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" 0x33 \n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("gdb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br"),n("span",{staticClass:"line-number"},[t._v("34")]),n("br"),n("span",{staticClass:"line-number"},[t._v("35")]),n("br"),n("span",{staticClass:"line-number"},[t._v("36")]),n("br"),n("span",{staticClass:"line-number"},[t._v("37")]),n("br"),n("span",{staticClass:"line-number"},[t._v("38")]),n("br"),n("span",{staticClass:"line-number"},[t._v("39")]),n("br"),n("span",{staticClass:"line-number"},[t._v("40")]),n("br"),n("span",{staticClass:"line-number"},[t._v("41")]),n("br"),n("span",{staticClass:"line-number"},[t._v("42")]),n("br"),n("span",{staticClass:"line-number"},[t._v("43")]),n("br"),n("span",{staticClass:"line-number"},[t._v("44")]),n("br"),n("span",{staticClass:"line-number"},[t._v("45")]),n("br"),n("span",{staticClass:"line-number"},[t._v("46")]),n("br"),n("span",{staticClass:"line-number"},[t._v("47")]),n("br"),n("span",{staticClass:"line-number"},[t._v("48")]),n("br"),n("span",{staticClass:"line-number"},[t._v("49")]),n("br"),n("span",{staticClass:"line-number"},[t._v("50")]),n("br"),n("span",{staticClass:"line-number"},[t._v("51")]),n("br"),n("span",{staticClass:"line-number"},[t._v("52")]),n("br"),n("span",{staticClass:"line-number"},[t._v("53")]),n("br"),n("span",{staticClass:"line-number"},[t._v("54")]),n("br"),n("span",{staticClass:"line-number"},[t._v("55")]),n("br"),n("span",{staticClass:"line-number"},[t._v("56")]),n("br"),n("span",{staticClass:"line-number"},[t._v("57")]),n("br"),n("span",{staticClass:"line-number"},[t._v("58")]),n("br"),n("span",{staticClass:"line-number"},[t._v("59")]),n("br"),n("span",{staticClass:"line-number"},[t._v("60")]),n("br"),n("span",{staticClass:"line-number"},[t._v("61")]),n("br"),n("span",{staticClass:"line-number"},[t._v("62")]),n("br"),n("span",{staticClass:"line-number"},[t._v("63")]),n("br"),n("span",{staticClass:"line-number"},[t._v("64")]),n("br"),n("span",{staticClass:"line-number"},[t._v("65")]),n("br"),n("span",{staticClass:"line-number"},[t._v("66")]),n("br"),n("span",{staticClass:"line-number"},[t._v("67")]),n("br")])]),n("h1",{attrs:{id:"_4-监视程序变量值"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_4-监视程序变量值"}},[t._v("#")]),t._v(" 4 监视程序变量值")]),t._v(" "),n("h2",{attrs:{id:"_4-1-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_4-1-使用命令"}},[t._v("#")]),t._v(" 4.1 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("display ")])]),t._v(" "),n("p",[n("strong",[t._v("display/ ")])]),t._v(" "),n("p",[n("strong",[t._v("display/ ")])]),t._v(" "),n("p",[t._v("display命令可以设置一些自动显示的变量,当程序停住时,或是在单步跟踪时,这些变量会自动显示。expr是一个表达式,fmt表示显示的格式,addr表示内存地址,当用display设定好了一个或多个表达式后,只要程序被停下来,GDB会自动显示你所设置的这些表达式的值。")]),t._v(" "),n("p",[n("strong",[t._v("undisplay ")])]),t._v(" "),n("p",[n("strong",[t._v("delete display ")])]),t._v(" "),n("p",[t._v("删除自动显示,dnums意为所设置好了的自动显式的编号。如果要同时删除几个,编号可以用空格分隔,如果要删除一个范围内的编号,可以用减号表示(如:2-5)。")]),t._v(" "),n("p",[n("strong",[t._v("disable display ")])]),t._v(" "),n("p",[n("strong",[t._v("enable display ")])]),t._v(" "),n("p",[t._v("disable和enalbe不删除自动显示的设置,而只是让其失效和恢复。")]),t._v(" "),n("p",[n("strong",[t._v("info display")])]),t._v(" "),n("p",[t._v("查看display设置的自动显示的信息,包括设置的编号,表达式,是否enable。")]),t._v(" "),n("h2",{attrs:{id:"_4-2-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_4-2-示例"}},[t._v("#")]),t._v(" 4.2 示例")]),t._v(" "),n("p",[t._v("源代码test2.c同上")]),t._v(" "),n("h3",{attrs:{id:"_4-2-1-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_4-2-1-调试过程"}},[t._v("#")]),t._v(" 4.2.1 调试过程")]),t._v(" "),n("p",[t._v("启动GDB:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gdb -q test2")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /home/luo/workspace/test/exec/test2...done.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) l 1 --------------")]),t._v(" 列出源代码")]),t._v(" "),n("p",[n("em",[t._v("1 #include ")])]),t._v(" "),n("p",[n("em",[t._v("2")])]),t._v(" "),n("p",[n("em",[t._v("3 int func(int m){")])]),t._v(" "),n("p",[n("em",[t._v("4 int n = 0;")])]),t._v(" "),n("p",[n("em",[t._v("5 int i = 0;")])]),t._v(" "),n("p",[n("em",[t._v("6 for(i = 0; i < m; i++){")])]),t._v(" "),n("p",[n("em",[t._v("7 n += m;")])]),t._v(" "),n("p",[n("em",[t._v("8 }")])]),t._v(" "),n("p",[n("em",[t._v("9")])]),t._v(" "),n("p",[n("em",[t._v("10 return n;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("11")])]),t._v(" "),n("p",[n("em",[t._v("12 }")])]),t._v(" "),n("p",[n("em",[t._v("13")])]),t._v(" "),n("p",[n("em",[t._v("14 int main(){")])]),t._v(" "),n("p",[n("em",[t._v("15 int i = 0;")])]),t._v(" "),n("p",[n("em",[t._v("16 int b = 0;")])]),t._v(" "),n("p",[n("em",[t._v("17 int n = 20;")])]),t._v(" "),n("p",[n("em",[t._v("18 int sum = 0;")])]),t._v(" "),n("p",[n("em",[t._v("19 sum = func(40);")])]),t._v(" "),n("p",[n("em",[t._v("20 for(i = 0; i < 10; i++){")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("22 }")])]),t._v(" "),n("p",[n("em",[t._v("23")])]),t._v(" "),n("p",[n("em",[t._v("24 return 0;")])]),t._v(" "),n("p",[n("em",[t._v("25 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) break 21 --------------")]),t._v(" 设置断点,在21行")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1 at 0x40055f: file test2.c, line 21.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) r --------------")]),t._v(" 运行程序")]),t._v(" "),n("p",[n("em",[t._v("Starting program: /home/luo/workspace/test/exec/test2")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:21")])]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) display n --------------")]),t._v(" 跟踪变量"),n("em",[t._v("n")]),t._v("的值")]),t._v(" "),n("p",[n("em",[t._v("1: n = 20")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) display i --------------")]),t._v(" 跟踪变量"),n("em",[t._v("i")]),t._v("的值")]),t._v(" "),n("p",[n("em",[t._v("2: i = 0")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) display n+i --------------")]),t._v(" 跟踪"),n("em",[t._v("n+i")]),t._v("的值")]),t._v(" "),n("p",[n("em",[t._v("3: n+i = 20")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) display/x n --------------")]),t._v(" 跟踪"),n("em",[t._v("n")]),t._v("的值,以16进制显示")]),t._v(" "),n("p",[n("em",[t._v("4: /x n = 0x14")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) display &n --------------")]),t._v(" 跟踪"),n("em",[t._v("n")]),t._v("的地址")]),t._v(" "),n("p",[n("em",[t._v("5: &n = (int *) 0x7fffffffe0a8")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 继续运行程序")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:21")])]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("5: &n = (int *) 0x7fffffffe0a8")])]),t._v(" "),n("p",[n("em",[t._v("4: /x n = 0x15")])]),t._v(" "),n("p",[n("em",[t._v("3: n+i = 22")])]),t._v(" "),n("p",[n("em",[t._v("2: i = 1")])]),t._v(" "),n("p",[n("em",[t._v("1: n = 21")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) delete display 4 --------------")]),t._v(" 删除4号跟踪")]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 继续运行程序")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:21 ------------")]),t._v(" 可以看到,4号没了")]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("5: &n = (int *) 0x7fffffffe0a8")])]),t._v(" "),n("p",[n("em",[t._v("3: n+i = 24")])]),t._v(" "),n("p",[n("em",[t._v("2: i = 2")])]),t._v(" "),n("p",[n("em",[t._v("1: n = 22")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) disable display 5 --------------")]),t._v(" 使5号跟踪失效")]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 继续运行程序")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:21 -------")]),t._v(" 可以看到,5号也没显示")]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("3: n+i = 26")])]),t._v(" "),n("p",[n("em",[t._v("2: i = 3")])]),t._v(" "),n("p",[n("em",[t._v("1: n = 23")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) enable display 5 --------------")]),t._v(" 使5号跟踪恢复")]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 继续运行程序")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:21 ------")]),t._v(" 可以看到,5号再次显示")]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("5: &n = (int *) 0x7fffffffe0a8")])]),t._v(" "),n("p",[n("em",[t._v("3: n+i = 28")])]),t._v(" "),n("p",[n("em",[t._v("2: i = 4")])]),t._v(" "),n("p",[n("em",[t._v("1: n = 24")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info display --------------")]),t._v(" 查看自动显示信息")]),t._v(" "),n("p",[n("em",[t._v("Auto-display expressions now in effect:")])]),t._v(" "),n("p",[n("em",[t._v("Num Enb Expression")])]),t._v(" "),n("p",[n("em",[t._v("5: y &n")])]),t._v(" "),n("p",[n("em",[t._v("3: y n+i")])]),t._v(" "),n("p",[n("em",[t._v("2: y i")])]),t._v(" "),n("p",[n("em",[t._v("1: y n")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) disable display 1 2 3 -----------")]),t._v(" 使1,2,3号都失效")]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 继续运行程序")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:21")])]),t._v(" "),n("p",[n("em",[t._v("21 n++;")])]),t._v(" "),n("p",[n("em",[t._v("5: &n = (int *) 0x7fffffffe0a8")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info display --------------")]),t._v(" 查看自动显示信息")]),t._v(" "),n("p",[n("em",[t._v("Auto-display expressions now in effect:")])]),t._v(" "),n("p",[n("em",[t._v("Num Enb Expression")])]),t._v(" "),n("p",[n("em",[t._v("5: y &n")])]),t._v(" "),n("p",[n("em",[t._v("3: n n+i")])]),t._v(" "),n("p",[n("em",[t._v("2: n i")])]),t._v(" "),n("p",[n("em",[t._v("1: n n")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("ul",[n("li"),t._v(" "),n("li")]),t._v(" "),n("h1",{attrs:{id:"_5-显示-修改寄存器"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_5-显示-修改寄存器"}},[t._v("#")]),t._v(" 5 显示/修改寄存器")]),t._v(" "),n("h2",{attrs:{id:"_5-1-背景知识"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_5-1-背景知识"}},[t._v("#")]),t._v(" 5.1 背景知识")]),t._v(" "),n("p",[t._v("先明确一点,这里指的是通用寄存器(后简称寄存器)。既然是通用的,使用并没有限制;后面介绍寄存器使用规则或者惯例,只是GCC/G++的规则。因为我们想对GCC编译的C/C++序进行分析,所以了解这些规则就很有帮助。")]),t._v(" "),n("p",[t._v("在体系结构教科书中,寄存器通常被说成寄存器文件,其实就是CPU上的一块存储区域,不过更喜欢使用标识符来表示,而不是地址而已。")]),t._v(" "),n("p",[t._v("X86-64中,所有寄存器都是64位,相对32位的x86来说,标识符发生了变化,比如:从原来的%ebp变成了%rbp。为了向后兼容性,%ebp依然可以使用,不过指向了%rbp的低32位。")]),t._v(" "),n("p",[t._v("X86-64寄存器的变化,不仅体现在位数上,更加体现在寄存器数量上。新增加寄存器%r8到%r15。加上x86的原有8个,一共16个寄存器。")]),t._v(" "),n("p",[t._v("刚刚说到,寄存器集成在CPU上,存取速度比存储器快好几个数量级,寄存器多了,GCC就可以更多的使用寄存器,替换之前的存储器堆栈使用,从而大大提升性能。")]),t._v(" "),n("p",[t._v("让寄存器为己所用,就得了解它们的用途,这些用途都涉及函数调用,X86-64有16个64位寄存器,分别是:")]),t._v(" "),n("p",[t._v("%rax,%rbx,%rcx,%rdx,%rsi,%rdi,%rbp,%rsp,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15。")]),t._v(" "),n("p",[t._v("其中:")]),t._v(" "),n("p",[t._v("%rax 作为函数返回值使用。")]),t._v(" "),n("p",[t._v("%rsp 栈指针寄存器,指向栈顶。")]),t._v(" "),n("p",[t._v("%rdi,%rsi,%rdx,%rcx,%r8,%r9 用作函数参数,依次对应第1参数,第2参数…")]),t._v(" "),n("p",[t._v("%rbx,%rbp,%r12,%r13,%14,%15 用作数据存储,遵循被调用者使用规则,简单说就是随便用,调用子函数之前要备份它,以防他被修改。")]),t._v(" "),n("p",[t._v("%r10,%r11 用作数据存储,遵循调用者使用规则,简单说就是使用之前要先保存原值。")]),t._v(" "),n("p",[n("img",{attrs:{src:"media/1e797b88a9a47d8bf638b1897e086c27.png",alt:""}})]),t._v(" "),n("h2",{attrs:{id:"_5-2-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_5-2-使用命令"}},[t._v("#")]),t._v(" 5.2 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("info registers")])]),t._v(" "),n("p",[t._v("查看寄存器的情况。(不包括浮点寄存器)")]),t._v(" "),n("p",[n("strong",[t._v("info all-registers")])]),t._v(" "),n("p",[t._v("查看所有寄存器的情况。(包括浮点寄存器)")]),t._v(" "),n("p",[n("strong",[t._v("info registers ")])]),t._v(" "),n("p",[t._v("查看所指定的寄存器的情况。")]),t._v(" "),n("p",[n("strong",[t._v("set $=")])]),t._v(" "),n("p",[t._v("修改寄存器的值。")]),t._v(" "),n("h2",{attrs:{id:"_5-3-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_5-3-示例"}},[t._v("#")]),t._v(" 5.3 示例")]),t._v(" "),n("p",[t._v("源代码test2.c同上")]),t._v(" "),n("h3",{attrs:{id:"_5-2-1-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_5-2-1-调试过程"}},[t._v("#")]),t._v(" 5.2.1 调试过程")]),t._v(" "),n("p",[t._v("启动GDB:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gdb -q test2")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /home/luo/workspace/test/exec/test2...done.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) b main --------------")]),t._v(" 在main函数设置断点")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1 at 0x40052d: file test2.c, line 15.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) r --------------")]),t._v(" 运行程序")]),t._v(" "),n("p",[n("em",[t._v("Starting program: /home/luo/workspace/test/exec/test2")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at test2.c:15")])]),t._v(" "),n("p",[n("em",[t._v("15 int i = 0;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) s --------------")]),t._v(" step单步执行")]),t._v(" "),n("p",[n("em",[t._v("16 int b = 0;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("17 int n = 20;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("18 int sum = 0;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("19 sum = func(40);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("func (m=40) at test2.c:4 --------------")]),t._v(" 进入*func()*函数了")]),t._v(" "),n("p",[n("em",[t._v("4 int n = 0;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) i all-r --------------")]),t._v(" 显示所有寄存器信息")]),t._v(" "),n("p",[n("em",[t._v("rax 0x400525 4195621")])]),t._v(" "),n("p",[n("em",[t._v("rbx 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("rcx 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("rdx 0x7fffffffe1a8 140737488347560")])]),t._v(" "),n("p",[n("em",[t._v("rsi 0x7fffffffe198 140737488347544")])]),t._v(" "),n("p",[n("em",[t._v("rdi 0x28 40")])]),t._v(" "),n("p",[n("em",[t._v("rbp 0x7fffffffe090 0x7fffffffe090")])]),t._v(" "),n("p",[n("em",[t._v("rsp 0x7fffffffe090 0x7fffffffe090")])]),t._v(" "),n("p",[n("em",[t._v("r8 0x30555a3c60 207590407264")])]),t._v(" "),n("p",[n("em",[t._v("r9 0x305360ec80 207557291136")])]),t._v(" "),n("p",[n("em",[t._v("r10 0x7fffffffdf40 140737488346944")])]),t._v(" "),n("p",[n("em",[t._v("r11 0x3055221b00 207586728704")])]),t._v(" "),n("p",[n("em",[t._v("r12 0x4003b0 4195248")])]),t._v(" "),n("p",[n("em",[t._v("r13 0x7fffffffe190 140737488347536")])]),t._v(" "),n("p",[n("em",[t._v("r14 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("r15 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("rip 0x4004f7 0x4004f7 ")])]),t._v(" "),n("p",[n("em",[t._v("eflags 0x206 [ PF IF ]")])]),t._v(" "),n("p",[n("em",[t._v("cs 0x33 51")])]),t._v(" "),n("p",[n("em",[t._v("ss 0x2b 43")])]),t._v(" "),n("p",[n("em",[t._v("ds 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("es 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("fs 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("gs 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("st0 0 (raw 0x00000000000000000000)")])]),t._v(" "),n("p",[n("em",[t._v("st1 0 (raw 0x00000000000000000000)")])]),t._v(" "),n("p",[n("em",[t._v("---Type to continue, or q to quit---q")])]),t._v(" "),n("p",[n("em",[t._v("Quit --------------")]),t._v(" 退出显示")]),t._v(" "),n("p",[n("em",[t._v("(gdb) i r --------------")]),t._v(" 显示寄存器信息,不包括浮点寄存器")]),t._v(" "),n("p",[n("em",[t._v("rax 0x400525 4195621")])]),t._v(" "),n("p",[n("em",[t._v("rbx 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("rcx 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("rdx 0x7fffffffe1a8 140737488347560")])]),t._v(" "),n("p",[n("em",[t._v("rsi 0x7fffffffe198 140737488347544")])]),t._v(" "),n("p",[n("em",[t._v("rdi 0x28 40")])]),t._v(" "),n("p",[n("em",[t._v("rbp 0x7fffffffe090 0x7fffffffe090")])]),t._v(" "),n("p",[n("em",[t._v("rsp 0x7fffffffe090 0x7fffffffe090")])]),t._v(" "),n("p",[n("em",[t._v("r8 0x30555a3c60 207590407264")])]),t._v(" "),n("p",[n("em",[t._v("r9 0x305360ec80 207557291136")])]),t._v(" "),n("p",[n("em",[t._v("r10 0x7fffffffdf40 140737488346944")])]),t._v(" "),n("p",[n("em",[t._v("r11 0x3055221b00 207586728704")])]),t._v(" "),n("p",[n("em",[t._v("r12 0x4003b0 4195248")])]),t._v(" "),n("p",[n("em",[t._v("r13 0x7fffffffe190 140737488347536")])]),t._v(" "),n("p",[n("em",[t._v("r14 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("r15 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("rip 0x4004f7 0x4004f7 ")])]),t._v(" "),n("p",[n("em",[t._v("eflags 0x206 [ PF IF ]")])]),t._v(" "),n("p",[n("em",[t._v("cs 0x33 51")])]),t._v(" "),n("p",[n("em",[t._v("ss 0x2b 43")])]),t._v(" "),n("p",[n("em",[t._v("ds 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("es 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("fs 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("gs 0x0 0")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info registers rax --------------")]),t._v(" 查看指定寄存器的信息")]),t._v(" "),n("p",[n("em",[t._v("rax 0x400525 4195621")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n --------------")]),t._v(" 单步执行")]),t._v(" "),n("p",[n("em",[t._v("5 int i = 0;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("6 for(i = 0; i < m; i++){")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("7 n += m;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) u --------------")]),t._v(" 执行直至循环结束")]),t._v(" "),n("p",[n("em",[t._v("6 for(i = 0; i < m; i++){")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("10 return n;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) i r rax --------------")]),t._v(" 查看指定寄存器"),n("em",[t._v("rax")]),t._v("信息,其存放函数返回值")]),t._v(" "),n("p",[n("em",[t._v("rax 0x28 40")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n --------------")]),t._v(" 单步执行,此时已经return")]),t._v(" "),n("p",[n("em",[t._v("12 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) i r rax --------------")]),t._v(" 查看"),n("em",[t._v("rax")]),t._v("信息,为1600")]),t._v(" "),n("p",[n("em",[t._v("rax 0x640 1600")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) set $rax=99 --------------")]),t._v(" 将"),n("em",[t._v("rax")]),t._v("值修改为99")]),t._v(" "),n("p",[n("em",[t._v("(gdb) i r rax --------------")]),t._v(" 再查看"),n("em",[t._v("rax")]),t._v(",为99")]),t._v(" "),n("p",[n("em",[t._v("rax 0x63 99")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n --------------")]),t._v(" 单步执行,此时已经退出函数")]),t._v(" "),n("p",[n("em",[t._v("main () at test2.c:20")])]),t._v(" "),n("p",[n("em",[t._v("20 for(i = 0; i < 10; i++){")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) p sum -----------")]),t._v(" 显示sum值,其值应为刚刚*func()*函数的返回值")]),t._v(" "),n("p",[n("em",[t._v("$1 = 99 -----------")]),t._v(" 正确")]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("h1",{attrs:{id:"_6-查看程序的堆栈"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_6-查看程序的堆栈"}},[t._v("#")]),t._v(" 6 查看程序的堆栈")]),t._v(" "),n("h2",{attrs:{id:"_6-1-背景知识"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_6-1-背景知识"}},[t._v("#")]),t._v(" 6.1 背景知识")]),t._v(" "),n("p",[t._v("当你的程序到暂停到断点处时,你需要知道的第一件事就是知道程序停在哪儿,以及通过什么样的函数调用关系到达这里的。")]),t._v(" "),n("p",[t._v("每当你的程序调用一个函数,这个函数的相关信息将会生成,该信息包括这个函数在程序中的位置,函数的参数,以及被调用的局部变量的值。这些信息保存在一个数据块中,这个数据块叫做栈框。这些栈框位于内存中称为栈的区域。")]),t._v(" "),n("p",[t._v("当你的程序断点处停止,GDB查看堆栈的命令允许你看到所有函数相关的信息。")]),t._v(" "),n("p",[t._v("栈被划分为多个连续的块,每个块称为栈框;每个栈框都存有与调用函数相关的数据。栈框中包含了调用函数的参数,调用函数的局部变量。以及这个函数的执行的地址。")]),t._v(" "),n("p",[t._v("当程序开始执行时,栈上就只有一个栈框,也就是用来描述Main函数的。这个栈框称为初始化栈框或最外层栈框。每当调用一个函数,一个新的栈框将会生成。每当一个函数结束,该函数对应的栈框将会消除。如果一个函数是递归函数,这将会对同一个函数产生很多个栈框。正在执行函数的栈框将叫做最内层栈框。这个是所有存在栈框中最新创建的。在你的程序里,栈框通过它对应到的地址进行标识。一个栈框由多个字节组成,每个栈框都有自己的地址,当程序执行到这个栈框时。通常这个栈框地址存放在特定的寄存器中。")]),t._v(" "),n("p",[t._v("gdb为每个存在的栈框赋上一个标号。标号从0开始,0表示最里层的栈框。也就是正在被调用函数的栈框。这些标号在程序中并不存在,它是由gdb赋予的,gdb通过赋予这个标号来给gdb的命令指定哪个栈框。")]),t._v(" "),n("h2",{attrs:{id:"_6-2-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_6-2-使用命令"}},[t._v("#")]),t._v(" 6.2 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("frame args")])]),t._v(" "),n("p",[t._v("这个frame命令允许你从一个栈框移动到另一个栈框,然后可以打印出你选择的栈框,args要么是栈框的地址,要么是栈框的标号,如果没有参数,frame命令将会打印出当前的栈框。")]),t._v(" "),n("p",[n("strong",[t._v("select -frame")])]),t._v(" "),n("p",[t._v("select -frame命令允许你从一个栈框移动到另外一个栈框而不打印栈框的信息,这个命令可以看作是frame命令的silent版本。")]),t._v(" "),n("p",[n("strong",[t._v("backtrace")])]),t._v(" "),n("p",[n("strong",[t._v("bt")])]),t._v(" "),n("p",[t._v("bt命令打印栈全部的backtrace,每个栈框显示一行。你可以在任何时间结束backtrace通过键入系统中断字符,ctrl+c。")]),t._v(" "),n("p",[n("strong",[t._v("backtrace n")])]),t._v(" "),n("p",[n("strong",[t._v("bt n")])]),t._v(" "),n("p",[t._v("bt n 命令将会显示最内层的n个栈框。")]),t._v(" "),n("p",[n("strong",[t._v("backtrace -n")])]),t._v(" "),n("p",[n("strong",[t._v("bt -n")])]),t._v(" "),n("p",[t._v("bt -n将会显示最外层的n个栈框。")]),t._v(" "),n("p",[n("strong",[t._v("backtrace full")])]),t._v(" "),n("p",[n("strong",[t._v("bt full")])]),t._v(" "),n("p",[n("strong",[t._v("bt full n")])]),t._v(" "),n("p",[n("strong",[t._v("bt full -n")])]),t._v(" "),n("p",[t._v("如果添加full这个参数的话,将会显示栈框中的局部变量。")]),t._v(" "),n("p",[n("strong",[t._v("frame n")])]),t._v(" "),n("p",[n("strong",[t._v("f n")])]),t._v(" "),n("p",[t._v("frame n(f n)将会选择栈框n,栈框0是最内层的栈框,也就是当前执行的函数,栈框1是调用最内层栈框的函数。最大的栈框就是main函数对应的栈框。")]),t._v(" "),n("p",[n("strong",[t._v("frame addr")])]),t._v(" "),n("p",[n("strong",[t._v("f addr")])]),t._v(" "),n("p",[t._v("通过栈框的地址选择栈框。如果栈框被bug破坏掉了,这将是主要的方法去查看栈框。栈框破坏掉了,gdb将不能通过栈框标号去定位栈框。另外,如果你的程序有多个栈,在多个栈切换时这中方法将很有用。")]),t._v(" "),n("p",[n("strong",[t._v("up n")])]),t._v(" "),n("p",[t._v("up n将会朝外层栈框走n个。它的方向是朝最外层的栈框,也就是最大的栈框号。")]),t._v(" "),n("p",[n("strong",[t._v("down n")])]),t._v(" "),n("p",[t._v("down n和up n是对应的,它将会朝最内层走n个栈框。")]),t._v(" "),n("p",[t._v("这些命令将会打印两行关于该栈框的信息,第一行将会显示栈框号,函数名,参数,以及源代码所在的文件名,和所在的行。")]),t._v(" "),n("h2",{attrs:{id:"_6-3-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_6-3-示例"}},[t._v("#")]),t._v(" 6.3 示例")]),t._v(" "),n("h3",{attrs:{id:"_6-3-1-源代码test3-c"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_6-3-1-源代码test3-c"}},[t._v("#")]),t._v(" 6.3.1 源代码test3.c")]),t._v(" "),n("ol",[n("li",[t._v("#include ")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" func4("),n("strong",[t._v("int")]),t._v(" m)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" ret = m - m / 2;")]),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" ret;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" func3("),n("strong",[t._v("int")]),t._v(" m)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" ret = m + func4(m);")]),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" ret;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" func2("),n("strong",[t._v("int")]),t._v(" m)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" ret = m * func3(m);")]),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" ret;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" func1("),n("strong",[t._v("int")]),t._v(" m)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" ret = func2(m) + 1;")]),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" ret;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" main()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" m = 40;")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" n = func1(m);")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" 0;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li")]),t._v(" "),n("h3",{attrs:{id:"_6-3-2-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_6-3-2-调试过程"}},[t._v("#")]),t._v(" 6.3.2 调试过程")]),t._v(" "),n("p",[t._v("启动GDB:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gdb -q test3")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /home/luo/workspace/test/exec/test3...done.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) b main --------------")]),t._v(" 在main函数设置断点")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1 at 0x40057d: file ../source/test3.c, line 30.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) r --------------")]),t._v(" 运行程序")]),t._v(" "),n("p",[n("em",[t._v("Starting program: /home/luo/workspace/test/exec/test3")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at ../source/test3.c:30")])]),t._v(" "),n("p",[n("em",[t._v("30 int m = 40;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) s --------------")]),t._v(" step单步执行")]),t._v(" "),n("p",[n("em",[t._v("31 int n = func1(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) s")])]),t._v(" "),n("p",[n("em",[t._v("func1 (m=40) at ../source/test3.c:24")])]),t._v(" "),n("p",[n("em",[t._v("24 int ret = func2(m) + 1;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) s")])]),t._v(" "),n("p",[n("em",[t._v("func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 int ret = m * func3(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) s")])]),t._v(" "),n("p",[n("em",[t._v("func3 (m=40) at ../source/test3.c:11")])]),t._v(" "),n("p",[n("em",[t._v("11 int ret = m + func4(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) s")])]),t._v(" "),n("p",[n("em",[t._v("func4 (m=40) at ../source/test3.c:5")])]),t._v(" "),n("p",[n("em",[t._v("5 int ret = m - m / 2;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) bt --------------")]),t._v(" 显示栈信息")]),t._v(" "),n("p",[n("em",[t._v("#0 func4 (m=40) at ../source/test3.c:5")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040058e in main () at ../source/test3.c:31")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) frame 2 --------------")]),t._v(" 跳到标号为2的栈框")]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 int ret = m * func3(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) select-frame 2 -------------")]),t._v(" 跳到标号为2的栈框并且不打印信息")]),t._v(" "),n("p",[n("em",[t._v("(gdb) bt 3 --------------")]),t._v(" 显示最内层的3个栈框")]),t._v(" "),n("p",[n("em",[t._v("#0 func4 (m=40) at ../source/test3.c:5")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("(More stack frames follow...)")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) bt -3 --------------")]),t._v(" 显示最外层的3个栈框")]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040058e in main () at ../source/test3.c:31")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) bt full --------------")]),t._v(" 显示栈信息,包括局部变量")]),t._v(" "),n("p",[n("em",[t._v("#0 func4 (m=40) at ../source/test3.c:5")])]),t._v(" "),n("p",[n("em",[t._v("ret = 0")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11")])]),t._v(" "),n("p",[n("em",[t._v("ret = 0")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("ret = 0")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24")])]),t._v(" "),n("p",[n("em",[t._v("ret = 0")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040058e in main () at ../source/test3.c:31")])]),t._v(" "),n("p",[n("em",[t._v("m = 40")])]),t._v(" "),n("p",[n("em",[t._v("n = 0")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) frame 2")]),t._v(" "),n("em",[t._v("--------------")]),t._v(" 移动到标号为2的栈框")]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 int ret = m * func3(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) bt")])]),t._v(" "),n("p",[n("em",[t._v("#0 func4 (m=40) at ../source/test3.c:5")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040058e in main () at ../source/test3.c:31")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) up 2 --------------")]),t._v(" 向外层栈框移动2层")]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040058e in main () at ../source/test3.c:31")])]),t._v(" "),n("p",[n("em",[t._v("31 int n = func1(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) down 3 --------------")]),t._v(" 向内层栈框移动3层")]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11")])]),t._v(" "),n("p",[n("em",[t._v("11 int ret = m + func4(m);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("h1",{attrs:{id:"_7-多线程调试"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_7-多线程调试"}},[t._v("#")]),t._v(" 7 多线程调试")]),t._v(" "),n("h2",{attrs:{id:"_7-1-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_7-1-使用命令"}},[t._v("#")]),t._v(" 7.1 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("info threads")])]),t._v(" "),n("p",[t._v("查看当前进程的线程。GDB会为每个线程分配一个ID, 后面操作线程的时候会用到这个ID。前面有*的是当前调试的线程。")]),t._v(" "),n("p",[n("strong",[t._v("thread ")])]),t._v(" "),n("p",[t._v("切换调试的线程为指定ID的线程。")]),t._v(" "),n("p",[n("strong",[t._v("break file.c:number thread all")])]),t._v(" "),n("p",[t._v("在file.c文件第number行处为所有经过这里的线程设置断点。")]),t._v(" "),n("p",[n("strong",[t._v("set scheduler-locking off|on|step")])]),t._v(" "),n("p",[t._v("在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的, 怎么只让被调试程序执行呢?")]),t._v(" "),n("p",[t._v("通过这个命令就可以实现这个需求。")]),t._v(" "),n("p",[t._v("off 不锁定任何线程,也就是所有线程都执行,这是默认值。")]),t._v(" "),n("p",[t._v("on 只有当前被调试程序会执行。")]),t._v(" "),n("p",[t._v("step 在单步的时候,除了next过一个函数的情况 (熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,只有当前线程会执行。")]),t._v(" "),n("p",[n("strong",[t._v("thread apply ID1 ID2 command")])]),t._v(" "),n("p",[t._v("让一个或多个线程执行GDB命令command。")]),t._v(" "),n("p",[n("strong",[t._v("thread apply all command")])]),t._v(" "),n("p",[t._v("让所有被调试线程执行GDB命令command。")]),t._v(" "),n("h2",{attrs:{id:"_7-2-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_7-2-示例"}},[t._v("#")]),t._v(" 7.2 示例")]),t._v(" "),n("h3",{attrs:{id:"_7-2-1-源代码test4-c"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_7-2-1-源代码test4-c"}},[t._v("#")]),t._v(" 7.2.1 源代码test4.c")]),t._v(" "),n("ol",[n("li",[t._v("/*")]),t._v(" "),n("li",[t._v("* 本文件为多线程调试测试准备")]),t._v(" "),n("li",[t._v("*/")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("void")]),t._v(" func1()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" i = 0;")]),t._v(" "),n("li",[n("strong",[t._v("while")]),t._v("(1){")]),t._v(" "),n("li",[t._v("i++;")]),t._v(" "),n("li",[t._v('printf("**********************************\\n");')]),t._v(" "),n("li",[t._v('printf("this is function 1!\\n");')]),t._v(" "),n("li",[t._v('printf("this is %d time!\\n", i);')]),t._v(" "),n("li",[t._v("sleep(1);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" ;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("void")]),t._v(" func2()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" i = 0;")]),t._v(" "),n("li",[n("strong",[t._v("while")]),t._v("(1){")]),t._v(" "),n("li",[t._v("i++;")]),t._v(" "),n("li",[t._v('printf("**********************************\\n");')]),t._v(" "),n("li",[t._v('printf("this is function 2!\\n");')]),t._v(" "),n("li",[t._v('printf("this is %d time!\\n", i);')]),t._v(" "),n("li",[t._v("sleep(1);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" ;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" main()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("pthread_t td1, td2, td3;")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" ret_td1, ret_td2, ret_td3;")]),t._v(" "),n("li"),t._v(" "),n("li",[t._v("ret_td1 = pthread_create(&td1, NULL, ("),n("strong",[t._v("void")]),t._v("*)&func1, NULL);")]),t._v(" "),n("li",[t._v("ret_td2 = pthread_create(&td2, NULL, ("),n("strong",[t._v("void")]),t._v("*)&func2, NULL);")]),t._v(" "),n("li",[t._v("ret_td3 = pthread_create(&td3, NULL, ("),n("strong",[t._v("void")]),t._v("*)&func2, NULL);")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v("(ret_td1 != 0){")]),t._v(" "),n("li",[t._v('printf("线程1创建失败\\n");')]),t._v(" "),n("li",[t._v("}"),n("strong",[t._v("else")]),t._v("{")]),t._v(" "),n("li",[t._v('printf("线程1创建成功\\n");')]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v("(ret_td2 != 0){")]),t._v(" "),n("li",[t._v('printf("线程2创建失败\\n");')]),t._v(" "),n("li",[t._v("}"),n("strong",[t._v("else")]),t._v("{")]),t._v(" "),n("li",[t._v('printf("线程2创建成功\\n");')]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v("(ret_td3 != 0){")]),t._v(" "),n("li",[t._v('printf("线程3创建失败\\n");')]),t._v(" "),n("li",[t._v("}"),n("strong",[t._v("else")]),t._v("{")]),t._v(" "),n("li",[t._v('printf("线程3创建成功\\n");')]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" 0;")]),t._v(" "),n("li",[t._v("}")])]),t._v(" "),n("h3",{attrs:{id:"_7-2-2-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_7-2-2-调试过程"}},[t._v("#")]),t._v(" 7.2.2 调试过程")]),t._v(" "),n("p",[t._v("编译生成可执行文件,注意带上 "),n("em",[t._v("-lpthread")]),t._v(" :")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gcc -g ../source/test4.c -o test4 -lpthread")])]),t._v(" "),n("p",[t._v("启动GDB:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gdb -q test4")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /home/luo/workspace/test/exec/test4...done.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) b main --------------")]),t._v(" 在main()函数设置断点")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1 at 0x400776: file ../source/test4.c, line 42.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) l 1 --------------")]),t._v(" 列出源代码")]),t._v(" "),n("p",[n("em",[t._v("1 /*")])]),t._v(" "),n("p",[n("em",[t._v("2 * 本文件为多线程调试测试准备")])]),t._v(" "),n("p",[n("em",[t._v("3 */")])]),t._v(" "),n("p",[n("em",[t._v("4 #include ")])]),t._v(" "),n("p",[n("em",[t._v("5 #include ")])]),t._v(" "),n("p",[n("em",[t._v("6 #include ")])]),t._v(" "),n("p",[n("em",[t._v("7 #include ")])]),t._v(" "),n("p",[n("em",[t._v("8")])]),t._v(" "),n("p",[n("em",[t._v("9 void func1()")])]),t._v(" "),n("p",[n("em",[t._v("10 {")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("11 int i = 0;")])]),t._v(" "),n("p",[n("em",[t._v("12 while(1){")])]),t._v(" "),n("p",[n("em",[t._v("13 i++;")])]),t._v(" "),n("p",[n("em",[t._v('14 printf("**********************************\\n");')])]),t._v(" "),n("p",[n("em",[t._v('15 printf("this is function 1!\\n");')])]),t._v(" "),n("p",[n("em",[t._v('16 printf("this is %d time!\\n", i);')])]),t._v(" "),n("p",[n("em",[t._v("17 sleep(1);")])]),t._v(" "),n("p",[n("em",[t._v("18 }")])]),t._v(" "),n("p",[n("em",[t._v("19")])]),t._v(" "),n("p",[n("em",[t._v("20 return ;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("21 }")])]),t._v(" "),n("p",[n("em",[t._v("22")])]),t._v(" "),n("p",[n("em",[t._v("23 void func2()")])]),t._v(" "),n("p",[n("em",[t._v("24 {")])]),t._v(" "),n("p",[n("em",[t._v("25 int i = 0;")])]),t._v(" "),n("p",[n("em",[t._v("26 while(1){")])]),t._v(" "),n("p",[n("em",[t._v("27 i++;")])]),t._v(" "),n("p",[n("em",[t._v('28 printf("**********************************\\n");')])]),t._v(" "),n("p",[n("em",[t._v('29 printf("this is function 2!\\n");')])]),t._v(" "),n("p",[n("em",[t._v('30 printf("this is %d time!\\n", i);')])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("31 sleep(1);")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("33 return ;")])]),t._v(" "),n("p",[n("em",[t._v("34 }")])]),t._v(" "),n("p",[n("em",[t._v("35")])]),t._v(" "),n("p",[n("em",[t._v("36")])]),t._v(" "),n("p",[n("em",[t._v("37 int main()")])]),t._v(" "),n("p",[n("em",[t._v("38 {")])]),t._v(" "),n("p",[n("em",[t._v("39 pthread_t td1, td2, td3;")])]),t._v(" "),n("p",[n("em",[t._v("40 int ret_td1, ret_td2, ret_td3;")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("41")])]),t._v(" "),n("p",[n("em",[t._v("42 ret_td1 = pthread_create(&td1, NULL, (void*)&func1, NULL);")])]),t._v(" "),n("p",[n("em",[t._v("43 ret_td2 = pthread_create(&td2, NULL, (void*)&func2, NULL);")])]),t._v(" "),n("p",[n("em",[t._v("44 ret_td3 = pthread_create(&td3, NULL, (void*)&func2, NULL);")])]),t._v(" "),n("p",[n("em",[t._v("45")])]),t._v(" "),n("p",[n("em",[t._v("46 if(ret_td1 != 0){")])]),t._v(" "),n("p",[n("em",[t._v('47 printf("线程1创建失败\\n");')])]),t._v(" "),n("p",[n("em",[t._v("48 }else{")])]),t._v(" "),n("p",[n("em",[t._v('49 printf("线程1创建成功\\n");')])]),t._v(" "),n("p",[n("em",[t._v("50 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v("51")])]),t._v(" "),n("p",[n("em",[t._v("52 if(ret_td2 != 0){")])]),t._v(" "),n("p",[n("em",[t._v('53 printf("线程2创建失败\\n");')])]),t._v(" "),n("p",[n("em",[t._v("54 }else{")])]),t._v(" "),n("p",[n("em",[t._v('55 printf("线程2创建成功\\n");')])]),t._v(" "),n("p",[n("em",[t._v("56 }")])]),t._v(" "),n("p",[n("em",[t._v("57")])]),t._v(" "),n("p",[n("em",[t._v("58 if(ret_td3 != 0){")])]),t._v(" "),n("p",[n("em",[t._v('59 printf("线程3创建失败\\n");')])]),t._v(" "),n("p",[n("em",[t._v("60 }else{")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[n("em",[t._v('61 printf("线程3创建成功\\n");')])]),t._v(" "),n("p",[n("em",[t._v("62 }")])]),t._v(" "),n("p",[n("em",[t._v("63")])]),t._v(" "),n("p",[n("em",[t._v("64 return 0;")])]),t._v(" "),n("p",[n("em",[t._v("65 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) b 18 --------------")]),t._v(" 在18行设置断点")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 2 at 0x400725: file ../source/test4.c, line 18.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) b 32 --------------")]),t._v(" 在32行设置断点")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3 at 0x40076c: file ../source/test4.c, line 32.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) b 46 --------------")]),t._v(" 在46行设置断点")]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 4 at 0x4007d0: file ../source/test4.c, line 46.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) r --------------")]),t._v(" 运行程序")]),t._v(" "),n("p",[n("em",[t._v("Starting program: /home/luo/workspace/test/exec/test4")])]),t._v(" "),n("p",[n("em",[t._v("[Thread debugging using libthread_db enabled]")])]),t._v(" "),n("p",[n("em",[t._v('Using host libthread_db library "/lib64/libthread_db.so.1".')])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 1, main () at ../source/test4.c:42")])]),t._v(" "),n("p",[n("em",[t._v("42 ret_td1 = pthread_create(&td1, NULL, (void*)&func1, NULL);")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info threads --------------")]),t._v(" 查看线程信息,目前只有一个主线程")]),t._v(" "),n("p",[n("em",[t._v("Id Target Id Frame")])]),t._v(" "),n("p",[n("em",[t._v('* 1 Thread 0x7ffff7dd2700 (LWP 40907) "test4" main ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../source/test4.c:42")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 继续运行程序")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("[New Thread 0x7ffff7dd0700 (LWP 40913)] --------------")]),t._v(" 新线程创建")]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("[New Thread 0x7ffff75cf700 (LWP 40914)] --------------")]),t._v(" 新线程创建")]),t._v(" "),n("p",[n("em",[t._v("this is function 1!")])]),t._v(" "),n("p",[n("em",[t._v("this is 1 time!")])]),t._v(" "),n("p",[n("em",[t._v("[New Thread 0x7ffff6dce700 (LWP 40915)] --------------")]),t._v(" 新线程创建")]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 4, main () at ../source/test4.c:46")])]),t._v(" "),n("p",[n("em",[t._v("46 if(ret_td1 != 0){")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info threads --------------")]),t._v(" 查看线程信息")]),t._v(" "),n("p",[n("em",[t._v("Id Target Id Frame")])]),t._v(" "),n("p",[n("em",[t._v('4 Thread 0x7ffff6dce700 (LWP 40915) "test4" 0x00000030552d795d in write () from /lib64/libc.so.6')])]),t._v(" "),n("p",[n("em",[t._v('3 Thread 0x7ffff75cf700 (LWP 40914) "test4" __lll_lock_wait_private ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95")])]),t._v(" "),n("p",[n("em",[t._v('2 Thread 0x7ffff7dd0700 (LWP 40913) "test4" 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6')])]),t._v(" "),n("p",[n("em",[t._v('* 1 Thread 0x7ffff7dd2700 (LWP 40907) "test4" main ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../source/test4.c:46")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) set scheduler-locking on --------------")]),t._v(" 设置调试模式为只有当前线程会被执行")]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread 4 --------------")]),t._v(" 切换到4号线程")]),t._v(" "),n("p",[n("em",[t._v("[Switching to thread 4 (Thread 0x7ffff6dce700 (LWP 40915))]")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x00000030552d795d in write () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c --------------")]),t._v(" 当前线程执行continue")]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 1 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 2 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread 3 --------------")]),t._v(" 切换线程")]),t._v(" "),n("p",[n("em",[t._v("[Switching to thread 3 (Thread 0x7ffff75cf700 (LWP 40914))]")])]),t._v(" "),n("p",[n("em",[t._v("#0 __lll_lock_wait_private ()")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95")])]),t._v(" "),n("p",[n("em",[t._v("95 ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 1 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 2 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread 2 --------------")]),t._v(" 切换线程")]),t._v(" "),n("p",[n("em",[t._v("[Switching to thread 2 (Thread 0x7ffff7dd0700 (LWP 40913))]")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x00000030552f081b in ?? () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 1!")])]),t._v(" "),n("p",[n("em",[t._v("this is 2 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 2, func1 () at ../source/test4.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) c")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 1!")])]),t._v(" "),n("p",[n("em",[t._v("this is 3 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 2, func1 () at ../source/test4.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info threads --------------")]),t._v(" 查看线程信息,当前位于2号线程")]),t._v(" "),n("p",[n("em",[t._v("Id Target Id Frame")])]),t._v(" "),n("p",[n("em",[t._v('4 Thread 0x7ffff6dce700 (LWP 40915) "test4" func2 ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v('3 Thread 0x7ffff75cf700 (LWP 40914) "test4" func2 ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v('* 2 Thread 0x7ffff7dd0700 (LWP 40913) "test4" func1 ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../source/test4.c:18")])]),t._v(" "),n("p",[n("em",[t._v('1 Thread 0x7ffff7dd2700 (LWP 40907) "test4" main ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../source/test4.c:46")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread apply 2 4 continue -----")]),t._v(" 令2号和4号线程执行continue")]),t._v(" "),n("p",[n("em",[t._v("Thread 2 (Thread 0x7ffff7dd0700 (LWP 40913)):")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 1!")])]),t._v(" "),n("p",[n("em",[t._v("this is 4 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 2, func1 () at ../source/test4.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 }")])]),t._v(" "),n("p",[n("em",[t._v("Thread 4 (Thread 0x7ffff6dce700 (LWP 40915)):")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 3 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread apply all continue -------------")]),t._v(" 所有线程执行continue")]),t._v(" "),n("p",[n("em",[t._v("Thread 4 (Thread 0x7ffff6dce700 (LWP 40915)):")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 4 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("Thread 3 (Thread 0x7ffff75cf700 (LWP 40914)):")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 2!")])]),t._v(" "),n("p",[n("em",[t._v("this is 3 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 3, func2 () at ../source/test4.c:32")])]),t._v(" "),n("p",[n("em",[t._v("32 }")])]),t._v(" "),n("p",[n("em",[t._v("Thread 2 (Thread 0x7ffff7dd0700 (LWP 40913)):")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("**********************************")])]),t._v(" "),n("p",[n("em",[t._v("this is function 1!")])]),t._v(" "),n("p",[n("em",[t._v("this is 5 time!")])]),t._v(" "),n("p",[n("em",[t._v("Breakpoint 2, func1 () at ../source/test4.c:18")])]),t._v(" "),n("p",[n("em",[t._v("18 }")])]),t._v(" "),n("p",[n("em",[t._v("Thread 1 (Thread 0x7ffff7dd2700 (LWP 40907)):")])]),t._v(" "),n("p",[n("em",[t._v("Continuing.")])]),t._v(" "),n("p",[n("em",[t._v("线程1创建成功")])]),t._v(" "),n("p",[n("em",[t._v("线程2创建成功")])]),t._v(" "),n("p",[n("em",[t._v("线程3创建成功")])]),t._v(" "),n("p",[n("em",[t._v("[Thread 0x7ffff6dce700 (LWP 40915) exited]")])]),t._v(" "),n("p",[n("em",[t._v("[Thread 0x7ffff75cf700 (LWP 40914) exited]")])]),t._v(" "),n("p",[n("em",[t._v("[Thread 0x7ffff7dd0700 (LWP 40913) exited]")])]),t._v(" "),n("p",[n("em",[t._v("[Inferior 1 (process 40907) exited normally]")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("h1",{attrs:{id:"_8-死锁调试"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_8-死锁调试"}},[t._v("#")]),t._v(" 8 死锁调试")]),t._v(" "),n("h2",{attrs:{id:"_8-1-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_8-1-使用命令"}},[t._v("#")]),t._v(" 8.1 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("ps -ef|grep ")])]),t._v(" "),n("p",[t._v("查看进程号,其中processname为进程名。")]),t._v(" "),n("p",[n("strong",[t._v("gdb attach ")])]),t._v(" "),n("p",[t._v("使用GDB调试正在运行的进程。")]),t._v(" "),n("h2",{attrs:{id:"_8-2-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_8-2-示例"}},[t._v("#")]),t._v(" 8.2 示例")]),t._v(" "),n("h3",{attrs:{id:"_8-2-1-源文件test5-c"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_8-2-1-源文件test5-c"}},[t._v("#")]),t._v(" 8.2.1 源文件test5.c")]),t._v(" "),n("ol",[n("li",[t._v("/*")]),t._v(" "),n("li",[t._v("*本文件用于测试死锁调试")]),t._v(" "),n("li",[t._v("*")]),t._v(" "),n("li",[t._v("*代码来自网络:http://blog.chinaunix.net/uid-30343738-id-5757210.html")]),t._v(" "),n("li",[t._v("*")]),t._v(" "),n("li",[t._v("*/")]),t._v(" "),n("li"),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li",[t._v("#include ")]),t._v(" "),n("li"),t._v(" "),n("li",[t._v("pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;")]),t._v(" "),n("li",[t._v("pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER;")]),t._v(" "),n("li",[t._v("pthread_mutex_t mutex3 = PTHREAD_MUTEX_INITIALIZER;")]),t._v(" "),n("li",[t._v("pthread_mutex_t mutex4 = PTHREAD_MUTEX_INITIALIZER;")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("static")]),t._v(" "),n("strong",[t._v("int")]),t._v(" sequence1 = 0;")]),t._v(" "),n("li",[n("strong",[t._v("static")]),t._v(" "),n("strong",[t._v("int")]),t._v(" sequence2 = 0;")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" func1()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("pthread_mutex_lock(&mutex1);")]),t._v(" "),n("li",[t._v("++sequence1;")]),t._v(" "),n("li",[t._v("sleep(1);")]),t._v(" "),n("li",[t._v("pthread_mutex_lock(&mutex2);")]),t._v(" "),n("li",[t._v("++sequence2;")]),t._v(" "),n("li",[t._v("pthread_mutex_unlock(&mutex2);")]),t._v(" "),n("li",[t._v("pthread_mutex_unlock(&mutex1);")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" sequence1;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" func2()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("pthread_mutex_lock(&mutex2);")]),t._v(" "),n("li",[t._v("++sequence2;")]),t._v(" "),n("li",[t._v("sleep(1);")]),t._v(" "),n("li",[t._v("pthread_mutex_lock(&mutex1);")]),t._v(" "),n("li",[t._v("++sequence1;")]),t._v(" "),n("li",[t._v("pthread_mutex_unlock(&mutex1);")]),t._v(" "),n("li",[t._v("pthread_mutex_unlock(&mutex2);")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" sequence2;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("void")]),t._v("* thread1("),n("strong",[t._v("void")]),t._v("* arg)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("while")]),t._v(" (1)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" iRetValue = func1();")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v(" (iRetValue == 100000)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("pthread_exit(NULL);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("void")]),t._v("* thread2("),n("strong",[t._v("void")]),t._v("* arg)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("while")]),t._v(" (1)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" iRetValue = func2();")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v(" (iRetValue == 100000)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("pthread_exit(NULL);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("void")]),t._v("* thread3("),n("strong",[t._v("void")]),t._v("* arg)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("while")]),t._v(" (1)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("sleep(1);")]),t._v(" "),n("li",[n("strong",[t._v("char")]),t._v(" szBuf[128];")]),t._v(" "),n("li",[t._v("memset(szBuf, 0, "),n("strong",[t._v("sizeof")]),t._v("(szBuf));")]),t._v(" "),n("li",[t._v('strcpy(szBuf, "thread3");')]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("void")]),t._v("* thread4("),n("strong",[t._v("void")]),t._v("* arg)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("while")]),t._v(" (1)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("sleep(1);")]),t._v(" "),n("li",[n("strong",[t._v("char")]),t._v(" szBuf[128];")]),t._v(" "),n("li",[t._v("memset(szBuf, 0, "),n("strong",[t._v("sizeof")]),t._v("(szBuf));")]),t._v(" "),n("li",[t._v('strcpy(szBuf, "thread3");')]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" main()")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("pthread_t tid[4];")]),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v(" (pthread_create(&tid[0], NULL, &thread1, NULL) != 0)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("_exit(1);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v(" (pthread_create(&tid[1], NULL, &thread2, NULL) != 0)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("_exit(1);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v(" (pthread_create(&tid[2], NULL, &thread3, NULL) != 0)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("_exit(1);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[n("strong",[t._v("if")]),t._v(" (pthread_create(&tid[3], NULL, &thread4, NULL) != 0)")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("_exit(1);")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li"),t._v(" "),n("li",[t._v("sleep(5);")]),t._v(" "),n("li",[t._v("//pthread_cancel(tid[0]);")]),t._v(" "),n("li"),t._v(" "),n("li",[t._v("pthread_join(tid[0], NULL);")]),t._v(" "),n("li",[t._v("pthread_join(tid[1], NULL);")]),t._v(" "),n("li",[t._v("pthread_join(tid[2], NULL);")]),t._v(" "),n("li",[t._v("pthread_join(tid[3], NULL);")]),t._v(" "),n("li"),t._v(" "),n("li",[t._v("pthread_mutex_destroy(&mutex1);")]),t._v(" "),n("li",[t._v("pthread_mutex_destroy(&mutex2);")]),t._v(" "),n("li",[t._v("pthread_mutex_destroy(&mutex3);")]),t._v(" "),n("li",[t._v("pthread_mutex_destroy(&mutex4);")]),t._v(" "),n("li"),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" 0;")]),t._v(" "),n("li",[t._v("}")])]),t._v(" "),n("h3",{attrs:{id:"_8-2-2-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_8-2-2-调试过程"}},[t._v("#")]),t._v(" 8.2.2 调试过程")]),t._v(" "),n("p",[t._v("执行程序,程序会卡在这里:")]),t._v(" "),n("p",[n("a",{attrs:{href:"mailto:root@luo:~/workspace/test/exec%3e./test5"}},[n("em",[t._v("root@luo:~/workspace/test/exec\\>./test5")])])]),t._v(" "),n("p",[t._v("另开一个终端,查看进程的信息:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>ps -ef|grep test5")])]),t._v(" "),n("p",[n("em",[t._v("root 42746 39442 0 14:25 ttyp0 00:00:00 ./test5")])]),t._v(" "),n("p",[n("em",[t._v("root 43464 42753 0 15:11 ttyp2 00:00:00 grep --color=auto test5")])]),t._v(" "),n("p",[t._v("使用GDB工具attach该进程:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gdb -q attach 42746")])]),t._v(" "),n("p",[n("em",[t._v("attach: No such file or directory.")])]),t._v(" "),n("p",[n("em",[t._v("Attaching to process 42746")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /home/luo/workspace/test/exec/test5...done.")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /lib64/libpthread.so.0...done.")])]),t._v(" "),n("p",[n("em",[t._v("[New LWP 42750]")])]),t._v(" "),n("p",[n("em",[t._v("[New LWP 42749]")])]),t._v(" "),n("p",[n("em",[t._v("[New LWP 42748]")])]),t._v(" "),n("p",[n("em",[t._v("[New LWP 42747]")])]),t._v(" "),n("p",[n("em",[t._v("[Thread debugging using libthread_db enabled]")])]),t._v(" "),n("p",[n("em",[t._v('Using host libthread_db library "/lib64/libthread_db.so.1".')])]),t._v(" "),n("p",[n("em",[t._v("Loaded symbols for /lib64/libpthread.so.0")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.")])]),t._v(" "),n("p",[n("em",[t._v("Loaded symbols for /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.")])]),t._v(" "),n("p",[n("em",[t._v("Loaded symbols for /lib64/ld-linux-x86-64.so.2")])]),t._v(" "),n("p",[n("em",[t._v("0x00007fc3aa9ff492 in pthread_join (threadid=140478357907200, thread_return=0x0)")])]),t._v(" "),n("p",[n("em",[t._v("at pthread_join.c:92")])]),t._v(" "),n("p",[n("em",[t._v("92 pthread_join.c: No such file or directory.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) info threads -------------")]),t._v(" 查看线程信息")]),t._v(" "),n("p",[n("em",[t._v("Id Target Id Frame")])]),t._v(" "),n("p",[n("em",[t._v('5 Thread 0x7fc3aa9f2700 (LWP 42747) "test5" __lll_lock_wait ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v('4 Thread 0x7fc3aa1f1700 (LWP 42748) "test5" __lll_lock_wait ()')])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v('3 Thread 0x7fc3a99f0700 (LWP 42749) "test5" 0x00000030552b5a0d in nanosleep')])]),t._v(" "),n("p",[n("em",[t._v("() from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v('2 Thread 0x7fc3a91ef700 (LWP 42750) "test5" 0x00000030552b5a0d in nanosleep')])]),t._v(" "),n("p",[n("em",[t._v("() from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v('* 1 Thread 0x7fc3aa9f4700 (LWP 42746) "test5" 0x00007fc3aa9ff492 in pthread_join (threadid=140478357907200, thread_return=0x0) at pthread_join.c:92')])]),t._v(" "),n("p",[n("em",[t._v("(gdb) set scheduler-locking on ---------")]),t._v(" 设置调试模式为只有当前线程会执行")]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread apply all bt -------------")]),t._v(" 显示所有线程的栈信息")]),t._v(" "),n("p",[n("em",[t._v("Thread 5 (Thread 0x7fc3aa9f2700 (LWP 42747)):")])]),t._v(" "),n("p",[n("em",[t._v("#0 __lll_lock_wait ()")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x00007fc3aaa00457 in _L_lock_913 () from /lib64/libpthread.so.0")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x00007fc3aaa00280 in __GI___pthread_mutex_lock (mutex=0x6012c0 )")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/pthread_mutex_lock.c:79")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x00000000004008b1 in func1 () at test5.c:27")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040094e in thread1 (arg=0x0) at test5.c:52")])]),t._v(" "),n("p",[n("em",[t._v("#5 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3aa9f2700)")])]),t._v(" "),n("p",[n("em",[t._v("at pthread_create.c:309")])]),t._v(" "),n("p",[n("em",[t._v("#6 0x00000030552e42bd in clone () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("Thread 4 (Thread 0x7fc3aa1f1700 (LWP 42748)):")])]),t._v(" "),n("p",[n("em",[t._v("#0 __lll_lock_wait ()")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x00007fc3aaa00457 in _L_lock_913 () from /lib64/libpthread.so.0")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x00007fc3aaa00280 in __GI___pthread_mutex_lock (mutex=0x601280 )")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/pthread_mutex_lock.c:79")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x000000000040090d in func2 () at test5.c:40")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x000000000040097c in thread2 (arg=0x0) at test5.c:65")])]),t._v(" "),n("p",[n("em",[t._v("#5 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3aa1f1700)")])]),t._v(" "),n("p",[n("em",[t._v("at pthread_create.c:309")])]),t._v(" "),n("p",[n("em",[t._v("#6 0x00000030552e42bd in clone () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("Thread 3 (Thread 0x7fc3a99f0700 (LWP 42749)):")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x00000030552b58a4 in sleep () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x00000000004009b0 in thread3 (arg=0x0) at test5.c:78")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3a99f0700)")])]),t._v(" "),n("p",[n("em",[t._v("at pthread_create.c:309")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x00000030552e42bd in clone () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("Thread 2 (Thread 0x7fc3a91ef700 (LWP 42750)):")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x00000030552b58a4 in sleep () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("#2 0x00000000004009f5 in thread4 (arg=0x0) at test5.c:89")])]),t._v(" "),n("p",[n("em",[t._v("#3 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3a91ef700)")])]),t._v(" "),n("p",[n("em",[t._v("at pthread_create.c:309")])]),t._v(" "),n("p",[n("em",[t._v("#4 0x00000030552e42bd in clone () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("---Type to continue, or q to quit---")])]),t._v(" "),n("p",[n("em",[t._v("Thread 1 (Thread 0x7fc3aa9f4700 (LWP 42746)):")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x00007fc3aa9ff492 in pthread_join (threadid=140478357907200,")])]),t._v(" "),n("p",[n("em",[t._v("thread_return=0x0) at pthread_join.c:92")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400af1 in main () at test5.c:119")])]),t._v(" "),n("p",[t._v("从栈信息可以初步判断,有可能是4号和5号线程锁住了。")]),t._v(" "),n("p",[t._v("查看27行和40行源文件的代码:")]),t._v(" "),n("p",[n("em",[t._v("(gdb) l test5.c:27")])]),t._v(" "),n("p",[n("em",[t._v("22 int func1()")])]),t._v(" "),n("p",[n("em",[t._v("23 {")])]),t._v(" "),n("p",[n("em",[t._v("24 pthread_mutex_lock(&mutex1);")])]),t._v(" "),n("p",[n("em",[t._v("25 ++sequence1;")])]),t._v(" "),n("p",[n("em",[t._v("26 sleep(1);")])]),t._v(" "),n("p",[n("em",[t._v("27 pthread_mutex_lock(&mutex2);")])]),t._v(" "),n("p",[n("em",[t._v("28 ++sequence2;")])]),t._v(" "),n("p",[n("em",[t._v("29 pthread_mutex_unlock(&mutex2);")])]),t._v(" "),n("p",[n("em",[t._v("30 pthread_mutex_unlock(&mutex1);")])]),t._v(" "),n("p",[n("em",[t._v("31")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) l test5.c:40")])]),t._v(" "),n("p",[n("em",[t._v("35 int func2()")])]),t._v(" "),n("p",[n("em",[t._v("36 {")])]),t._v(" "),n("p",[n("em",[t._v("37 pthread_mutex_lock(&mutex2);")])]),t._v(" "),n("p",[n("em",[t._v("38 ++sequence2;")])]),t._v(" "),n("p",[n("em",[t._v("39 sleep(1);")])]),t._v(" "),n("p",[n("em",[t._v("40 pthread_mutex_lock(&mutex1);")])]),t._v(" "),n("p",[n("em",[t._v("41 ++sequence1;")])]),t._v(" "),n("p",[n("em",[t._v("42 pthread_mutex_unlock(&mutex1);")])]),t._v(" "),n("p",[n("em",[t._v("43 pthread_mutex_unlock(&mutex2);")])]),t._v(" "),n("p",[n("em",[t._v("44")])]),t._v(" "),n("p",[t._v("看一下4号和5号线程是不是锁住了:")]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread 5 -------------")]),t._v(" 切换到5号线程")]),t._v(" "),n("p",[n("em",[t._v("[Switching to thread 5 (Thread 0x7fc3aa9f2700 (LWP 42747))]")])]),t._v(" "),n("p",[n("em",[t._v("#0 __lll_lock_wait ()")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v("135 ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n -------------")]),t._v(" 执行下一步,卡住,Ctrl+C跳出")]),t._v(" "),n("p",[n("em",[t._v("^C")])]),t._v(" "),n("p",[n("em",[t._v("Program received signal SIGINT, Interrupt.")])]),t._v(" "),n("p",[n("em",[t._v("__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v("135 in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread 2 -------------")]),t._v(" 切换到2号线程")]),t._v(" "),n("p",[n("em",[t._v("[Switching to thread 2 (Thread 0x7fc3a91ef700 (LWP 42750))]")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n -------------")]),t._v(" 执行下一步,可正常执行")]),t._v(" "),n("p",[n("em",[t._v("Single stepping until exit from function nanosleep,")])]),t._v(" "),n("p",[n("em",[t._v("which has no line number information.")])]),t._v(" "),n("p",[n("em",[t._v("0x00000030552b58a4 in sleep () from /lib64/libc.so.6")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n")])]),t._v(" "),n("p",[n("em",[t._v("Single stepping until exit from function sleep,")])]),t._v(" "),n("p",[n("em",[t._v("which has no line number information.")])]),t._v(" "),n("p",[n("em",[t._v("thread4 (arg=0x0) at test5.c:91")])]),t._v(" "),n("p",[n("em",[t._v("91 memset(szBuf, 0, sizeof(szBuf));")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) thread 4 -------------")]),t._v(" 切换到4号线程")]),t._v(" "),n("p",[n("em",[t._v("[Switching to thread 4 (Thread 0x7fc3aa1f1700 (LWP 42748))]")])]),t._v(" "),n("p",[n("em",[t._v("#0 __lll_lock_wait ()")])]),t._v(" "),n("p",[n("em",[t._v("at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v("135 ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.")])]),t._v(" "),n("p",[n("em",[t._v("(gdb) n -------------")]),t._v(" 执行下一步,卡住")]),t._v(" "),n("p",[n("em",[t._v("^C^C")])]),t._v(" "),n("p",[n("em",[t._v("Program received signal SIGINT, Interrupt.")])]),t._v(" "),n("p",[n("em",[t._v("__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135")])]),t._v(" "),n("p",[n("em",[t._v("135 in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[t._v("以上方法可调试找出程序中出现死锁的地方。")]),t._v(" "),n("h1",{attrs:{id:"_9-core文件调试"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_9-core文件调试"}},[t._v("#")]),t._v(" 9 core文件调试")]),t._v(" "),n("h2",{attrs:{id:"_9-1-使用命令"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_9-1-使用命令"}},[t._v("#")]),t._v(" 9.1 使用命令")]),t._v(" "),n("p",[n("strong",[t._v("ulimit -c")])]),t._v(" "),n("p",[t._v("查看core文件生成的大小限制,若为0,则表示不会生成core文件。(注:ulimit不会影响其他shell终端)")]),t._v(" "),n("p",[n("strong",[t._v("ulimit -c ")])]),t._v(" "),n("p",[t._v("设置core文件生成的大小。")]),t._v(" "),n("p",[n("strong",[t._v("cat /proc/sys/kernel/core_pattern")])]),t._v(" "),n("p",[t._v("查看core文件路径。")]),t._v(" "),n("p",[n("strong",[t._v("gdb ")])]),t._v(" "),n("p",[t._v("调试core文件")]),t._v(" "),n("h2",{attrs:{id:"_9-2-示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_9-2-示例"}},[t._v("#")]),t._v(" 9.2 示例")]),t._v(" "),n("h3",{attrs:{id:"_9-2-1-源代码test6-c"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_9-2-1-源代码test6-c"}},[t._v("#")]),t._v(" 9.2.1 源代码test6.c")]),t._v(" "),n("p",[t._v("一个能产生core dump的程序")]),t._v(" "),n("ol",[n("li",[t._v("#include ")]),t._v(" "),n("li",[n("strong",[t._v("static")]),t._v(" "),n("strong",[t._v("void")]),t._v(" sub("),n("strong",[t._v("void")]),t._v(");")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" main("),n("strong",[t._v("void")]),t._v(")")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[t._v("sub();")]),t._v(" "),n("li",[n("strong",[t._v("return")]),t._v(" 0;")]),t._v(" "),n("li",[t._v("}")]),t._v(" "),n("li",[n("strong",[t._v("static")]),t._v(" "),n("strong",[t._v("void")]),t._v(" sub("),n("strong",[t._v("void")]),t._v(")")]),t._v(" "),n("li",[t._v("{")]),t._v(" "),n("li",[n("strong",[t._v("int")]),t._v(" *p = NULL;")]),t._v(" "),n("li",[t._v("/* derefernce a null pointer, expect coredump. */")]),t._v(" "),n("li",[t._v('printf("%d", *p);')]),t._v(" "),n("li",[t._v("}")])]),t._v(" "),n("h3",{attrs:{id:"_9-2-2-调试过程"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_9-2-2-调试过程"}},[t._v("#")]),t._v(" 9.2.2 调试过程")]),t._v(" "),n("p",[t._v("查看core文件是否开启:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>ulimit -c")])]),t._v(" "),n("p",[n("em",[t._v("0")])]),t._v(" "),n("p",[t._v("设置core文件大小:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>ulimit -c 1024")])]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>ulimit -c")])]),t._v(" "),n("p",[n("em",[t._v("1024")])]),t._v(" "),n("p",[t._v("查看core文件路径:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>cat /proc/sys/kernel/core_pattern")])]),t._v(" "),n("p",[n("em",[t._v("/SE/core-%e-%p")])]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>ls /SE")])]),t._v(" "),n("p",[n("em",[t._v("ai core--22330 core--4231 log ngtp_agent web_disk")])]),t._v(" "),n("p",[n("em",[t._v("core--21300 core--23374 core--5227 mysql mp.log")])]),t._v(" "),n("p",[t._v("执行程序,生成core文件:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>./test6")])]),t._v(" "),n("p",[n("em",[t._v("Segmentation fault (core dumped)")])]),t._v(" "),n("p",[t._v("查看是否生成core文件:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>ls /SE")])]),t._v(" "),n("p",[n("em",[t._v("ai core--23374 core-test6-44938 ngtp_agent")])]),t._v(" "),n("p",[n("em",[t._v("core--21300 core--4231 log mp.log")])]),t._v(" "),n("p",[n("em",[t._v("core--22330 core--5227 mysql web_disk")])]),t._v(" "),n("p",[t._v("使用GDB调试:")]),t._v(" "),n("p",[n("em",[t._v("root@luo:~/workspace/test/exec\\>gdb -q test6 /SE/core-test6-44938")])]),t._v(" "),n("p",[n("em",[t._v("Reading symbols from /home/luo/workspace/test/exec/test6...done.")])]),t._v(" "),n("p",[n("em",[t._v("[New LWP 44938]")])]),t._v(" "),n("p",[n("em",[t._v("Core was generated by `./test6'.")])]),t._v(" "),n("p",[n("em",[t._v("Program terminated with signal 11, Segmentation fault.")])]),t._v(" "),n("p",[n("em",[t._v("#0 0x0000000000400554 in sub () at test6.c:12")])]),t._v(" "),n("p",[n("em",[t._v('12 printf("%d", *p);')])]),t._v(" "),n("p",[n("em",[t._v("(gdb) bt -------------")]),t._v(" 显示栈信息")]),t._v(" "),n("p",[n("em",[t._v("#0 0x0000000000400554 in sub () at test6.c:12")])]),t._v(" "),n("p",[n("em",[t._v("#1 0x0000000000400539 in main () at test6.c:5")])]),t._v(" "),n("p",[n("em",[t._v("(gdb)")])]),t._v(" "),n("p",[t._v("可以看到最后入栈的是sub函数里、位于test6.c文件第12行。所以core dump的问题可能出在这里。")]),t._v(" "),n("h1",{attrs:{id:"_10-gdb调试"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_10-gdb调试"}},[t._v("#")]),t._v(" 10 gdb调试")]),t._v(" "),n("h2",{attrs:{id:"_10-1-命令介绍"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_10-1-命令介绍"}},[t._v("#")]),t._v(" 10.1 命令介绍")]),t._v(" "),n("p",[t._v("gdb脚本基于gdb命令实现,可在虚拟机和设备上直接运行。使用此脚本可批量对多个进程执行给定命令,也可以调试-i指定的非进程。")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("命令")]),t._v(" "),n("th",[t._v("gdb")])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("命令格式")]),t._v(" "),n("td",[t._v("gdb [-s|-p] [-w] [-F 'SEPERATOR'] [-i '_PIDS'] [-e '_PIDS'] -c|-f 'CMD_ARGS'")])]),t._v(" "),n("tr",[n("td",[t._v("参数说明")]),t._v(" "),n("td",[t._v("-s 串行执行CMD(依次对每个执行CMD;默认选项) -p 并行执行CMD(同时对每个执行CMD) -w 等待所有上都执行CMD完毕,否则任意执行完CMD都将停止其他上的执行(仅对-p有效) -i 使用指定的 pids(多个pid以空格分隔),若不指定则自动扫描所有进程 -e 剔除指定的 pids(多个pid以空格分隔) -c 命令列表(多条命令以';'或-F指定的分隔符进行分隔) -f 命令文件(对于带有分支、循环等复杂控制的多条命令,推荐采用命令文件形式) -F 命令列表中的分隔符(默认为';')")])])])]),t._v(" "),n("h2",{attrs:{id:"_10-2-使用示例"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#_10-2-使用示例"}},[t._v("#")]),t._v(" 10.2 使用示例")]),t._v(" "),n("ol",[n("li",[n("p",[t._v("获取mempool状态。(PID应为master或nae的pid)")]),t._v(" "),n("p",[t._v("gdb -c 'call rte_mempool_list_dump(stdout)' -i ")]),t._v(" "),n("p",[t._v("gdb -c 'call cfg_callback_test_coredump(0,0)' -i $pid")]),t._v(" "),n("p",[t._v("gdb -c '' -i $pid")])]),t._v(" "),n("li",[n("p",[t._v("临时在指定位置添加打印函数。")]),t._v(" "),n("p",[t._v("gdb -p -c 'b test.c:45; commands; echo ----will bug_on----\\n; bt; c; end; c'")])]),t._v(" "),n("li",[n("p",[t._v("验证RCU是否执行session释放。")]),t._v(" "),n("p",[t._v("gdb -p -c 'handle all noprint nostop; b _free_mobj if mid==session_mobj; commands; info thread; bt; end; c'")])]),t._v(" "),n("li",[n("p",[t._v("显示所有进程的calltrace信息及本地变量。")]),t._v(" "),n("p",[t._v("说明:对于多、无断点场景下的私有数据、状态,可串行顺序执行。")]),t._v(" "),n("p",[t._v("gdb -c 'bt full'")])]),t._v(" "),n("li",[n("p",[t._v("显示所有进程/线程的calltrace信息。(类似于tdb的info state)")])])]),t._v(" "),n("p",[t._v("说明:对于多、无断点场景下的私有数据、状态,可串行顺序执行。")]),t._v(" "),n("p",[t._v("gdb -c 'thread apply all bt'")]),t._v(" "),n("ol",[n("li",[n("p",[t._v("查看每个进程的私有全局变量engine_id、session_local,并打印CallTrace。")]),t._v(" "),n("p",[t._v("gdb -c 'p engine_id; p/x *session_local; bt'")])]),t._v(" "),n("li",[n("p",[t._v("对指定进程11662,在其neigh.c:1235行的BUG_ON(1)处设置断点,生成core文件。")]),t._v(" "),n("p",[t._v("说明:这种方式生成的core文件不同于由内核生成的/SE/core--PID,它含有共享内存的绝大部分数据,便于深入分析。须注意的是这种core文件一般较大,可能达到几个GB,因此要保证足够的存储空间;存储可能需要十几秒或几十秒。若不指定文件名,则在当前目录下生成名为core.PID的core文件(此时可提前cd到/SE下)。")]),t._v(" "),n("p",[t._v("gdb -c 'b neigh.c:1235; commands; silent; gcore /home/luo/workspace/core-neigh.11662; c; end; c' -i 11662")])]),t._v(" "),n("li",[n("p",[t._v("对指定进程11662,在其ut函数处设置断点,每个报文到来则打印tbuf信息。")])])]),t._v(" "),n("p",[t._v("说明:对单个进程,不存在串行/并行的区别,可按串行处理。")]),t._v(" "),n("p",[t._v("gdb -c 'b ut; commands; silent; p/x *tbuf; c; end; c' -i 11662")]),t._v(" "),n("ol",[n("li",[t._v("打开分片重组部分的调试开关debug_ip4_frag_recv、debug_ip4_mtu_send。")])]),t._v(" "),n("p",[t._v("说明:这两个变量都为共享数据,只需设置单个即可,如pid为11662。")]),t._v(" "),n("p",[t._v("gdb -c 'set debug_ip4_frag_recv=1; set debug_ip4_mtu_send=1; printf \"recv=%d,send=%d\",debug_ip4_frag_recv,debug_ip4_mtu_send' -i 11662")]),t._v(" "),n("ol",[n("li",[t._v("对所有进程设置条件指令断点,触发后执行指定命令,执行命令后继续执行不退出。")])]),t._v(" "),n("p",[t._v("说明:对于涉及多的有断点场景,应使用并行模式。")]),t._v(" "),n("p",[t._v("gdb -p -c 'b test.c:22 if cnt%6==4; commands; silent; echo --trace--\\n; bt; printf \"\\nname=%s cnt=%d\\n\", name, cnt; c; end; c'")]),t._v(" "),n("p",[t._v("该命令序列也可写入命令文件:(-f /tmp/a.gdb)")]),t._v(" "),n("p",[t._v("handle all noprint nostop")]),t._v(" "),n("p",[t._v("b test.c:22 if cnt%6==4")]),t._v(" "),n("p",[t._v("commands")]),t._v(" "),n("p",[t._v("silent")]),t._v(" "),n("p",[t._v("echo --trace--\\n")]),t._v(" "),n("p",[t._v("bt")]),t._v(" "),n("p",[t._v('printf "\\nname=%s cnt=%d\\n", name, cnt')]),t._v(" "),n("p",[t._v("c")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("c")]),t._v(" "),n("p",[t._v("[注]:最后的c命令,使得设完断点及commands后继续运行,倒数第二条c命令,使得断点触发/处理后仍继续运行。")]),t._v(" "),n("ol",[n("li",[n("p",[t._v("对所有进程设置数据断点,当数值被改变时,打印CallTrace。")]),t._v(" "),n("p",[t._v("说明:watch可监控数据是否被改变,rwatch可监控数据是否被读取,awatch包括这两类。")]),t._v(" "),n("p",[t._v("gdb -p -c 'watch st.age; commands; bt; end; c; c'")])]),t._v(" "),n("li",[n("p",[t._v("对每个设置多个断点,每个断点触发时打印CallTrace及文件/函数/行信息。")]),t._v(" "),n("p",[t._v("说明:每个断点对应自己的触发处理,此处采用了自定义命令hit_me的方式。")]),t._v(" "),n("p",[t._v("gdb -p -f /tmp/b.gdb")]),t._v(" "),n("p",[t._v("handle all noprint nostop")]),t._v(" "),n("p",[t._v("define hit_me")]),t._v(" "),n("p",[t._v("echo \\n>>>hit_me>>>\\n")]),t._v(" "),n("p",[t._v("bt")]),t._v(" "),n("p",[t._v("info thread")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("b test.c:24")]),t._v(" "),n("p",[t._v("commands")]),t._v(" "),n("p",[t._v("hit_me")]),t._v(" "),n("p",[t._v("c")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("b test.c:36")]),t._v(" "),n("p",[t._v("commands")]),t._v(" "),n("p",[t._v("hit_me")]),t._v(" "),n("p",[t._v("c")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("c")])]),t._v(" "),n("li",[n("p",[t._v("查看phy_dev[]中ifindex为26的结构体。")]),t._v(" "),n("p",[t._v("说明:phy_dev为共享数据,因此只需查看单个即可,如pid为11662。命令序列略繁,可写入命令文件。")]),t._v(" "),n("p",[t._v("gdb -f /tmp/dev.gdb -i 11662")]),t._v(" "),n("p",[t._v("脚本/tmp/dev.gdb内容如下:")]),t._v(" "),n("p",[t._v("handle all noprint nostop")]),t._v(" "),n("p",[t._v("set print pretty")]),t._v(" "),n("p",[t._v("set $idx=26")]),t._v(" "),n("p",[t._v("set $i=0")]),t._v(" "),n("p",[t._v("while ($i<256)")]),t._v(" "),n("p",[t._v("set $d = (struct dev*)phy_dev[$i]")]),t._v(" "),n("p",[t._v("if ($d == 0)")]),t._v(" "),n("p",[t._v("loop_break")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("if ($d->ifindex==$idx)")]),t._v(" "),n("p",[t._v("p/x *$d")]),t._v(" "),n("p",[t._v("loop_break")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("set $i = $i+1")]),t._v(" "),n("p",[t._v("end")])]),t._v(" "),n("li",[n("p",[t._v("查看挂接在链表mirror_filter_list上的每个filter节点。")])])]),t._v(" "),n("p",[t._v("说明:mirror_filter_list为共享数据,因此只需查看单个即可,如pid为11662。")]),t._v(" "),n("p",[t._v("gdb -f /tmp/mirror_filter.gdb -i 11662")]),t._v(" "),n("p",[t._v("脚本mirror_filter.gdb内容如下:")]),t._v(" "),n("p",[t._v("handle all noprint nostop")]),t._v(" "),n("p",[t._v("set print pretty")]),t._v(" "),n("p",[t._v("p/x &mirror_filter_list")]),t._v(" "),n("p",[t._v("set $f=mirror_filter_list.next")]),t._v(" "),n("p",[t._v("while (1)")]),t._v(" "),n("p",[t._v("if ($f==&mirror_filter_list)")]),t._v(" "),n("p",[t._v("echo [end of list]")]),t._v(" "),n("p",[t._v("loop_break")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("p",[t._v("p/x *(struct mirror_filter_t*)$f")]),t._v(" "),n("p",[t._v("set $f=((struct list_head*)$f)->next")]),t._v(" "),n("p",[t._v("end")]),t._v(" "),n("ol",[n("li",[n("p",[t._v("获取进程core大小限制。")]),t._v(" "),n("p",[t._v("gdb -c 'p getrlimit(4,$rsp-32); x/2xg $rsp-32'")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/14.21bcebc4.js b/assets/js/14.21bcebc4.js new file mode 100644 index 0000000..fc97f38 --- /dev/null +++ b/assets/js/14.21bcebc4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{596:function(s,t,a){"use strict";a.r(t);var n=a(15),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"mutex、读写锁、自旋锁、信号量以及rcu的性能测试"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mutex、读写锁、自旋锁、信号量以及rcu的性能测试"}},[s._v("#")]),s._v(" mutex、读写锁、自旋锁、信号量以及RCU的性能测试")]),s._v(" "),a("h2",{attrs:{id:"前言"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#前言"}},[s._v("#")]),s._v(" 前言")]),s._v(" "),a("blockquote",[a("p",[s._v("本例为一个读线程和一个写线程,在不同加锁情况下测试一秒钟读写次数\n没有测试多线程情况,结果只有参考意义\n读写次数还与cpu频率相关 但大致不同种类的锁性能比较差距不大\n测试源码和过程在最下面")])]),s._v(" "),a("h2",{attrs:{id:"一、直接上结论"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#一、直接上结论"}},[s._v("#")]),s._v(" 一、直接上结论")]),s._v(" "),a("h3",{attrs:{id:"_1、以下为每秒读写次数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1、以下为每秒读写次数"}},[s._v("#")]),s._v(" 1、以下为每秒读写次数")]),s._v(" "),a("blockquote",[a("p",[s._v("次数与cpu频率相关,不同机器测试结果不同(这里使用ubuntu20.04虚拟机测试的)")])]),s._v(" "),a("p",[s._v("读写锁\t21000k")]),s._v(" "),a("p",[s._v("mutex\t31000k")]),s._v(" "),a("p",[s._v("自旋锁\t58000k")]),s._v(" "),a("p",[s._v("信号量 27000k")]),s._v(" "),a("p",[s._v("rcu\t\t47000k")]),s._v(" "),a("h3",{attrs:{id:"_2、锁的特点和使用场景"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2、锁的特点和使用场景"}},[s._v("#")]),s._v(" 2、锁的特点和使用场景")]),s._v(" "),a("p",[s._v("自旋锁特点 循环等待等 力度很小 用于链表头指针改变等情况")]),s._v(" "),a("p",[s._v("mutex 加锁时线程休眠一会看一下 可用于大部分情况")]),s._v(" "),a("p",[s._v("读写锁 读写都要判断 加锁复杂 不推荐使用")]),s._v(" "),a("p",[s._v("信号量 pv操作 比mutex低一点")]),s._v(" "),a("p",[s._v("rcu 读写锁变种 read copy update 可以代替读写锁情况")]),s._v(" "),a("h2",{attrs:{id:"二、环境准备"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#二、环境准备"}},[s._v("#")]),s._v(" 二、环境准备")]),s._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",[a("code",[s._v("编译命令\n")])])]),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v(" gcc -o rcu rcu.c -lpthread -lurcu\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("div",{staticClass:"language- extra-class"},[a("pre",[a("code",[s._v("rcu锁需要安装liburcu-dev\n")])])]),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("apt-get")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" liburcu-dev\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h2",{attrs:{id:"三、实际测试结果"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#三、实际测试结果"}},[s._v("#")]),s._v(" 三、实际测试结果")]),s._v(" "),a("p",[s._v("不加锁")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("root@luo:~/workspace/test"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./rcu ")]),s._v("\nError: x:2340421, y:3524383\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("p",[s._v("读写锁")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("root@luo:~/workspace/test"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./rcu ")]),s._v("\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("19500709")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("19500")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("44758029")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("22379")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("65393430")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("21797")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("85189522")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("21297")]),s._v(" K reads/sec\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("p",[s._v("信号量")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("root@luo:~/workspace/test"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./rcu ")]),s._v("\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("27627678")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("27627")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("55094966")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("27547")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("82395410")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("27465")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("109609817")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("27402")]),s._v(" K reads/sec\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("p",[s._v("mutex")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("root@luo:~/workspace/test"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./rcu ")]),s._v("\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("32018261")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("32018")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("63767452")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("31883")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("95838658")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("31946")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("127792109")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("31948")]),s._v(" K reads/sec\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("p",[s._v("自旋锁")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("root@luo:~/workspace/test"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./rcu ")]),s._v("\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("57844075")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("57844")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("117047083")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("58523")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("173215973")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("57738")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("229239811")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("57309")]),s._v(" K reads/sec\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("p",[s._v("RCU")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("root@luo:~/workspace/test"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./rcu ")]),s._v("\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("47511136")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("47511")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("94736084")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("47368")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("141648406")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("47216")]),s._v(" K reads/sec\nreads: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("188779939")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("47194")]),s._v(" K reads/sec\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("h2",{attrs:{id:"四、-源码"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#四、-源码"}},[s._v("#")]),s._v(" 四、 源码")]),s._v(" "),a("p",[s._v("rcu.c")]),s._v(" "),a("div",{staticClass:"language-c line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-c"}},[a("code",[a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("gp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" done "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("long")]),s._v(" reads "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("pthread_rwlock_t")]),s._v(" rwlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("pthread_mutex_t")]),s._v(" mutex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("pthread_spinlock_t")]),s._v(" spinlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("sem_t")]),s._v(" sem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("timer")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("timespec")]),s._v(" ts"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" ts2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("timespec_get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("ts"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" TIME_UTC"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("while")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("done"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sleep")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("timespec_get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("ts2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" TIME_UTC"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("time_t")]),s._v(" sec "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" ts2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tv_sec "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v(" ts"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("tv_sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"reads: %ld, %ld K reads/sec\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reads"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("reads"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),s._v("sec"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("updater")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("old"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" INT_MAX"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t\tp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("malloc")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\tp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\told "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\t\tgp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_rwlock_wrlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("rwlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tgp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_rwlock_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("rwlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_mutex_lock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("mutex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tgp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_mutex_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("mutex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_spin_lock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("spinlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tgp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_spin_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("spinlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")])])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_assign_pointer")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("gp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("synchronize_rcu")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("else")])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sem_wait")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("sem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tgp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sem_post")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("sem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("endif")])]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("free")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("old"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t\n\t"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("reader")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("arg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_register_thread")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//urcu")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("while")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!")]),s._v("done"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\t\tx "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\ty "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_rwlock_rdlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("rwlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tx "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\ty "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_rwlock_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("rwlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_mutex_lock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("mutex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tx "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\ty "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_mutex_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("mutex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")])])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_spin_lock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("spinlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tx "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\ty "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_spin_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("spinlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("elif")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token expression"}},[a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")])])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_read_lock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("p "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_dereference")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("gp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tx "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\ty "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" p"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_read_unlock")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("else")])]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sem_wait")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("sem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\tx "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\ty "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" gp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sem_post")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("sem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("endif")])]),s._v("\n\t\treads "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("if")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("!=")]),s._v(" x"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("+")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\t\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Error: x:%d, y:%d\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t\tdone "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("break")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_unregister_thread")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("exit")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("pthread_t")]),s._v(" tid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_rwlock_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("rwlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_mutex_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("mutex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_spin_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("spinlock"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" PTHREAD_PROCESS_SHARED"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("sem_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("sem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("rcu_init")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// rcu ")]),s._v("\n\n\tgp "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("malloc")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("sizeof")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("struct")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("point")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\tgp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\tgp"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_create")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" updater"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_create")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" reader"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_create")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("tid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" timer"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n\t\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("pthread_join")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("tid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("NULL")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\t"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\t"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("free")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("gp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br"),a("span",{staticClass:"line-number"},[s._v("41")]),a("br"),a("span",{staticClass:"line-number"},[s._v("42")]),a("br"),a("span",{staticClass:"line-number"},[s._v("43")]),a("br"),a("span",{staticClass:"line-number"},[s._v("44")]),a("br"),a("span",{staticClass:"line-number"},[s._v("45")]),a("br"),a("span",{staticClass:"line-number"},[s._v("46")]),a("br"),a("span",{staticClass:"line-number"},[s._v("47")]),a("br"),a("span",{staticClass:"line-number"},[s._v("48")]),a("br"),a("span",{staticClass:"line-number"},[s._v("49")]),a("br"),a("span",{staticClass:"line-number"},[s._v("50")]),a("br"),a("span",{staticClass:"line-number"},[s._v("51")]),a("br"),a("span",{staticClass:"line-number"},[s._v("52")]),a("br"),a("span",{staticClass:"line-number"},[s._v("53")]),a("br"),a("span",{staticClass:"line-number"},[s._v("54")]),a("br"),a("span",{staticClass:"line-number"},[s._v("55")]),a("br"),a("span",{staticClass:"line-number"},[s._v("56")]),a("br"),a("span",{staticClass:"line-number"},[s._v("57")]),a("br"),a("span",{staticClass:"line-number"},[s._v("58")]),a("br"),a("span",{staticClass:"line-number"},[s._v("59")]),a("br"),a("span",{staticClass:"line-number"},[s._v("60")]),a("br"),a("span",{staticClass:"line-number"},[s._v("61")]),a("br"),a("span",{staticClass:"line-number"},[s._v("62")]),a("br"),a("span",{staticClass:"line-number"},[s._v("63")]),a("br"),a("span",{staticClass:"line-number"},[s._v("64")]),a("br"),a("span",{staticClass:"line-number"},[s._v("65")]),a("br"),a("span",{staticClass:"line-number"},[s._v("66")]),a("br"),a("span",{staticClass:"line-number"},[s._v("67")]),a("br"),a("span",{staticClass:"line-number"},[s._v("68")]),a("br"),a("span",{staticClass:"line-number"},[s._v("69")]),a("br"),a("span",{staticClass:"line-number"},[s._v("70")]),a("br"),a("span",{staticClass:"line-number"},[s._v("71")]),a("br"),a("span",{staticClass:"line-number"},[s._v("72")]),a("br"),a("span",{staticClass:"line-number"},[s._v("73")]),a("br"),a("span",{staticClass:"line-number"},[s._v("74")]),a("br"),a("span",{staticClass:"line-number"},[s._v("75")]),a("br"),a("span",{staticClass:"line-number"},[s._v("76")]),a("br"),a("span",{staticClass:"line-number"},[s._v("77")]),a("br"),a("span",{staticClass:"line-number"},[s._v("78")]),a("br"),a("span",{staticClass:"line-number"},[s._v("79")]),a("br"),a("span",{staticClass:"line-number"},[s._v("80")]),a("br"),a("span",{staticClass:"line-number"},[s._v("81")]),a("br"),a("span",{staticClass:"line-number"},[s._v("82")]),a("br"),a("span",{staticClass:"line-number"},[s._v("83")]),a("br"),a("span",{staticClass:"line-number"},[s._v("84")]),a("br"),a("span",{staticClass:"line-number"},[s._v("85")]),a("br"),a("span",{staticClass:"line-number"},[s._v("86")]),a("br"),a("span",{staticClass:"line-number"},[s._v("87")]),a("br"),a("span",{staticClass:"line-number"},[s._v("88")]),a("br"),a("span",{staticClass:"line-number"},[s._v("89")]),a("br"),a("span",{staticClass:"line-number"},[s._v("90")]),a("br"),a("span",{staticClass:"line-number"},[s._v("91")]),a("br"),a("span",{staticClass:"line-number"},[s._v("92")]),a("br"),a("span",{staticClass:"line-number"},[s._v("93")]),a("br"),a("span",{staticClass:"line-number"},[s._v("94")]),a("br"),a("span",{staticClass:"line-number"},[s._v("95")]),a("br"),a("span",{staticClass:"line-number"},[s._v("96")]),a("br"),a("span",{staticClass:"line-number"},[s._v("97")]),a("br"),a("span",{staticClass:"line-number"},[s._v("98")]),a("br"),a("span",{staticClass:"line-number"},[s._v("99")]),a("br"),a("span",{staticClass:"line-number"},[s._v("100")]),a("br"),a("span",{staticClass:"line-number"},[s._v("101")]),a("br"),a("span",{staticClass:"line-number"},[s._v("102")]),a("br"),a("span",{staticClass:"line-number"},[s._v("103")]),a("br"),a("span",{staticClass:"line-number"},[s._v("104")]),a("br"),a("span",{staticClass:"line-number"},[s._v("105")]),a("br"),a("span",{staticClass:"line-number"},[s._v("106")]),a("br"),a("span",{staticClass:"line-number"},[s._v("107")]),a("br"),a("span",{staticClass:"line-number"},[s._v("108")]),a("br"),a("span",{staticClass:"line-number"},[s._v("109")]),a("br"),a("span",{staticClass:"line-number"},[s._v("110")]),a("br"),a("span",{staticClass:"line-number"},[s._v("111")]),a("br"),a("span",{staticClass:"line-number"},[s._v("112")]),a("br"),a("span",{staticClass:"line-number"},[s._v("113")]),a("br"),a("span",{staticClass:"line-number"},[s._v("114")]),a("br"),a("span",{staticClass:"line-number"},[s._v("115")]),a("br"),a("span",{staticClass:"line-number"},[s._v("116")]),a("br"),a("span",{staticClass:"line-number"},[s._v("117")]),a("br"),a("span",{staticClass:"line-number"},[s._v("118")]),a("br"),a("span",{staticClass:"line-number"},[s._v("119")]),a("br"),a("span",{staticClass:"line-number"},[s._v("120")]),a("br"),a("span",{staticClass:"line-number"},[s._v("121")]),a("br"),a("span",{staticClass:"line-number"},[s._v("122")]),a("br"),a("span",{staticClass:"line-number"},[s._v("123")]),a("br"),a("span",{staticClass:"line-number"},[s._v("124")]),a("br"),a("span",{staticClass:"line-number"},[s._v("125")]),a("br"),a("span",{staticClass:"line-number"},[s._v("126")]),a("br"),a("span",{staticClass:"line-number"},[s._v("127")]),a("br"),a("span",{staticClass:"line-number"},[s._v("128")]),a("br"),a("span",{staticClass:"line-number"},[s._v("129")]),a("br"),a("span",{staticClass:"line-number"},[s._v("130")]),a("br"),a("span",{staticClass:"line-number"},[s._v("131")]),a("br"),a("span",{staticClass:"line-number"},[s._v("132")]),a("br"),a("span",{staticClass:"line-number"},[s._v("133")]),a("br"),a("span",{staticClass:"line-number"},[s._v("134")]),a("br"),a("span",{staticClass:"line-number"},[s._v("135")]),a("br"),a("span",{staticClass:"line-number"},[s._v("136")]),a("br"),a("span",{staticClass:"line-number"},[s._v("137")]),a("br"),a("span",{staticClass:"line-number"},[s._v("138")]),a("br"),a("span",{staticClass:"line-number"},[s._v("139")]),a("br"),a("span",{staticClass:"line-number"},[s._v("140")]),a("br"),a("span",{staticClass:"line-number"},[s._v("141")]),a("br"),a("span",{staticClass:"line-number"},[s._v("142")]),a("br"),a("span",{staticClass:"line-number"},[s._v("143")]),a("br"),a("span",{staticClass:"line-number"},[s._v("144")]),a("br"),a("span",{staticClass:"line-number"},[s._v("145")]),a("br"),a("span",{staticClass:"line-number"},[s._v("146")]),a("br"),a("span",{staticClass:"line-number"},[s._v("147")]),a("br"),a("span",{staticClass:"line-number"},[s._v("148")]),a("br"),a("span",{staticClass:"line-number"},[s._v("149")]),a("br"),a("span",{staticClass:"line-number"},[s._v("150")]),a("br"),a("span",{staticClass:"line-number"},[s._v("151")]),a("br"),a("span",{staticClass:"line-number"},[s._v("152")]),a("br"),a("span",{staticClass:"line-number"},[s._v("153")]),a("br"),a("span",{staticClass:"line-number"},[s._v("154")]),a("br"),a("span",{staticClass:"line-number"},[s._v("155")]),a("br"),a("span",{staticClass:"line-number"},[s._v("156")]),a("br"),a("span",{staticClass:"line-number"},[s._v("157")]),a("br"),a("span",{staticClass:"line-number"},[s._v("158")]),a("br"),a("span",{staticClass:"line-number"},[s._v("159")]),a("br"),a("span",{staticClass:"line-number"},[s._v("160")]),a("br"),a("span",{staticClass:"line-number"},[s._v("161")]),a("br"),a("span",{staticClass:"line-number"},[s._v("162")]),a("br"),a("span",{staticClass:"line-number"},[s._v("163")]),a("br"),a("span",{staticClass:"line-number"},[s._v("164")]),a("br"),a("span",{staticClass:"line-number"},[s._v("165")]),a("br"),a("span",{staticClass:"line-number"},[s._v("166")]),a("br"),a("span",{staticClass:"line-number"},[s._v("167")]),a("br"),a("span",{staticClass:"line-number"},[s._v("168")]),a("br"),a("span",{staticClass:"line-number"},[s._v("169")]),a("br"),a("span",{staticClass:"line-number"},[s._v("170")]),a("br"),a("span",{staticClass:"line-number"},[s._v("171")]),a("br"),a("span",{staticClass:"line-number"},[s._v("172")]),a("br"),a("span",{staticClass:"line-number"},[s._v("173")]),a("br"),a("span",{staticClass:"line-number"},[s._v("174")]),a("br"),a("span",{staticClass:"line-number"},[s._v("175")]),a("br"),a("span",{staticClass:"line-number"},[s._v("176")]),a("br"),a("span",{staticClass:"line-number"},[s._v("177")]),a("br"),a("span",{staticClass:"line-number"},[s._v("178")]),a("br"),a("span",{staticClass:"line-number"},[s._v("179")]),a("br"),a("span",{staticClass:"line-number"},[s._v("180")]),a("br"),a("span",{staticClass:"line-number"},[s._v("181")]),a("br"),a("span",{staticClass:"line-number"},[s._v("182")]),a("br"),a("span",{staticClass:"line-number"},[s._v("183")]),a("br"),a("span",{staticClass:"line-number"},[s._v("184")]),a("br"),a("span",{staticClass:"line-number"},[s._v("185")]),a("br"),a("span",{staticClass:"line-number"},[s._v("186")]),a("br"),a("span",{staticClass:"line-number"},[s._v("187")]),a("br")])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/15.cc9f2f8e.js b/assets/js/15.cc9f2f8e.js new file mode 100644 index 0000000..9e963ac --- /dev/null +++ b/assets/js/15.cc9f2f8e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{597:function(s,a,t){"use strict";t.r(a);var n=t(15),e=Object(n.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h2",{attrs:{id:"方法"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#方法"}},[s._v("#")]),s._v(" 方法")]),s._v(" "),t("p",[s._v("循环分配10000个类对象 然后查看内存空间源码在最下面")]),s._v(" "),t("p",[s._v("对c++类的虚函数有基本了解")]),s._v(" "),t("h2",{attrs:{id:"编译命令"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#编译命令"}},[s._v("#")]),s._v(" 编译命令")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("g++ -o memtest memtest.cpp -g -O0\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h2",{attrs:{id:"直接开始"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#直接开始"}},[s._v("#")]),s._v(" 直接开始")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("@luo:~/workspace/memtest# gdb memtest <----------------------- 使用gdb 调试memtest\nGNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2\n...\n...\nReading symbols from memtest...\n(gdb) r <------------------------------------------------------开始运行\nStarting program: /root/workspace/memtest/memtest \nterminate called after throwing an instance of 'std::bad_alloc'\n what(): std::bad_alloc\n\nProgram received signal SIGABRT, Aborted.\n__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50\n50\t../sysdeps/unix/sysv/linux/raise.c: No such file or directory.\n(gdb) info proc <---------------------------------------------查看当前进程信息\nprocess 2132 <------------------------------------------------ 当前进程pid\ncmdline = '/root/workspace/memtest/memtest'\ncwd = '/root/workspace/memtest'\nexe = '/root/workspace/memtest/memtest'\n(gdb) shell pmap -x 2132 <------------------------------------ 使用pmap查看内存映射\n2132: /root/workspace/memtest/memtest\nAddress Kbytes RSS Dirty Mode Mapping\n0000555555554000 4 4 4 r---- memtest\n0000555555555000 4 4 4 r-x-- memtest\n0000555555556000 4 4 0 r---- memtest\n0000555555557000 4 4 4 r---- memtest\n0000555555558000 4 4 4 rw--- memtest\n0000555555559000 396 324 324 rw--- [ anon ] <------堆内存地址\n00007ffff7a7d000 16 16 16 rw--- [ anon ]\n00007ffff7a81000 12 12 0 r---- libgcc_s.so.1\n00007ffff7a84000 72 72 0 r-x-- libgcc_s.so.1\n00007ffff7a96000 16 16 0 r---- libgcc_s.so.1\n00007ffff7a9a000 4 4 4 r---- libgcc_s.so.1\n00007ffff7a9b000 4 4 4 rw--- libgcc_s.so.1\n00007ffff7a9c000 52 52 0 r---- libm-2.31.so\n00007ffff7aa9000 668 256 0 r-x-- libm-2.31.so\n00007ffff7b50000 612 0 0 r---- libm-2.31.so\n00007ffff7be9000 4 4 4 r---- libm-2.31.so\n00007ffff7bea000 4 4 4 rw--- libm-2.31.so\n00007ffff7beb000 136 136 0 r---- libc-2.31.so\n00007ffff7c0d000 1504 848 8 r-x-- libc-2.31.so\n00007ffff7d85000 312 172 0 r---- libc-2.31.so\n00007ffff7dd3000 16 16 16 r---- libc-2.31.so\n00007ffff7dd7000 8 8 8 rw--- libc-2.31.so\n00007ffff7dd9000 16 12 12 rw--- [ anon ]\n00007ffff7ddd000 600 600 0 r---- libstdc++.so.6.0.28\n00007ffff7e73000 964 628 4 r-x-- libstdc++.so.6.0.28\n00007ffff7f64000 292 164 0 r---- libstdc++.so.6.0.28\n00007ffff7fad000 4 0 0 ----- libstdc++.so.6.0.28\n00007ffff7fae000 44 44 44 r---- libstdc++.so.6.0.28\n00007ffff7fb9000 12 12 12 rw--- libstdc++.so.6.0.28\n00007ffff7fbc000 20 20 20 rw--- [ anon ]\n00007ffff7fcb000 12 0 0 r---- [ anon ]\n00007ffff7fce000 4 4 4 r-x-- [ anon ]\n00007ffff7fcf000 4 4 0 r---- ld-2.31.so\n00007ffff7fd0000 140 140 24 r-x-- ld-2.31.so\n00007ffff7ff3000 32 32 0 r---- ld-2.31.so\n00007ffff7ffc000 4 4 4 r---- ld-2.31.so\n00007ffff7ffd000 4 4 4 rw--- ld-2.31.so\n00007ffff7ffe000 4 4 4 rw--- [ anon ]\n00007ffffffde000 132 12 12 rw--- [ stack ]\nffffffffff600000 4 0 0 --x-- [ anon ]\n---------------- ------- ------- ------- \ntotal kB 6148 3648 548\n\t\t\t\t\t\t\t\t\t\t\t\t\t计算方法 396*1024/8=50688\n(gdb) x/50688a 0x0000555555559000 <----------------------- 查看堆内存地址数据\n0x555555559000:\t0x0\t0x291\n...\n...\n0x55555556aea0:\t0x0\t0x21\n0x55555556aeb0:\t0x555555557cd0 <_ZTV7MEMTEST+16>\t0xbb114514aa114514\n0x55555556aec0:\t0x0\t0x21\n0x55555556aed0:\t0x555555557cd0 <_ZTV7MEMTEST+16>\t0xbb114514aa114514\n0x55555556aee0:\t0x0\t0x21\n0x55555556aef0:\t0x555555557cd0 <_ZTV7MEMTEST+16>\t0xbb114514aa114514\n0x55555556af00:\t0x0\t0x21\n0x55555556af10:\t0x555555557cd0 <_ZTV7MEMTEST+16>\t0xbb114514aa114514\n...\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br"),t("span",{staticClass:"line-number"},[s._v("9")]),t("br"),t("span",{staticClass:"line-number"},[s._v("10")]),t("br"),t("span",{staticClass:"line-number"},[s._v("11")]),t("br"),t("span",{staticClass:"line-number"},[s._v("12")]),t("br"),t("span",{staticClass:"line-number"},[s._v("13")]),t("br"),t("span",{staticClass:"line-number"},[s._v("14")]),t("br"),t("span",{staticClass:"line-number"},[s._v("15")]),t("br"),t("span",{staticClass:"line-number"},[s._v("16")]),t("br"),t("span",{staticClass:"line-number"},[s._v("17")]),t("br"),t("span",{staticClass:"line-number"},[s._v("18")]),t("br"),t("span",{staticClass:"line-number"},[s._v("19")]),t("br"),t("span",{staticClass:"line-number"},[s._v("20")]),t("br"),t("span",{staticClass:"line-number"},[s._v("21")]),t("br"),t("span",{staticClass:"line-number"},[s._v("22")]),t("br"),t("span",{staticClass:"line-number"},[s._v("23")]),t("br"),t("span",{staticClass:"line-number"},[s._v("24")]),t("br"),t("span",{staticClass:"line-number"},[s._v("25")]),t("br"),t("span",{staticClass:"line-number"},[s._v("26")]),t("br"),t("span",{staticClass:"line-number"},[s._v("27")]),t("br"),t("span",{staticClass:"line-number"},[s._v("28")]),t("br"),t("span",{staticClass:"line-number"},[s._v("29")]),t("br"),t("span",{staticClass:"line-number"},[s._v("30")]),t("br"),t("span",{staticClass:"line-number"},[s._v("31")]),t("br"),t("span",{staticClass:"line-number"},[s._v("32")]),t("br"),t("span",{staticClass:"line-number"},[s._v("33")]),t("br"),t("span",{staticClass:"line-number"},[s._v("34")]),t("br"),t("span",{staticClass:"line-number"},[s._v("35")]),t("br"),t("span",{staticClass:"line-number"},[s._v("36")]),t("br"),t("span",{staticClass:"line-number"},[s._v("37")]),t("br"),t("span",{staticClass:"line-number"},[s._v("38")]),t("br"),t("span",{staticClass:"line-number"},[s._v("39")]),t("br"),t("span",{staticClass:"line-number"},[s._v("40")]),t("br"),t("span",{staticClass:"line-number"},[s._v("41")]),t("br"),t("span",{staticClass:"line-number"},[s._v("42")]),t("br"),t("span",{staticClass:"line-number"},[s._v("43")]),t("br"),t("span",{staticClass:"line-number"},[s._v("44")]),t("br"),t("span",{staticClass:"line-number"},[s._v("45")]),t("br"),t("span",{staticClass:"line-number"},[s._v("46")]),t("br"),t("span",{staticClass:"line-number"},[s._v("47")]),t("br"),t("span",{staticClass:"line-number"},[s._v("48")]),t("br"),t("span",{staticClass:"line-number"},[s._v("49")]),t("br"),t("span",{staticClass:"line-number"},[s._v("50")]),t("br"),t("span",{staticClass:"line-number"},[s._v("51")]),t("br"),t("span",{staticClass:"line-number"},[s._v("52")]),t("br"),t("span",{staticClass:"line-number"},[s._v("53")]),t("br"),t("span",{staticClass:"line-number"},[s._v("54")]),t("br"),t("span",{staticClass:"line-number"},[s._v("55")]),t("br"),t("span",{staticClass:"line-number"},[s._v("56")]),t("br"),t("span",{staticClass:"line-number"},[s._v("57")]),t("br"),t("span",{staticClass:"line-number"},[s._v("58")]),t("br"),t("span",{staticClass:"line-number"},[s._v("59")]),t("br"),t("span",{staticClass:"line-number"},[s._v("60")]),t("br"),t("span",{staticClass:"line-number"},[s._v("61")]),t("br"),t("span",{staticClass:"line-number"},[s._v("62")]),t("br"),t("span",{staticClass:"line-number"},[s._v("63")]),t("br"),t("span",{staticClass:"line-number"},[s._v("64")]),t("br"),t("span",{staticClass:"line-number"},[s._v("65")]),t("br"),t("span",{staticClass:"line-number"},[s._v("66")]),t("br"),t("span",{staticClass:"line-number"},[s._v("67")]),t("br"),t("span",{staticClass:"line-number"},[s._v("68")]),t("br"),t("span",{staticClass:"line-number"},[s._v("69")]),t("br"),t("span",{staticClass:"line-number"},[s._v("70")]),t("br"),t("span",{staticClass:"line-number"},[s._v("71")]),t("br"),t("span",{staticClass:"line-number"},[s._v("72")]),t("br"),t("span",{staticClass:"line-number"},[s._v("73")]),t("br"),t("span",{staticClass:"line-number"},[s._v("74")]),t("br"),t("span",{staticClass:"line-number"},[s._v("75")]),t("br"),t("span",{staticClass:"line-number"},[s._v("76")]),t("br"),t("span",{staticClass:"line-number"},[s._v("77")]),t("br"),t("span",{staticClass:"line-number"},[s._v("78")]),t("br")])]),t("p",[s._v("使用 c++filt翻译函数符号名称_ZTV7MEMTEST为MEMTEST虚表指针")]),s._v(" "),t("div",{staticClass:"language-sh line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[s._v("root@luo:~/workspace/memtest"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# c++filt _ZTV7MEMTEST")]),s._v("\nvtable "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" MEMTEST\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("p",[s._v("顺便查看一下虚函数表存的什么,~MEMTEST为虚析构函数地址(c++的多态相关)")]),s._v(" "),t("div",{staticClass:"language-sh line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("gdb"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" x/10a 0x555555557cd0\n0x555555557cd0 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("_ZTV7MEMTEST+1"),t("span",{pre:!0,attrs:{class:"token operator"}},[t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("6")]),s._v(">")]),s._v(":\t0x555555555330 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("MEMTEST::~MEMTEST"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\t0x55555555534e "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("MEMTEST::~MEMTEST"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("p",[s._v("在类中没有虚函数时的内存")]),s._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[s._v("0x55555556aea0:\t0x0\t0x21\n0x55555556aeb0:\t0xbb114514aa114514\t0x0\n0x55555556aea0:\t0x0\t0x21\n0x55555556aeb0:\t0xbb114514aa114514\t0x0\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br")])]),t("p",[s._v("在类中有虚函数时的内存")]),s._v(" "),t("div",{staticClass:"language-sh line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[s._v("0x55555556aea0:\t0x0\t0x21\n0x55555556aeb0:\t0x555555557cd0 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("_ZTV7MEMTEST+1"),t("span",{pre:!0,attrs:{class:"token operator"}},[t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("6")]),s._v(">")]),s._v("\t0xbb114514aa114514\n0x55555556aec0:\t0x0\t0x21\n0x55555556aed0:\t0x555555557cd0 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("_ZTV7MEMTEST+1"),t("span",{pre:!0,attrs:{class:"token operator"}},[t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("6")]),s._v(">")]),s._v("\t0xbb114514aa114514\n0x55555556aee0:\t0x0\t0x21\n0x55555556aef0:\t0x555555557cd0 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("_ZTV7MEMTEST+1"),t("span",{pre:!0,attrs:{class:"token operator"}},[t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("6")]),s._v(">")]),s._v("\t0xbb114514aa114514\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br")])]),t("h2",{attrs:{id:"源码memtest-cpp"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#源码memtest-cpp"}},[s._v("#")]),s._v(" 源码memtest.cpp")]),s._v(" "),t("div",{staticClass:"language-c line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-c"}},[t("code",[t("span",{pre:!0,attrs:{class:"token macro property"}},[t("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),t("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\nusing namespace std"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\nclass MEMTEST\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\npublic"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 注释掉后就没有 虚表指针 0x555555557cd0 <_ZTV7MEMTEST+16>")]),s._v("\n virtual "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("~")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("MEMTEST")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" j"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("f")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" i "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10000")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("++")]),s._v("i"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//")]),s._v("\n MEMTEST "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v("p "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" new MEMTEST"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n p"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("i "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0xAA114514")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n p"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("->")]),s._v("j "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0xBB114514")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n throw std"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("::")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("bad_alloc")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("main")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("f")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br"),t("span",{staticClass:"line-number"},[s._v("7")]),t("br"),t("span",{staticClass:"line-number"},[s._v("8")]),t("br"),t("span",{staticClass:"line-number"},[s._v("9")]),t("br"),t("span",{staticClass:"line-number"},[s._v("10")]),t("br"),t("span",{staticClass:"line-number"},[s._v("11")]),t("br"),t("span",{staticClass:"line-number"},[s._v("12")]),t("br"),t("span",{staticClass:"line-number"},[s._v("13")]),t("br"),t("span",{staticClass:"line-number"},[s._v("14")]),t("br"),t("span",{staticClass:"line-number"},[s._v("15")]),t("br"),t("span",{staticClass:"line-number"},[s._v("16")]),t("br"),t("span",{staticClass:"line-number"},[s._v("17")]),t("br"),t("span",{staticClass:"line-number"},[s._v("18")]),t("br"),t("span",{staticClass:"line-number"},[s._v("19")]),t("br"),t("span",{staticClass:"line-number"},[s._v("20")]),t("br"),t("span",{staticClass:"line-number"},[s._v("21")]),t("br"),t("span",{staticClass:"line-number"},[s._v("22")]),t("br"),t("span",{staticClass:"line-number"},[s._v("23")]),t("br"),t("span",{staticClass:"line-number"},[s._v("24")]),t("br"),t("span",{staticClass:"line-number"},[s._v("25")]),t("br"),t("span",{staticClass:"line-number"},[s._v("26")]),t("br"),t("span",{staticClass:"line-number"},[s._v("27")]),t("br"),t("span",{staticClass:"line-number"},[s._v("28")]),t("br"),t("span",{staticClass:"line-number"},[s._v("29")]),t("br"),t("span",{staticClass:"line-number"},[s._v("30")]),t("br"),t("span",{staticClass:"line-number"},[s._v("31")]),t("br"),t("span",{staticClass:"line-number"},[s._v("32")]),t("br"),t("span",{staticClass:"line-number"},[s._v("33")]),t("br")])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/16.d264cc33.js b/assets/js/16.d264cc33.js new file mode 100644 index 0000000..49ef1d0 --- /dev/null +++ b/assets/js/16.d264cc33.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{598:function(s,t,a){"use strict";a.r(t);var n=a(15),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"_1-perf工具和火焰图简介"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-perf工具和火焰图简介"}},[s._v("#")]),s._v(" 1 perf工具和火焰图简介")]),s._v(" "),a("p",[s._v("能做什么:")]),s._v(" "),a("blockquote",[a("p",[s._v("可以分析函数执⾏的频繁程度")]),s._v(" "),a("p",[s._v("可以分析哪些函数经常阻塞")]),s._v(" "),a("p",[s._v("可以分析哪些函数频繁分配内存")])]),s._v(" "),a("p",[s._v("Flame Graph 原图路径:https://queue.acm.org/downloads/2016/Gregg4.svg")]),s._v(" "),a("p",[a("img",{attrs:{src:"https://queue.acm.org/downloads/2016/Gregg4.svg",alt:"img"}})]),s._v(" "),a("h1",{attrs:{id:"_2-通过perf收集函数堆栈信息绘制火焰图"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-通过perf收集函数堆栈信息绘制火焰图"}},[s._v("#")]),s._v(" 2 通过perf收集函数堆栈信息绘制火焰图")]),s._v(" "),a("h2",{attrs:{id:"_2-1-安装perf"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-1-安装perf"}},[s._v("#")]),s._v(" 2.1 安装perf")]),s._v(" "),a("blockquote",[a("p",[s._v("perf 命令(performance 的缩写)讲起, 它是 Linux 系统原⽣提供的性能分析⼯具, 会返回 CPU 正在执⾏的函数名以及调⽤栈(stack)")])]),s._v(" "),a("p",[s._v("安装perf")]),s._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[s._v(" apt install linux-tools-common\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("p",[s._v("测试perf是否可用 perf.data为产生的文件")]),s._v(" "),a("div",{staticClass:"language-shell line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[s._v("┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# perf record -F 99 -a -g -- sleep 10")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" perf record: Woken up "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("times")]),s._v(" to "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("write")]),s._v(" data "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" perf record: Captured and wrote "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.598")]),s._v(" MB perf.data "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3370")]),s._v(" samples"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\n┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ls")]),s._v("\nperf.data perf.data.old "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" test.c\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br")])]),a("h2",{attrs:{id:"_2-2-编译并运行测试程序"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-2-编译并运行测试程序"}},[s._v("#")]),s._v(" 2.2 编译并运行测试程序")]),s._v(" "),a("p",[s._v("test.c 源码和接受在最下面")]),s._v(" "),a("div",{staticClass:"language-shell line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[s._v("┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# gcc -o test test.c -g")]),s._v("\n┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ./test ")]),s._v("\nmain into\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("h2",{attrs:{id:"_2-3-使用perf采集数据"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-3-使用perf采集数据"}},[s._v("#")]),s._v(" 2.3 使用perf采集数据")]),s._v(" "),a("p",[s._v("perf record 表示采集系统事件, 没有使⽤ -e 指定采集事件, 则默认采集 cycles(即 CPU clock 周")]),s._v(" "),a("p",[s._v("期), -F 99 表示每秒 99 次, -p "),a("code",[s._v("pidof test")]),s._v("是进程号, 即对哪个进程进⾏分析, -g 表示记录调⽤栈,")]),s._v(" "),a("p",[s._v("sleep 30 则是持续 30 秒.")]),s._v(" "),a("div",{staticClass:"language-shell line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[s._v("┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# perf record -F 99 -p `pidof test` -g -- sleep 30 ")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" perf record: Woken up "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("times")]),s._v(" to "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("write")]),s._v(" data "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" perf record: Captured and wrote "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.235")]),s._v(" MB perf.data "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2962")]),s._v(" samples"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\n┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ls")]),s._v("\nperf.data perf.data.old "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" test.c\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br")])]),a("p",[s._v("使用perf report 可以看到堆栈热点函数")]),s._v(" "),a("div",{staticClass:"language-shell line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[s._v("┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# perf report ")]),s._v("\n\nSamples: 2K of event "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'cpu-clock:pppH'")]),s._v(", Event count "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("approx."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(": "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("29919191620")]),s._v(" \n Children Self Command Shared Object Symbol \n+ "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" libc-2.31.so "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" __libc_start_main\n+ "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("29.71")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" main\n+ "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("35.58")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("35.55")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" func_c\n+ "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("19.85")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("19.85")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" func_b\n+ "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("14.85")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("9.55")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" func_a\n+ "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5.30")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5.30")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("."),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" func_d\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" __lock_text_start\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" apic_timer_interrupt\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" smp_apic_timer_interrupt\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" irq_exit\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" __softirqentry_text_start\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" run_timer_softirq\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" __run_timers.part.0\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" call_timer_fn\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" rh_timer_func\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" usb_hcd_poll_rh_status\n "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.03")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.00")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("kernel.kallsyms"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("k"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" uhci_hub_status_data\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br")])]),a("h2",{attrs:{id:"_2-4-下载火焰图脚本"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-4-下载火焰图脚本"}},[s._v("#")]),s._v(" 2.4 下载火焰图脚本")]),s._v(" "),a("p",[s._v("https://github.com/brendangregg/FlameGraph")]),s._v(" "),a("p",[s._v("git clone https://gitee.com/mirrors/FlameGraph.git")]),s._v(" "),a("div",{staticClass:"language-shell line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[s._v("┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# git clone https://gitee.com/mirrors/FlameGraph.git ")]),s._v("\nCloning into "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'FlameGraph'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(".\nremote: Enumerating objects: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1147")]),s._v(", done.\nremote: Total "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1147")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("delta "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(", reused "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("delta "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(", pack-reused "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1147")]),s._v("\nReceiving objects: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1147")]),s._v("/1147"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(", "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1.87")]),s._v(" MiB "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("806.00")]),s._v(" KiB/s, done.\nResolving deltas: "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("100")]),s._v("% "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("674")]),s._v("/674"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(", done.\n\n┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ls")]),s._v("\nFlameGraph perf.data perf.data.old "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("test")]),s._v(" test.c\n\n┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# ls FlameGraph/")]),s._v("\naix-perf.pl stackcollapse-gdb.pl\ndemos stackcollapse-go.pl\ndev stackcollapse-instruments.pl\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(".\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("..")]),s._v(".\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br")])]),a("h2",{attrs:{id:"_2-5-生成火焰图"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-5-生成火焰图"}},[s._v("#")]),s._v(" 2.5 生成火焰图")]),s._v(" "),a("div",{staticClass:"language-shell line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[s._v("┌──"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("root💀luo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("-"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("~/workspace/flamegraph/src-flamegraph/test"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n└─"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > process.svg")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("p",[s._v("下载到windows桌面用浏览器打开查看效果")]),s._v(" "),a("p",[s._v("https://lzwtty.oss-cn-hangzhou.aliyuncs.com/blogimage/acknowledge/test_flamegraph.svg")]),s._v(" "),a("p",[a("img",{attrs:{src:"https://lzwtty.oss-cn-hangzhou.aliyuncs.com/blogimage/acknowledge/test_flamegraph.svg",alt:"img"}})]),s._v(" "),a("p",[s._v("可以很清晰的看到热点函数调用占用cpu使用率")]),s._v(" "),a("h2",{attrs:{id:"_2-5-火焰图的含义"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-5-火焰图的含义"}},[s._v("#")]),s._v(" 2.5 ⽕焰图的含义")]),s._v(" "),a("p",[s._v("⽕焰图是基于 stack 信息⽣成的 SVG 图⽚, ⽤来展示 CPU 的调⽤栈。")]),s._v(" "),a("ul",[a("li",[s._v("y 轴表示调⽤栈, 每⼀层都是⼀个函数. 调⽤栈越深, ⽕焰就越⾼, 顶部就是正在执⾏的函数, 下")])]),s._v(" "),a("p",[s._v("⽅都是它的⽗函数.")]),s._v(" "),a("ul",[a("li",[s._v("x 轴表示抽样数, 如果⼀个函数在 x 轴占据的宽度越宽, 就表示它被抽到的次数多, 即执⾏的时")])]),s._v(" "),a("p",[s._v("间⻓. 注意, x 轴不代表时间, ⽽是所有的调⽤栈合并后, 按字⺟顺序排列的.")]),s._v(" "),a("ul",[a("li",[s._v("⽕焰图就是看顶层的哪个函数占据的宽度最⼤. 只要有 “平顶”(plateaus), 就表示该函数可能存")])]),s._v(" "),a("p",[s._v("在性能问题。")]),s._v(" "),a("ul",[a("li",[s._v("颜⾊没有特殊含义, 因为⽕焰图表示的是 CPU 的繁忙程度, 所以⼀般选择暖⾊调.")])]),s._v(" "),a("h2",{attrs:{id:"源码test-c"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#源码test-c"}},[s._v("#")]),s._v(" 源码test.c")]),s._v(" "),a("div",{staticClass:"language-c line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-c"}},[a("code",[a("span",{pre:!0,attrs:{class:"token macro property"}},[a("span",{pre:!0,attrs:{class:"token directive-hash"}},[s._v("#")]),a("span",{pre:!0,attrs:{class:"token directive keyword"}},[s._v("include")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("")])]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_d")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 5")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("5")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("--")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//5")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_a")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 10+5= 15")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("--")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//10 ")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_d")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//5 ")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_b")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("20")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("--")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 20")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_c")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("35")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("--")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 35")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("main")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("void")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"main into\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("while")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 100")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("int")]),s._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("30")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("*")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" i"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("--")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 30 ")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_a")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//10+5 =15")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_b")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 20")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("func_c")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 35")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("printf")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"main end\\n"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("return")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br")])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/17.79a30f21.js b/assets/js/17.79a30f21.js new file mode 100644 index 0000000..36a9e53 --- /dev/null +++ b/assets/js/17.79a30f21.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{602:function(e,r,t){"use strict";t.r(r);var n=t(15),o=Object(n.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"学习网站"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#学习网站"}},[e._v("#")]),e._v(" 学习网站")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://xiaolincoding.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("小林coding的图解系统"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://programmercarl.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("代码随想录"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.draw.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("好用的在线思维导图"),t("OutboundLink")],1)]),e._v(" "),t("h2",{attrs:{id:"博客地址"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#博客地址"}},[e._v("#")]),e._v(" 博客地址")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/g_hongjin/article/details/51649246",target:"_blank",rel:"noopener noreferrer"}},[e._v("高并发系统之限流特技"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/wjf1991wjf/article/details/49100893",target:"_blank",rel:"noopener noreferrer"}},[e._v("动态链接库中函数的地址确定---PLT和GOT"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/yangkuanqaz85988/article/details/52403726",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.biaodianfu.com/redis-vs-memcached.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Redis和Memcached的区别"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.nowcoder.com/discuss/26226",target:"_blank",rel:"noopener noreferrer"}},[e._v("epoll内核源码详解+自己总结的流程"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/jcjc918/article/details/50434462",target:"_blank",rel:"noopener noreferrer"}},[e._v("后台开发面试问题整理"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/jansonzhe/article/details/48576025",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux内核:poll机制"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/caoyan_12727/article/details/52346729",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux任务调度机制"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/jansonzhe/article/details/48576025",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux内核:poll机制"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/hzmark/p/raft.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("解读Raft(一 算法基础) - 杭州.Mark - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/alantu2018/p/8461749.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux文件系统详解 - AlanTu - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/initphp/article/details/50833036",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux c 开发 - 内存管理器ptmalloc - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/llzk_/article/details/53813266",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux环境变量及其设置 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/mfryf/p/5390442.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("比较全面的gdb调试命令 - 知识天地 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/shallnet/article/details/47132861",target:"_blank",rel:"noopener noreferrer"}},[e._v("把握linux内核设计思想(六):内核时钟中断 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/skying555/p/5029620.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux进程调度原理 - alex.shu - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/yhf19881015/article/details/7570354",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux系统调用的实现机制分析 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.ruanyifeng.com/blog/2011/12/inode.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("理解inode - 阮一峰的网络日志"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/wm_1991/article/details/52218718",target:"_blank",rel:"noopener noreferrer"}},[e._v("多阶hash表 - juary_的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/maokelong95/article/details/51989081",target:"_blank",rel:"noopener noreferrer"}},[e._v("理解 glibc malloc - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.chinaunix.net/uid-26111972-id-3420130.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Redis与Memcached的比较-zpf1218-ChinaUnix博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/eroswang/article/details/4130972",target:"_blank",rel:"noopener noreferrer"}},[e._v("glibc中malloc的详细解释 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/Survivalist/p/8119891.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Redis的那些最常见面试问题 - 回首笑人间 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/caishenfans/article/details/44779797",target:"_blank",rel:"noopener noreferrer"}},[e._v("浅析基于glibc的malloc - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/wangzahngjun/p/4977425.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("slab机制 - wangLinuxer - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.163.com/dengminwen@126/blog/static/870226720097189486788/",target:"_blank",rel:"noopener noreferrer"}},[e._v("有感于STL的内存管理"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/qq100440110/article/details/50908992",target:"_blank",rel:"noopener noreferrer"}},[e._v("DNS使用的是TCP协议还是UDP协议 - qq100440110的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/zhongbeida_xue/article/details/51280292",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux的任务调度机制 - Nicholas的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/qq_26768741/article/details/54375524",target:"_blank",rel:"noopener noreferrer"}},[e._v("进程—内存描述符(mm_struct) - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/chenqf/p/6386163.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("彻底弄懂HTTP缓存机制及原理 - 木上有水 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://blog.csdn.net/syzcch/article/details/8075830",target:"_blank",rel:"noopener noreferrer"}},[e._v("利用CAS操作(Compare & Set)实现无锁队列 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/LUO77/p/5816326.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("进程间通信的方式——信号、管道、消息队列、共享内存 - 0giant - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/woshinia/article/details/22877007",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP的数据流——滑动窗口,拥塞窗口,慢启动,Nagle算法,经受时延的确认等 - 千里之外 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/yangbodong/p/4964698.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议 - 杨博东的博客 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/fangyukuan/archive/2010/09/18/1829871.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("C/C++ 笔试、面试题目大汇总 - fangyukuan - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/chy19911123/article/details/48894579",target:"_blank",rel:"noopener noreferrer"}},[e._v("C/C++ 内存对齐原则及作用 - chy19911123的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/wmbg/p/6800354.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("mysql数据库面试总结 - bullets - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/ybwang/archive/2010/06/04/1751279.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("[学习笔记]数据库设计三大范式与BCNF,学习笔记 - ybwang1989 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/weinierzui/article/details/71054964",target:"_blank",rel:"noopener noreferrer"}},[e._v("常见面试题整理--数据库篇(每位开发者必备) - weinierzui的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://lib.csdn.net/mobile/article/linux/43599",target:"_blank",rel:"noopener noreferrer"}},[e._v("知识库 - 你身边的技术百科全书 - CSDN"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/bingshanyijiao_fkx/article/details/51821034",target:"_blank",rel:"noopener noreferrer"}},[e._v("进程上下文与线程上下文 - bingshanyijiao_fkx的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.jb51.net/article/102004.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux线程切换和进程切换的方法_Linux_脚本之家"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/al_xin/article/details/38590931",target:"_blank",rel:"noopener noreferrer"}},[e._v("深入理解计算机系统之虚拟存储器 - Al_xin的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.jianshu.com/p/ff26312e67a9",target:"_blank",rel:"noopener noreferrer"}},[e._v("tcp的半连接与完全连接队列 - go4it - 简书"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/wust_zzwh/article/details/52100392",target:"_blank",rel:"noopener noreferrer"}},[e._v("数位dp总结 之 从入门到模板 - 努力 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/beaglebone/p/5727287.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("类中函数的重载、隐藏和覆盖 - beaglebone - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/dwj411024/p/5978821.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("排序算法____基数排序 - Dingwj_blog - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.nowcoder.com/discuss/57978",target:"_blank",rel:"noopener noreferrer"}},[e._v("面试题干货在此_讨论区_牛客网"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/lemon_tree12138/article/details/51695211",target:"_blank",rel:"noopener noreferrer"}},[e._v("排序算法系列:基数排序 - 大鱼 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/LBSer/p/3322630.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("位图索引:原理(BitMap index) - zhanlijun - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/joeblackzqq/archive/2011/04/11/2013010.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("fopen与open的区别 - 清清飞扬 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.jianshu.com/p/a7633d7687c2",target:"_blank",rel:"noopener noreferrer"}},[e._v("《深入理解计算机系统》-虚拟存储器 - gatsby_dhn - 简书"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zengyiwen/p/5755170.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux内核解析:进程间通信:管道 - 笨拙的菜鸟 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/cmm0401/article/details/77950122",target:"_blank",rel:"noopener noreferrer"}},[e._v("参考别人的面试总结:linux C/C++服务器后台开发面试题总结 - 大孟的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/nancymake/p/6516933.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux C/C++服务器后台开发面试题总结 - Nancy26 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/w1300048671/article/details/72833835",target:"_blank",rel:"noopener noreferrer"}},[e._v("ELF 文件中的section 和 segment - wo_der的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/linyt/article/details/51635768",target:"_blank",rel:"noopener noreferrer"}},[e._v("聊聊Linux动态链接中的PLT和GOT(1)——何谓PLT与GOT - 海枫的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://jzhihui.iteye.com/blog/1447570",target:"_blank",rel:"noopener noreferrer"}},[e._v("ELF文件的加载和动态链接过程 - - ITeye博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/gatieme/article/details/51628257",target:"_blank",rel:"noopener noreferrer"}},[e._v("ELF文件的加载过程(load_elf_binary函数详解)--Linux进程的管理与调度(十三) - AderStep - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux awk命令详解 - ggjucheng - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/cumirror/article/details/5071234",target:"_blank",rel:"noopener noreferrer"}},[e._v("IP分片和TCP分片的区别 - cumirror的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/shenwansangz/article/details/39184789",target:"_blank",rel:"noopener noreferrer"}},[e._v("fork()----父子进程共享 - 程序狗的成长之路 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/liangkaiming/article/details/6267357",target:"_blank",rel:"noopener noreferrer"}},[e._v("Makefile中的wildcard用法 - liangkaiming的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/chgaowei/article/details/6427731",target:"_blank",rel:"noopener noreferrer"}},[e._v("深入理解C++的动态绑定和静态绑定 - 常高伟的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.jobbole.com/83461/",target:"_blank",rel:"noopener noreferrer"}},[e._v("C++模板元编程(C++ template metaprogramming) - 文章 - 伯乐在线"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/shanghairuoxiao/article/details/72876248",target:"_blank",rel:"noopener noreferrer"}},[e._v("C++后台开发校招面试常见问题 - oscarwin - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/hzhzh007/article/details/6532988",target:"_blank",rel:"noopener noreferrer"}},[e._v("互斥锁的实现(转) - hzhzh007的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/wdscq1234/article/details/52463952",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP-IP详解:糊涂窗口综合症(Silly Window syndrome) - 深邃 精致 内涵 坚持 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://blog.csdn.net/qq_29503203/article/details/54618275",target:"_blank",rel:"noopener noreferrer"}},[e._v("浅析Linux下的task_struct结构体 - qq_29503203的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/crystal_avast/article/details/7678704",target:"_blank",rel:"noopener noreferrer"}},[e._v("C++虚继承的概念 - crystal_avast的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/dqjyong/article/details/8029527",target:"_blank",rel:"noopener noreferrer"}},[e._v("c++ 虚继承与继承的差异 - Kikim的地盘 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/itech/archive/2012/05/15/2502284.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux的inode的理解 - iTech - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/liuhongxiangm/article/details/8716232",target:"_blank",rel:"noopener noreferrer"}},[e._v("IPC通信:Posix消息队列 - liuhongxiangm的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/jiqingwu/p/linux_semaphore_example.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux线程的信号量同步 - JollyWing - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/ljianhui/article/details/10253345",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux进程间通信——使用共享内存 - ljianhui的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/u014403008/article/details/54174109",target:"_blank",rel:"noopener noreferrer"}},[e._v("gdb调试coredump(使用篇) - 叶落无痕,枫过有情…… - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/benkaoya/article/details/17262053",target:"_blank",rel:"noopener noreferrer"}},[e._v("信号中断 与 慢系统调用 - 许振坪的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/funeral/archive/2013/03/06/2945485.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("浅析CPU中断技术 - Funeral - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux信号(signal) 机制分析 - h13 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/q576709166/article/details/8649911",target:"_blank",rel:"noopener noreferrer"}},[e._v("EPOLLIN , EPOLLOUT , EPOLLPRI, EPOLLERR 和 EPOLLHUP事件 - yingying.liu的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/cxjchen/p/3143633.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("三种工厂模式的分析以及C++实现 - 曾经的你| - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/hackbuteer1/article/details/7740956",target:"_blank",rel:"noopener noreferrer"}},[e._v("STL源码剖析---红黑树原理详解上 - Hackbuteer1的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/sduliulun/article/details/7732906",target:"_blank",rel:"noopener noreferrer"}},[e._v("valgrind 的使用简介 - sduliulun的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.jb51.net/article/123056.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("_unix linux_脚本之家"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/starlitnext/archive/2013/03/07/2948929.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("GDT(Global Descriptor Table)全局描述符表 - starlitnext - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/hnzziafyz/article/details/52200265",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux程序加载过程 - 赢在拼搏中 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zlcxbb/p/5841417.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux 用户空间与内核空间——高端内存详解 - 立超的专栏 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/freeelinux/article/details/53782986",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux虚拟地址空间布局以及进程栈和线程栈总结 - wilcohuang's blog - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/houjun/p/4889597.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("堆排算法的分析与总结 - HOU_JUN - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/zhangliangzi/article/details/51336564",target:"_blank",rel:"noopener noreferrer"}},[e._v("HTTP必知必会——常见面试题总结 - Leeon的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/tom555cat/article/details/22888143",target:"_blank",rel:"noopener noreferrer"}},[e._v("pthread_once单例模式 - tom555cat - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/jsh13417/article/details/10934239",target:"_blank",rel:"noopener noreferrer"}},[e._v("pthread_once()使用(某个时间在整个程序中仅执行一次,不确定是那个线程) - 轻飘飞扬 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/thingk/p/4553243.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("23种设计模式对比与总结 - 码农恋码 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/sinat_34093604/article/details/53082000",target:"_blank",rel:"noopener noreferrer"}},[e._v("ORM框架使用优缺点 - public - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zhanghairong/p/3757656.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("高性能服务开发之定时器 - 行健 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zxj015/p/6530766.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Https协议详解 - CoderZhuang - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("图解SSL/TLS协议 - 阮一峰的网络日志"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zery/p/5164795.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("HTTPS 原理解析 - Zery - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/end/archive/2011/05/25/2057129.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux的用户和用户组管理 - 风生水起 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/lshs/p/6038535.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP系列13—重传—3、协议中RTO计算和RTO定时器维护 - lshs - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/xmphoenix/archive/2011/10/23/2221879.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("可执行文件(ELF)格式的理解 - 深海的小鱼儿 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/yasi_xi/article/details/18551745",target:"_blank",rel:"noopener noreferrer"}},[e._v("GCC/G++编译参数含义 - yasi_xi的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/leopard_ray/article/details/1763796",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux内核中cache的实现 - leopard_ray的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/apprentice89/p/3234677.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("epoll源码实现分析[整理] - Apprentice89 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/goodluckwhh/article/details/10026311",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux内核内存管理学习之三(slab分配器) - 浩海拾贝 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/davidsguo008/article/details/73556811",target:"_blank",rel:"noopener noreferrer"}},[e._v("深度理解select、poll和epoll - 傻眼哥的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/c-cloud/p/3224788.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("【经典算法】——KMP,深入讲解next数组的求解 - c_cloud - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/droidphone/article/details/7445825",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux中断(interrupt)子系统之一:中断系统基本原理 - DroidPhone的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/lyy-5518/p/5460994.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("HTTP Session、Cookie机制详解 - 奔跑的001 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zhaoYuQing-java2015/p/4621384.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("HttpSession详解 - 别再顺其自然 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/cswuyg/p/3653263.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("HTTP的长连接和短连接 - 烛秋 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://m.baidu.com/from=2001a/s?iscookie=1&word=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%9E%84%E5%BB%BA&ts=6510139&t_kt=78&ie=utf-8&fm_kl=17709454cf&rsv_iqid=0503722478&rsv_t=84f8eru9GFuEsiQMa105nzgqWDbdrP3mCZXXZxmf92P66MWQOfEfcNQ18%252B0&sa=ib&rsv_pq=0503722478&rsv_sug4=5170&inputT=2385&ss=100&setTaijiCookie=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("自动化构建 - 百度"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/zengyiwen/p/5755191.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux内核之进程的基本概念(进程,进程组,会话关系) - 笨拙的菜鸟 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/forstudy/archive/2012/04/03/2427683.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux--进程组、会话、守护进程 - Alex_Monkey - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/chuxiuhong/p/6103928.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("银行家算法学习笔记 - 唯心不易 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/YangloveFeng/article/details/7872251",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux session 浅谈 - younghongjian的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/JohnABC/p/4079669.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux-进程、进程组、作业、会话、控制终端详解 - John_ABC - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/qq_16912651/article/details/53509063",target:"_blank",rel:"noopener noreferrer"}},[e._v("关系型数据库到文档型数据库的跨越 - 海天一色是黑色的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/mickole/p/3188321.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux系统编程之进程(八):守护进程详解及创建,daemon()使用 - mickole - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("数据库设计三大范式 - Ruthless - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/remember-forget/p/6140112.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("常见面试题整理--数据库篇 - 铭记遗忘 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/shuaihj/article/details/14163713",target:"_blank",rel:"noopener noreferrer"}},[e._v("谈谈数据库的ACID - 敦格 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/cws1214/article/details/52430554",target:"_blank",rel:"noopener noreferrer"}},[e._v("关于TCP乱序和重传的问题 - cws1214的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.ruanyifeng.com/blog/2016/06/dns.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("DNS 原理入门 - 阮一峰的网络日志"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/metalseed/article/details/8039326",target:"_blank",rel:"noopener noreferrer"}},[e._v("数据结构专题——线段树 - MetalSeed - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/TenosDoIt/p/3453089.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("一步一步理解线段树 - tenos - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/huangye-dream/archive/2013/07/06/3174725.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("mysql 数据表读锁机制详解 - joy696163 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/weixliu/p/3900764.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("单例模式全面学习(C++版) - weixliu - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/cxjchen/p/3148582.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("单例模式及C++实现代码 - 曾经的你| - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/cywosp/article/details/23397179",target:"_blank",rel:"noopener noreferrer"}},[e._v("每天进步一点点——五分钟理解一致性哈希算法(consistent hashing) - Cynric 的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.chinaunix.net/uid-20788636-id-2626119.html?/11207.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP 协议中MSS的理解-frankzfz-ChinaUnix博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/newwy/p/3254029.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制 - newwy - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/losbyday/p/5847041.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免 - losbyday - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/Scythe666/article/details/47132447",target:"_blank",rel:"noopener noreferrer"}},[e._v("关于C++中公有继承、私有继承、保护继承的讨论 - This is bill的专属博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/zeb_perfect/article/details/52574915",target:"_blank",rel:"noopener noreferrer"}},[e._v("解决Hash碰撞冲突方法总结 - zeb_perfect的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/anonymalias/article/details/9938865",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux进程通信之POSIX共享内存 - anonymalias的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/xiaohuima_dong/article/details/45096739",target:"_blank",rel:"noopener noreferrer"}},[e._v("IPC对象持续性 - xiaohuima_dong的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.itpub.net/7584541/viewspace-851939",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux环境进程间通信(三):消息队列-hnsyspc-ITPUB博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/anonymalias/article/details/9219945",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux进程同步之POSIX信号量 - anonymalias的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/memewry/archive/2012/08/22/2651696.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("进程/线程同步的方式和机制,进程间通信 - Icnblog_Wan - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/dyllove98/archive/2013/06/28/3161371.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux进程同步之记录锁(fcntl) - jlins - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/cherishui/p/4246133.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux 伙伴算法简介 - 浩天之家 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.cnblogs.com/Anker/p/3271773.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("孤儿进程与僵尸进程[总结] - Anker's Blog - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/xzzzh/p/6596982.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux虚拟地址空间布局以及进程栈和线程栈总结 - Xzzzh - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://watter1985.iteye.com/blog/1614039",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux 内核poll/select/epoll实现剖析 - 在思考的路上 - ITeye博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/clover-toeic/p/3754433.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux虚拟地址空间布局 - clover_toeic - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/hguisu/article/details/8680808",target:"_blank",rel:"noopener noreferrer"}},[e._v("HTTP详解(1)-工作原理 - guisu,程序人生。 逆水行舟,不进则退。 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/zl-graduate/articles/6724446.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("epoll简介及触发模式(accept、read、send) - 留下的只是回忆 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/hanyan225/archive/2011/07/17/2108609.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux内核分析笔记----中断和中断处理程序 - ☆&寒 烟☆ - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/big_bit/article/details/51804391",target:"_blank",rel:"noopener noreferrer"}},[e._v("标准IO与文件IO 的区别 - big_bit的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/zhangskd/article/details/21992933",target:"_blank",rel:"noopener noreferrer"}},[e._v("硬中断和软中断 - zhangskd的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/wenhui_/article/details/6889013",target:"_blank",rel:"noopener noreferrer"}},[e._v("可重入和不可重入 - wenhui_的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/zbtrs/p/6106783.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("浅谈数位DP - zbtrs - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("C++ Queues(队列)、Priority Queues(优先队列) - 面对现实,超越自己 - C++博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://flychao88.iteye.com/blog/1977653",target:"_blank",rel:"noopener noreferrer"}},[e._v("缓存淘汰算法--LRU算法 - 小程故事多 - ITeye博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.chinaunix.net/uid-127037-id-2919545.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux内核中内存cache的实现-yfydz-ChinaUnix博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/petershina/article/details/7946615",target:"_blank",rel:"noopener noreferrer"}},[e._v("socket编程中write、read和send、recv之间的区别 - petershina的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/weiyuefei/article/details/52242890",target:"_blank",rel:"noopener noreferrer"}},[e._v("彻底学会使用epoll(六)——关于ET的若干问题总结 - feeman的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/mickole/p/3188321.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux系统编程之进程(八):守护进程详解及创建,daemon()使用 - mickole - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://segmentfault.com/a/1190000003063859",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux IO模式及 select、poll、epoll详解 - 人云思云 - SegmentFault"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/Anker/p/3265058.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("select、poll、epoll之间的区别总结[整理] - Anker's Blog - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/hsd-/p/6139376.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("树状数组彻底入门 - 半根毛线 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/Kelvin_Yan/article/details/42673963",target:"_blank",rel:"noopener noreferrer"}},[e._v("C++的new、delete及其内存管理 - Kelvin_Yan的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/Commence/p/5785912.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("malloc 函数详解 - Commence - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.jianshu.com/p/3985b1f9d9b4",target:"_blank",rel:"noopener noreferrer"}},[e._v("浅谈数据库查询优化的几种思路 - 六尺帐篷 - 简书"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.linuxidc.com/Linux/2014-03/98013.htm",target:"_blank",rel:"noopener noreferrer"}},[e._v("硬中断与软中断的区别_Linux编程_Linux公社-Linux系统门户网站"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/33debug/p/6993397.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("信号的基本概念、信号的产生以及阻塞信号 - 滴巴戈 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("Linux信号(signal) 机制分析 - h13 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/yusiguyuan/article/details/11908891",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux中断--LINUX中断机制与信号 - 鱼思故渊的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/echoisland/article/details/6403763",target:"_blank",rel:"noopener noreferrer"}},[e._v("进程线程及堆栈关系的总结 - echoisland的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/jelly_9/article/details/53239718",target:"_blank",rel:"noopener noreferrer"}},[e._v("栈帧之深入理解c函数调用过程 - jelly_9的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://transcoder.baiducontent.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%403%2Csz%401320_2003%2Cta%40iphone_1_10.3_1_11.6/baiduid=F8EB1922487B57E4B9B568A60C98DEC3/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=13486286999679729314&order=4&fm=alop&h5ad=1&srd=1&dict=32&tj=www_normal_4_0_10_title&url_mf_score=4&vit=osres&m=8&cltj=cloud_title&asres=1&nt=wnor&title=%E7%BB%8F%E5%85%B8%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84B%E6%A0%91%E4%B8%8EB%2B%E6%A0%91-vincently-%E5%8D%9A%E5%AE%A2%E5%9B%AD&w_qd=IlPT2AEptyoA_yi8mgBQ&sec=23916&di=0b59451c68b1bb67&bdenc=1&tch=124.115.52.1089.3.133&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAVDb6M8qMF5nkgTCccQoDlnCe0WAj8xJZhOgtfq&eqid=bb28ea92a2e100001000000559b7d367&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1505219442195%2C%22sig%22%3A%2211132%22%2C%22xpath%22%3A%22div-a-h3%22%7D",target:"_blank",rel:"noopener noreferrer"}},[e._v("【经典数据结构】B树与B+树 - vincently - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://m.baidu.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%401%2Csz%401320_2003%2Cta%40iphone_1_10.3_1_11.6/baiduid=F8EB1922487B57E4B9B568A60C98DEC3/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=11507469517477021613&order=2&fm=alop&tj=www_normal_2_0_10_title&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&nt=wnor&title=Linux%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E5%92%8C%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98%E7%9A%84%E7%90%86%E8%A7%A3_Linux%E6%95%99%E7%A8%8B_Linux%E5%85%AC%E7%A4%BE...&dict=20&w_qd=IlPT2AEptyoA_yitJU7sE7CvJkxUooQnwDAYaBXV9BM7N4Q6YExaxnDfnwe&sec=23771&di=1360f35ab201f829&bdenc=1&tch=124.133.28.761.2.4530456&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_yJR0CumpEm9xP4kHREsRFv7Lmq3ZpPPdj0PtAIFwmGdWWUn7hlDr0IwdzW&eqid=9fb2be8e94da88001000000559afe1b3&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1504698815807%2C%22sig%22%3A%222215%22%2C%22xpath%22%3A%22div-a-h3%22%7D&sfOpen=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("linux 物理内存和虚拟内存 - 百度"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/biyeymyhjob/archive/2012/07/20/2601204.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("C/C++函数调用过程分析 - as_ - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/whz_zb/article/details/7425152",target:"_blank",rel:"noopener noreferrer"}},[e._v("胜者树与败者树 - whz_zb的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/u012398613/article/details/51787548",target:"_blank",rel:"noopener noreferrer"}},[e._v("Epoll详解及源码分析 - 我有我的天空 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://m.baidu.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%403%2Csz%401320_2003%2Cta%40iphone_1_11.0_1_11.6/baiduid=F8EB1922487B57E4B9B568A60C98DEC3/w=10_10_/t=iphone/l=3/tc?ref=www_iphone&lid=11960810750480137704&order=7&fm=alop&tj=www_normal_7_10_10_title&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&nt=wnor&title=IP%E8%AF%A6%E8%A7%A3%E4%B9%8B%E7%8E%AF%E5%9B%9E%E6%8E%A5%E5%8F%A3-%E5%A4%A9%E4%B8%8B%E6%97%A0%E8%B4%BC-51CTO%E6%8A%80%E6%9C%AF%E5%8D%9A%E5%AE%A2&dict=20&w_qd=IlPT2AEptyoA_ykywg5csBqxE6NSn9G&sec=24112&di=075ab0d1b45165e2&bdenc=1&tch=124.115.331.1365.1.8&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IIQ3OLzlZ0DCbo93-hvvcXgErYSP50niNHoCb9jDNthcJxmGdWWAk7Bp_rbdmpK&eqid=a5fd5601a80ac0001000000359c2913c&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1505923439059%2C%22sig%22%3A%2250506%22%2C%22xpath%22%3A%22div-a-h3%22%7D&sfOpen=1",target:"_blank",rel:"noopener noreferrer"}},[e._v("环回地址 - 百度"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/dm_vincent/article/details/7714519",target:"_blank",rel:"noopener noreferrer"}},[e._v("拓扑排序的原理及其实现 - dm_vincent的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/ggggiqnypgjg/article/details/6645824",target:"_blank",rel:"noopener noreferrer"}},[e._v("Manacher算法--O(n)回文子串算法 - xuanflyer - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://transcoder.baiducontent.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%403%2Csz%401320_2003%2Cta%40iphone_1_10.3_1_11.6/baiduid=F8EB1922487B57E4B9B568A60C98DEC3/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=11323507255059474430&order=5&fm=alhm&h5ad=1&srd=1&dict=32&tj=h5_mobile_5_0_10_title&w_qd=IlPT2AEptyoA_yi8mgBQ&sec=23976&di=dc52c591f2efaf05&bdenc=1&tch=124.417.302.1209.1.403&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRASDfpKHaMJICb9n00sqcIxn7c_G1e6so4g43&eqid=9d252dda9d60e8001000000559bb2586&wd=&clk_info=%7B%22srcid%22%3A%221599%22%2C%22tplname%22%3A%22h5_mobile%22%2C%22t%22%3A1505437070391%2C%22sig%22%3A%227417%22%2C%22xpath%22%3A%22div-a-h3%22%7D",target:"_blank",rel:"noopener noreferrer"}},[e._v("【转】二叉树、B树、B-树、B+树、B*树 - zhzhang - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/u013575812/article/details/50989966",target:"_blank",rel:"noopener noreferrer"}},[e._v("设计模式 之 单例模式 (C++ 懒汉经典实现 & DCL实现 & 饿汉经典实现) - 柠檬不加糖的博客 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/hackbuteer1/article/details/7460019",target:"_blank",rel:"noopener noreferrer"}},[e._v("C++中的单例模式 - Hackbuteer1的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/lg1259156776/article/details/52732879",target:"_blank",rel:"noopener noreferrer"}},[e._v("【C/C++】对于可重入、线程安全、异步信号安全几个概念的理解 - ZhangPY的专栏 - CSDN博客"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/czzju/archive/2013/02/14/2911190.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("B树、B-树、B+树、B*树详解(转) - 憨熊之家 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/skywang12345/p/3245399.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("红黑树(一)之 原理和算法详细介绍 - 如果天空不死 - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://surlymo.iteye.com/blog/2082684",target:"_blank",rel:"noopener noreferrer"}},[e._v("分布式锁的三种实现方式 - - ITeye技术网站"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://www.cnblogs.com/zhangbaochong/p/5164994.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("平衡二叉树详解 - zhangbaochong - 博客园"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"http://m.blog.csdn.net/article/details?id=52717078",target:"_blank",rel:"noopener noreferrer"}},[e._v("n个数中任意两个异或最大值"),t("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/18.3b2b186e.js b/assets/js/18.3b2b186e.js new file mode 100644 index 0000000..b690f0a --- /dev/null +++ b/assets/js/18.3b2b186e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{601:function(v,_,t){"use strict";t.r(_);var p=t(15),a=Object(p.a)({},(function(){var v=this,_=v.$createElement,t=v._self._c||_;return t("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[t("h1",{attrs:{id:"认识阶段"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#认识阶段"}},[v._v("#")]),v._v(" 认识阶段")]),v._v(" "),t("h2",{attrs:{id:"前言"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#前言"}},[v._v("#")]),v._v(" 前言")]),v._v(" "),t("p",[v._v("​\t方法:同学同事 朋友介绍 搭讪 社交软件 相亲")]),v._v(" "),t("p",[v._v("​\t目的:多认识女生 明确合适的类型 防止死胡同")]),v._v(" "),t("p",[v._v("​\t注意:心态崩溃 很容易喜欢一个女生并上心 容易患得患失 这是所有不会追女生的共同点")]),v._v(" "),t("p",[v._v("​\t认识人主要三点:资源 展示面 方法 最重要的是资源")]),v._v(" "),t("p",[v._v("​\t主流认识途径: 社交软件 搭讪")]),v._v(" "),t("p",[v._v("​ * 社交软件是当下认识女生最快的途径")]),v._v(" "),t("p",[v._v("​\t* 认识女生不代表不专一 而是要明确自己喜欢的类型")]),v._v(" "),t("h2",{attrs:{id:"社交软件-探探-积木-soul等"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#社交软件-探探-积木-soul等"}},[v._v("#")]),v._v(" 社交软件(探探 积木 soul等)")]),v._v(" "),t("p",[v._v("社交软件的关键:第一张照片(人帅 生活帅) 增加匹配率")]),v._v(" "),t("p",[v._v("如何用社交软件 要注意的细节")]),v._v(" "),t("p",[v._v("​\t第一张照片 做好 修一下 背景好 看清脸 后续兴趣爱好宠物 生活场景")]),v._v(" "),t("p",[v._v("​\t不要一直滑")]),v._v(" "),t("p",[v._v("​\t目的是要到微信 (可以说 我这个软件不常用 加个微信)")]),v._v(" "),t("p",[v._v("​\t不要聊太多")]),v._v(" "),t("p",[v._v("​\t不给就是没看上 下一个")]),v._v(" "),t("p",[v._v("​\t女生标注一上来就要微信的 都是老司机")]),v._v(" "),t("p",[v._v("​\t社交软件聊天不用太在意 要在意照片")]),v._v(" "),t("p",[v._v("​\t会员可以买")]),v._v(" "),t("p",[v._v("​\t不要发太多朋友圈")]),v._v(" "),t("p",[v._v("​\t资料认真填写")]),v._v(" "),t("p",[v._v("​\t照片可以约拍")]),v._v(" "),t("p",[v._v("​\t可以看其他竞争对手的照片")]),v._v(" "),t("h2",{attrs:{id:"如何搭讪"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#如何搭讪"}},[v._v("#")]),v._v(" 如何搭讪")]),v._v(" "),t("p",[v._v("也是一种提升和别人交流交往方式")]),v._v(" "),t("p",[v._v("主要是 状态 肢体语言 穿搭")]),v._v(" "),t("p",[v._v("搭讪的话术:")]),v._v(" "),t("p",[v._v("​\t“我在这附近逛街看到你了 我想和你认识一下 留个微信吧”")]),v._v(" "),t("p",[v._v("​\t\t直接给")]),v._v(" "),t("p",[v._v("​\t\t犹豫害羞可以坚持一下:“我没有什么其他意思 就是想认识一下 你扫我一下”")]),v._v(" "),t("p",[v._v("​\t\t不想给:不强求")]),v._v(" "),t("p",[v._v("容易犯的错误:")]),v._v(" "),t("p",[v._v("​\t搭讪前不要被看到 从身后绕")]),v._v(" "),t("p",[v._v("​\t拍一下女生肩膀 同时说你好 要适中")]),v._v(" "),t("p",[v._v("​\t保持一米")]),v._v(" "),t("p",[v._v("​\t等对方看到你的眼睛后再开始说话")]),v._v(" "),t("p",[v._v("​\t说话要慢慢说")]),v._v(" "),t("p",[v._v("​\t不要有小动作")]),v._v(" "),t("p",[v._v("​\t真诚 不要油嘴滑舌")]),v._v(" "),t("p",[v._v("​\t有闺蜜的也要打招呼")]),v._v(" "),t("p",[v._v("三步:")]),v._v(" "),t("p",[v._v("​\t克服紧张 不在意女生是谁 只要不停的搭讪 不在意结果")]),v._v(" "),t("p",[v._v("​\t练习自己的说话和肢体语言")]),v._v(" "),t("p",[v._v("​\t尽量多的说话 能说多久说多久")])])}),[],!1,null,null,null);_.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/19.876eee7d.js b/assets/js/19.876eee7d.js new file mode 100644 index 0000000..363048d --- /dev/null +++ b/assets/js/19.876eee7d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{599:function(t,v,_){"use strict";_.r(v);var p=_(15),a=Object(p.a)({},(function(){var t=this,v=t.$createElement,_=t._self._c||v;return _("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[_("h1",{attrs:{id:"熟悉阶段"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#熟悉阶段"}},[t._v("#")]),t._v(" 熟悉阶段")]),t._v(" "),_("h2",{attrs:{id:"前言"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#前言"}},[t._v("#")]),t._v(" 前言")]),t._v(" "),_("p",[t._v("​\t目的:让别人感觉你踏实 知道你是干什么的 大概是一个什么样的人")]),t._v(" "),_("p",[t._v("​\t注意:不熟悉属于无效聊天 可以适当幽默 不要想升高提升关系")]),t._v(" "),_("p",[t._v("​\t方法:真诚和踏实")]),t._v(" "),_("p",[t._v("要有目的的聊天 有目的的熟悉可以在十几分钟 不能无效聊天 女生放下手机 还能想起是什么人 建立基本的安全感 是个正常人 对我们有了关注 会看朋友圈")]),t._v(" "),_("p",[t._v("熟悉的三要素:")]),t._v(" "),_("p",[t._v("​\t让女生感觉到你说一个什么人(IT 宅男 文艺 工科男 工科男 创业者)印象 把感觉给到女生 大概是什么人")]),t._v(" "),_("p",[t._v("(我们班有个同学 特别调皮 成绩也还不错 这学期和别人打了三次架 是老师办公室的常客)")]),t._v(" "),_("p",[t._v("​\t大概了解她是什么人 做什么工作 多大年纪 有什么学历 了解基本信息 深入聊天")]),t._v(" "),_("p",[t._v("​\t聊聊女生感兴趣的话题 好吃好玩 明星综艺八卦")]),t._v(" "),_("p",[t._v("安全感的基础")]),t._v(" "),_("p",[t._v("​\t让别人感觉你踏实 知道你是干什么的 大概是一个什么样的人")]),t._v(" "),_("h2",{attrs:{id:"第一次聊天的步骤-踏实-稳重"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#第一次聊天的步骤-踏实-稳重"}},[t._v("#")]),t._v(" 第一次聊天的步骤 踏实 稳重")]),t._v(" "),_("p",[t._v("​\t寒暄 吃了吗 衣服好看 (刚下飞机 累死了 躺床上 抽根烟 休息一下)")]),t._v(" "),_("p",[t._v("​\t\t拉好聊氛围 老朋友 熟悉的气氛 搞笑的表情包 幽默开场白 一两句就行")]),t._v(" "),_("p",[t._v("​\t\t\t你好 正经正经 幽默对幽默")]),t._v(" "),_("p",[t._v("​\t\t\t朋友圈找信息 生活故事 表示自己状态 阳台吹风")]),t._v(" "),_("p",[t._v("​")]),t._v(" "),_("p",[t._v("​\tdhv 高价值 有价值的地方 留下印象")]),t._v(" "),_("p",[t._v("​\t\t快速的自我介绍")]),t._v(" "),_("p",[t._v("​\t\t(我是有个心理咨询师 别人情感 的 曾经有一个学员 找我心理辅导 停不下来了怎么这么的)")]),t._v(" "),_("p",[t._v("​\t\t(我是有个程序员 出差半年的程序员)")]),t._v(" "),_("p",[t._v("​\t\t有趣的事情")]),t._v(" "),_("p",[t._v("​\t\tdhv 不要说消极描述工作两点一线 说工程师 喜欢爱好 稍微包装")]),t._v(" "),_("p",[t._v("​\t信息互换")]),t._v(" "),_("p",[t._v("​\t\t不能问太多 最多三个")]),t._v(" "),_("p",[t._v("​\t\t问核心问题 先说自己 再问别人")]),t._v(" "),_("p",[t._v("​\t\t职业 年龄 学历 城市地域 了解大致是什么人")]),t._v(" "),_("p",[t._v("​\t\t说话要圆润一点 (你多大啊 我感觉 我比你大 ) 前面可以不问名字")]),t._v(" "),_("p",[t._v("​\t女生感兴趣的话题")]),t._v(" "),_("p",[t._v("​\t\t男生和女生基本没有共同话题的")]),t._v(" "),_("p",[t._v("​\t\t聊女生感兴趣的话题 朋友圈 星座八卦 吃的 玩的 宠物明星")]),t._v(" "),_("p",[t._v("​\t\t要有情绪的互动 找到感兴趣的点 或者共通的话题")]),t._v(" "),_("p",[t._v("​\t\t(看到小孩 可以夸可爱 问为什么乖 激发分享欲)")]),t._v(" "),_("p",[t._v("​\t\t聊热点信息")])])}),[],!1,null,null,null);v.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/20.9e432406.js b/assets/js/20.9e432406.js new file mode 100644 index 0000000..fb679bd --- /dev/null +++ b/assets/js/20.9e432406.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{600:function(v,_,t){"use strict";t.r(_);var p=t(15),a=Object(p.a)({},(function(){var v=this,_=v.$createElement,t=v._self._c||_;return t("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[t("h1",{attrs:{id:"吸引阶段"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#吸引阶段"}},[v._v("#")]),v._v(" 吸引阶段")]),v._v(" "),t("p",[v._v("​\t吸引:吸引是女生愿意和你接触的原神动力 能配得上对方")]),v._v(" "),t("p",[v._v("​\t\t外形 价值 情绪三个吸引")]),v._v(" "),t("p",[v._v("​\t目的:让对方知道你是个猎人 优秀有能力的人 (事业成功 社交圈广 朋友多 物质条件优秀 自身条件好 生活有品位情调)")]),v._v(" "),t("p",[v._v("​\t注意:无吸引无追求 靠吸引而不是靠追")]),v._v(" "),t("p",[v._v("​\t方法:吸引就是高价值展示 做两种感觉被撩与害羞")]),v._v(" "),t("h2",{attrs:{id:"猎人-有能力的男人-有高价值的男人"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#猎人-有能力的男人-有高价值的男人"}},[v._v("#")]),v._v(" 猎人 有能力的男人 有高价值的男人")]),v._v(" "),t("p",[v._v("​\t繁衍价值")]),v._v(" "),t("p",[v._v("​\t\t高帅 身体强壮健康 年轻女生更喜欢高帅 大一点的喜欢有能力的")]),v._v(" "),t("p",[v._v("​\t生存价值")]),v._v(" "),t("p",[v._v("​\t\t外在 车房钱")]),v._v(" "),t("p",[v._v("​\t\t内在 优秀男人的特质 拼搏 进取 乐观 不屈不挠 有智慧 有内涵 有知识")]),v._v(" "),t("p",[v._v("怎么做")]),v._v(" "),t("p",[v._v("​\t高价值展示 朋友圈 工作生活兴趣爱好 展现自己的价值")]),v._v(" "),t("p",[v._v("​\t见面的形象 语言")]),v._v(" "),t("p",[v._v("建立吸引后下一步")]),v._v(" "),t("p",[v._v("​\t确认建立吸引 服从性测试 要电话 要照片 打电话起床")]),v._v(" "),t("p",[v._v("无吸引无追求")]),v._v(" "),t("p",[v._v("​\t没有建立起吸引的时候 暴露需求感会减低女人的吸引")]),v._v(" "),t("p",[v._v("​\t不要追求的事")]),v._v(" "),t("h2",{attrs:{id:"吸引的两种感觉-什么是两种感觉-tf-暧昧聊天"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#吸引的两种感觉-什么是两种感觉-tf-暧昧聊天"}},[v._v("#")]),v._v(" 吸引的两种感觉 什么是两种感觉 TF 暧昧聊天")]),v._v(" "),t("p",[v._v("​\t被撩的感觉BL 害羞的感觉FS")]),v._v(" "),t("p",[v._v("​\t撩BL 有好感才做 反馈一般的一点点 反馈不好的不要撩")]),v._v(" "),t("p",[v._v("​\t害羞FS 只能对反馈好的女生做")]),v._v(" "),t("p",[v._v("​\t做到想象 情景 有代入感 (和我谈恋爱的感觉一定很幸福吧)")]),v._v(" "),t("h2",{attrs:{id:"吸引的形象-想象就是繁育价值"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#吸引的形象-想象就是繁育价值"}},[v._v("#")]),v._v(" 吸引的形象 想象就是繁育价值")]),v._v(" "),t("p",[v._v("​\t第一印象很重要 类似投简历时的学历 形象判断人")]),v._v(" "),t("p",[v._v("​\t形象判断一个人的价值")]),v._v(" "),t("p",[v._v("​\t发型 穿着 肢体语言")]),v._v(" "),t("p",[v._v("​\t大众点评大店 根据脸型做一个发型 拍个照片照样子剪")]),v._v(" "),t("p",[v._v("​\t\t定型喷雾 发蜡 发胶 约会准备")]),v._v(" "),t("p",[v._v("​\t\t护肤 洁面 水乳")]),v._v(" "),t("p",[v._v("​\t服装 小红书")]),v._v(" "),t("p",[v._v("​\t模仿偶像 胡歌 和自身身份相符的")]),v._v(" "),t("h2",{attrs:{id:"吸引的展示面"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#吸引的展示面"}},[v._v("#")]),v._v(" 吸引的展示面")]),v._v(" "),t("p",[v._v("​\t昵称 头像 前面 墙 朋友圈")]),v._v(" "),t("p",[v._v("​\t昵称 不要非主流")]),v._v(" "),t("p",[v._v("​\t头像不要 风景照 证件照 宠物 卡通 网图 画质差照片")]),v._v(" "),t("p",[v._v("​\t\t任务缩小 视觉中心不要人物而是环境 网红背景 不要全脸要神秘")]),v._v(" "),t("p",[v._v("​\t朋友圈封面 广告位")]),v._v(" "),t("p",[v._v("​\t\t不要 网图 大头自拍 不要旅游照 风景照 要展示价值 品质生活照")]),v._v(" "),t("p",[v._v("​\t签名 有内涵")]),v._v(" "),t("p",[v._v("​\t朋友圈 不要转发鸡汤 没有自己的生活 纯文字 优秀的朋友 环境")]),v._v(" "),t("p",[v._v("​\t\t不要工作广告分组转发 专业的东西")]),v._v(" "),t("p",[v._v("​\t\t美食 娱乐生活 上进 愿意投资自己的人 宠物和小朋友也是好的")]),v._v(" "),t("p",[v._v("​\t\t和很多别的女性朋友照片 努力工作")]),v._v(" "),t("p",[v._v("​\t\t朋友圈配文 要少")]),v._v(" "),t("p",[v._v("​\t\t音乐分享")]),v._v(" "),t("p",[v._v("​\t门面 社交软件第一印象")]),v._v(" "),t("p",[v._v("​\t展示面是自己的窗口 名片 不是日记本")]),v._v(" "),t("p",[v._v("​\t\t社交软件 展示出来的状态")]),v._v(" "),t("p",[v._v("​\t展示面差女生一开始就不想聊了")]),v._v(" "),t("p",[v._v("​\t展示面是吸引的关键")]),v._v(" "),t("p",[v._v("​\t\t看朋友圈的几秒抓住女生")]),v._v(" "),t("p",[v._v("​\t做好头像和背景墙")]),v._v(" "),t("p",[v._v("​\t\t头像 不要用明星宠物")]),v._v(" "),t("p",[v._v("​\t\t要用自己的真是照片 露出正脸 发型 表情 独照 半身照 背景简洁")]),v._v(" "),t("p",[v._v("​\t\t背景图 全身照 环境不错的地方")]),v._v(" "),t("p",[v._v("​\t多角度展示自己的高价值")]),v._v(" "),t("p",[v._v("​\t\t看到自己的价值 要有自己的生活 接触有意思的东西")]),v._v(" "),t("p",[v._v("​\t\t展示面照片 工作 兴趣 生活 一定要展现自己的正能量 对生活的热爱")]),v._v(" "),t("p",[v._v("​\t\t看小红书这么拍生活照")]),v._v(" "),t("p",[v._v("​\t\t精致的生活 高价值的圈子 不要过多散发多愁善感")]),v._v(" "),t("p",[v._v("​\t不要发负能量的东西")])])}),[],!1,null,null,null);_.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/21.b160f907.js b/assets/js/21.b160f907.js new file mode 100644 index 0000000..a58bf37 --- /dev/null +++ b/assets/js/21.b160f907.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{604:function(t,v,_){"use strict";_.r(v);var a=_(15),r=Object(a.a)({},(function(){var t=this,v=t.$createElement,_=t._self._c||v;return _("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[_("h1",{attrs:{id:"约会"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#约会"}},[t._v("#")]),t._v(" 约会")]),t._v(" "),_("p",[t._v("​\t关键的约会牵手S1 亲吻S2")]),t._v(" "),_("h2",{attrs:{id:"注意流程和场地选择"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#注意流程和场地选择"}},[t._v("#")]),t._v(" 注意流程和场地选择")]),t._v(" "),_("p",[t._v("​\t约会中的好感:场地40% 见面前的反馈30% 约会中的30% (失败的外部应数是很大的)")]),t._v(" "),_("h2",{attrs:{id:"阶段"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#阶段"}},[t._v("#")]),t._v(" 阶段")]),t._v(" "),_("p",[t._v("​\t第一次约会去互动性强的地方好玩的地方 场地逼格要高 环境好")]),t._v(" "),_("p",[t._v("​\tS1 好玩的地方文艺的环境好")]),t._v(" "),_("p",[t._v("​\tS2 文艺的环境好 半私密空间")]),t._v(" "),_("h2",{attrs:{id:"转场很重要-一定要转场-最好三次-充实"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#转场很重要-一定要转场-最好三次-充实"}},[t._v("#")]),t._v(" 转场很重要 一定要转场 最好三次 充实")]),t._v(" "),_("p",[t._v("​\t第一次 奶茶店 餐厅聊天半小时 吃饭")]),t._v(" "),_("p",[t._v("​\t第二次 娃娃机 电玩 旋转木马 互动的地方")]),t._v(" "),_("p",[t._v("​\t第三次 电影院 聊天")]),t._v(" "),_("h2",{attrs:{id:"约会需要提前了解"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#约会需要提前了解"}},[t._v("#")]),t._v(" 约会需要提前了解")]),t._v(" "),_("p",[t._v("​\t约会的场所 目的")]),t._v(" "),_("p",[t._v("​\t哪里的东西便宜好吃 环境好")]),t._v(" "),_("p",[t._v("​\t哪里适合牵手逛街")]),t._v(" "),_("p",[t._v("​\t哪家私人影院")]),t._v(" "),_("p",[t._v("​\t哪心情不好适合坐一坐的小河边")]),t._v(" "),_("p",[t._v("​\t哪家清吧价格不贵音乐好听 逼格还挺高")]),t._v(" "),_("p",[t._v("​\t哪里的娃娃机很新 娃娃好看 放机器的商场很高档")]),t._v(" "),_("p",[t._v("​\t哪里的艺术展 最近有什么")]),t._v(" "),_("p",[t._v("​\t哪里的阳光好的咖啡厅吗")]),t._v(" "),_("p",[t._v("​\t不要随便找 要花点心思 大众点评 小红书 实际看一下")]),t._v(" "),_("p",[t._v("​\t地道的小吃 便宜还好吃 没来过")]),t._v(" "),_("p",[t._v("​\t好玩的 娃娃机 碰碰车 划船 烧烤 风筝 郊游 农家乐 温泉 鬼屋 密室 桌游 电影 唱歌机 酒吧 ktv 水上乐园 游乐场 游泳池")]),t._v(" "),_("p",[t._v("​\t文艺的 陶艺学习 双人烘焙 手工 艺术展 绘画体验 情人坡 情人湾 宁静小河边 艺术社区 图书馆 私人影院 旋转木马 摩天轮 清吧 踩单车 羽毛球馆 散步 跳舞")]),t._v(" "),_("p",[t._v("​\t有逼格的 网红下午茶 咖啡厅 骑马 高尔夫 五星级酒店走廊 旅游")]),t._v(" "),_("p",[t._v("​\t小红书 下午茶 骑马 卡丁车")]),t._v(" "),_("h2",{attrs:{id:"约会可以的流程"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#约会可以的流程"}},[t._v("#")]),t._v(" 约会可以的流程")]),t._v(" "),_("p",[t._v("加上微信后聊天不要超过三天 年龄 兴趣 爱好 工作"),_("br"),t._v("\n第一次 咖啡馆 奶茶店 看外貌 谈吐气质 了解思维方式和表达能力 感觉不错再去吃饭\n第二次 去游乐场和密室 看应变能力 对未知项目的开拓\n第三次 去打羽毛球 或其他运动 看默契程度\n第四次 去博物馆 去一些文创类地方 看品味和审美\n第五次 看消费观 帮对方挑选衣服")])])}),[],!1,null,null,null);v.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/22.b98bdf43.js b/assets/js/22.b98bdf43.js new file mode 100644 index 0000000..150780e --- /dev/null +++ b/assets/js/22.b98bdf43.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{605:function(n,v,_){"use strict";_.r(v);var p=_(15),t=Object(p.a)({},(function(){var n=this,v=n.$createElement,_=n._self._c||v;return _("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[_("h2",{attrs:{id:"亚瑟·阿伦三十六问"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#亚瑟·阿伦三十六问"}},[n._v("#")]),n._v(" 亚瑟·阿伦三十六问")]),n._v(" "),_("p",[n._v("1、在这个世界上,如果你可以选择一个人跟你共进晚餐,你会选择谁?")]),n._v(" "),_("p",[n._v("2、你有想过出名吗?通过什么方式?")]),n._v(" "),_("p",[n._v("3、在打电话前,你一般会练习怎么去表达吗?为什么?")]),n._v(" "),_("p",[n._v("4、你觉得在你的心里,完美的一天是什么样子?")]),n._v(" "),_("p",[n._v("5、你上一次一个人唱歌是什么时候呢?对其他人唱歌呢?")]),n._v(" "),_("p",[n._v("6、假设你可以活到90岁,那么在30岁后,你更倾向于身体年轻还是思想年轻,来躲过余下的60年呢?")]),n._v(" "),_("p",[n._v("7、你对你以后怎样死去,有没有预感?")]),n._v(" "),_("p",[n._v("8、说一下我们的三个共同点。")]),n._v(" "),_("p",[n._v("9、你这辈子最感激的是谁,或者是什么事?")]),n._v(" "),_("p",[n._v("10、如果你能改变你过去的经历,你想改变那件事?")]),n._v(" "),_("p",[n._v("11、用四分钟,尽可能详细的讲讲你从小到大的经历。")]),n._v(" "),_("p",[n._v("12、如果你明天醒来会获得一种新的才能,你希望是什么。")]),n._v(" "),_("p",[n._v("13、如果水晶球能告诉你关于你自己、你的生活、未来或其他任何事情的真相,你希望知道什么?")]),n._v(" "),_("p",[n._v("14、有没有长时间梦寐以求的事情,为什么你没有去实现?")]),n._v(" "),_("p",[n._v("15、你觉得自己最成功的是什么?")]),n._v(" "),_("p",[n._v("16、你觉得有用最珍贵的地方是什么?")]),n._v(" "),_("p",[n._v("17、你最宝贵的记忆是什么?")]),n._v(" "),_("p",[n._v("18、你最可怕的记忆是什么?")]),n._v(" "),_("p",[n._v("19、假设一年后你会突然去世,那么你会改变现在的生活方式吗?为什么?")]),n._v(" "),_("p",[n._v("20、友谊对于你来说意味着什么?")]),n._v(" "),_("p",[n._v("21、爱情和喜欢,在你生活中大概是什么样的角色?")]),n._v(" "),_("p",[n._v("22、说出5个关于我的好的特质。我也说5个关于你的。")]),n._v(" "),_("p",[n._v("23、你家里人之间亲密吗?你是不是觉得你的童年比其他大多数人更幸福?")]),n._v(" "),_("p",[n._v("24、你觉得你和你密码的关系是怎么样?")]),n._v(" "),_("p",[n._v("25、各种做三个围绕“我们”的事实陈述。例如,“我们在深夜一起聊天”。。。")]),n._v(" "),_("p",[n._v("26、给你一句句子,你把它补全:”我希望能有人和我一起分享。。。“")]),n._v(" "),_("p",[n._v("27、如果你要和我成为球迷的朋友,对你来说,最需要知道关于我的事情是什么?")]),n._v(" "),_("p",[n._v("28、告诉我你喜欢我什么;这次要非常诚实哦。")]),n._v(" "),_("p",[n._v("29、和我分享一件生活种令你尴尬的事情,可以是最近的事情。")]),n._v(" "),_("p",[n._v("30、你上次在别人面前哭是什么事情?那独自流泪是什么时候呢?")]),n._v(" "),_("p",[n._v("31、告诉我,我有哪些地方已经放你开始喜欢上了。")]),n._v(" "),_("p",[n._v("32、对你来说,有没有一些事严肃道不能开玩笑?")]),n._v(" "),_("p",[n._v("33、假设你今晚就要死了,而你再也没有机会和其他人甲流,那你最后悔没有告诉别人什么事?为什么还没有告诉他们。")]),n._v(" "),_("p",[n._v("34、你的房子着火了,你的所有东西都在里面,在救出你的亲人和宠物后,你有时间进去最后一次冲进去安全的救出最后一件物品,那将会是什么?为什么?")]),n._v(" "),_("p",[n._v("35、在你所有家人中,谁的离去最令你痛苦,为什么?")]),n._v(" "),_("p",[n._v("36、说一个你自己私人遇到的困扰,你说完我也说我的,然后我们互相给对方想办法。")]),n._v(" "),_("h2",{attrs:{id:"话题互相了解对方"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#话题互相了解对方"}},[n._v("#")]),n._v(" 话题互相了解对方")]),n._v(" "),_("p",[n._v("吃过最好吃的东西是什么\n目前最想做的事\n最想和对方做的事\n两个人的共同爱好\n讨论自己的兴趣爱好\n谈谈对方性格中的缺点\n最喜欢对方的哪—点\n遇见对方前是什么状态\n聊一聊初见对方的印象\n做过最让对方感动的事\n做过最浪漫的事\n做过最蠢的事\n生气时怎么解决问题\n对方最不好的习惯\n最欣赏对方的一点\n经历的最开心的事\n普及自己的兴趣爱好\n分享喝多后做过的糗事\n分享自己的旅行经历\n分享自己内心的小秘密\n分享做过最尴尬的事\n分享每天发生的趣事\n吐槽工作的烦恼\n最讨厌吃的东西是什么\n最喜欢的歌手是谁\n印象最深刻的一件事\n在一起后的幸福瞬间\n聊聊儿时的梦想\n儿时的学习状况\n最喜欢的动画片\n最怕的东西是什么\n想要拥有什么样的超能力\n疲惫的时候怎么放松自己\n当你陷入困境时你会向谁请教\n因为什么事情跟父母吵过架\n人生目前最大的成就是什么\n最近一次哭是什么时候为什么\n小时候的梦相是什么\n喜欢独处吗\n如果中了500万,你会怎么规划\n如果你打算写本书,你会写什么内容\n单曲循环最久的歌是哪一首\n想唱给对方的歌\n分享彼此的奇葩朋友\n遇到最难忘的囧事\n小时候怕爸爸还是妈妈\n我做过哪件事情让你很生气你\n是如何察觉我在生气的\n最喜欢吃的一道菜\n最想去哪个地方\n我让你难堪过吗\n喜欢什么游戏/音乐/电影/花/水果")]),n._v(" "),_("p",[n._v("9.你对彼此忠诚的定义是什么?\n10.给爱情下个定义?\n11.浪漫的度假作为你生活方式的一部分,你有何感受?\n12.你会因为一个什么样的小细节而对—个女人动心?\n13.你认为钱最主要的功能是?\n14.在什么样的情况下,你会放弃原则?\n15.你曾犯下的最大的措误是什么?它是如何改变你人生的?")]),n._v(" "),_("h2",{attrs:{id:"暧昧阶段"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#暧昧阶段"}},[n._v("#")]),n._v(" 暧昧阶段")]),n._v(" "),_("p",[n._v("这个阶段往往有过务次约会,彼此都有想进步的起法,再通过相对私密话题了解对方对感情的态度,否是合适的人?\n9.你喜欢什么样的工作环境?\n10.你最欣赏什么样的人?\n11.是否对自己的工作满意?\n12.喜欢独处么?\n13.平常去哪儿玩?\n14.最想去哪个城市工作?\n15.当你对某人有偏见时,你是怎么想的?\n16.你最好的脆友是谁?为什么?\n17.你是如何选择现在这项事业的?")]),n._v(" "),_("h2",{attrs:{id:"恋爱阶段"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#恋爱阶段"}},[n._v("#")]),n._v(" 恋爱阶段")]),n._v(" "),_("p",[n._v("如果以上话题你都史经解锁成功,而说明你们的关系就基本可我确定下来,接下来就是好好读恋爱培养感情让关系\n更稳定\n1.告诉我,你是何时发觉爱上我的?\n2.如果我想在生日.上给你一个惊喜.你希望是什么?\n3.你想要的完美爱情是什么样的?\n4.的有想过你30岁之后的人生会是什么样子么?\n5.我会是你值得信任的人吗?\n6.如果金钱不再是目标.你最大的追求会是什么?")])])}),[],!1,null,null,null);v.default=t.exports}}]); \ No newline at end of file diff --git a/assets/js/23.c61a42c5.js b/assets/js/23.c61a42c5.js new file mode 100644 index 0000000..8a24082 --- /dev/null +++ b/assets/js/23.c61a42c5.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{603:function(v,_,p){"use strict";p.r(_);var e=p(15),t=Object(e.a)({},(function(){var v=this,_=v.$createElement,p=v._self._c||_;return p("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[p("p",[v._v("22020年09月18日星期五16:52:45 CST")]),v._v(" "),p("p",[v._v("1、做个简单的自我介绍")]),v._v(" "),p("p",[v._v("2.这个项目都是多少个人做的?")]),v._v(" "),p("p",[v._v("3.后端就你一个人做的吗?")]),v._v(" "),p("p",[v._v("4.项目做了多久?")]),v._v(" "),p("p",[v._v("5.说一说项目中困扰你时间比较长的问题?")]),v._v(" "),p("p",[v._v("6.项目中你试花在搭建环境的时间比较长是吗?(我说了很多关于服务器代码是如何实现的,原理是什么)")]),v._v(" "),p("p",[v._v("7.用了2个nginx具体是如何做高可用的")]),v._v(" "),p("p",[v._v("8.2个nginx都是回同时使用的吗?还是只是使用其中一个")]),v._v(" "),p("p",[v._v("9.用的2个ip给前端使用是吗?部署在不同的机器上面吗?")]),v._v(" "),p("p",[v._v("10.有了解过,用一个ip可以使多个nginx相互切换,例如其中一个nginx异常,是要访问另外一个ip是吗")]),v._v(" "),p("p",[v._v("11.有了解过虚拟ip这个东西呢?")]),v._v(" "),p("p",[v._v("12.nginx配置的是用什么样的负载均衡算法?")]),v._v(" "),p("p",[v._v("13.有了解过哪些负载均衡算法呢?")]),v._v(" "),p("p",[v._v("14.知道nginx是如何做负载均衡的吗?(我提到nginx中的线程池和epoll )")]),v._v(" "),p("p",[v._v("15.服务器是如何在多个副本中进行数据同步的?")]),v._v(" "),p("p",[v._v("16.知道原理细节吗?")]),v._v(" "),p("p",[v._v("17.现在的部署下,在什么故障下,服务器能够正常使用?")]),v._v(" "),p("p",[v._v("18.只实现了读的高可用,写方面没有实现高可用是吗?")]),v._v(" "),p("p",[v._v("19.fastdfs在写数据上能不能也做高可用?")]),v._v(" "),p("p",[v._v("20.有没有了解过其他分布式存储的东西呢?(我说对网络编程,tcp,网络的原理会熟悉一些)")]),v._v(" "),p("p",[v._v("21.什么情况下做东西线程通信?")]),v._v(" "),p("p",[v._v("22.单线程非阻塞有什么问题吗?")]),v._v(" "),p("p",[v._v("23.让你设计一个网络工具,你会用多线程同步阻塞的方式吗?")]),v._v(" "),p("p",[v._v("24.说一下你对epoll的了解?")]),v._v(" "),p("p",[v._v("25.说一下select的区别?")]),v._v(" "),p("p",[v._v("26.什么情况下适合用select,什么情况下适合使用epoll ?")]),v._v(" "),p("p",[v._v("27.为什么1024个连接的时候适合用select ?")]),v._v(" "),p("p",[v._v("28.为什么你认为select适合做1024个以下的连接?")]),v._v(" "),p("p",[v._v("29.平时select和 epoll都有写过吗?(我提到reactor)")]),v._v(" "),p("p",[v._v("30.说一下reactor和preactor的区别?")]),v._v(" "),p("p",[v._v("31.先说一下select是不是reactor ?")]),v._v(" "),p("p",[v._v("32.你是说epoll是同步的方式,reactor是异步的方式吗?")]),v._v(" "),p("p",[v._v("33.reactor这个概念你是从哪里了解到的?")]),v._v(" "),p("p",[v._v("34.一般搜索东西是在哪里搜索?")]),v._v(" "),p("p",[v._v("35.直接上csdn上面搜索吗?")]),v._v(" "),p("p",[v._v("36.为什么不直接用google搜索吗?是因为csdn上面搜索的东西比较适合你看吗?")]),v._v(" "),p("p",[v._v("37.你用epoll是来实现个什么东西?是应用还是练习?")]),v._v(" "),p("p",[v._v("38.关于epoll中处理数据的时候,你是如何处理的?")]),v._v(" "),p("p",[v._v("39.epoll的边沿触发和水平触发了解吗?")]),v._v(" "),p("p",[v._v("40.在使用上你是如何用边沿触发还是水平触发的?")]),v._v(" "),p("p",[v._v("41.如何设置边沿触发和水平触发的?")]),v._v(" "),p("p",[v._v("42.数据处理上是如何设计的?")]),v._v(" "),p("p",[v._v("43.以前有写过聊天室之类的通信呢?协议是如何设计的?")]),v._v(" "),p("p",[v._v("44.聊天室是你大学的时候做的吗?")]),v._v(" "),p("p",[v._v("45.你写socket变成的话,你试如何处理这些接口的错误的?")]),v._v(" "),p("p",[v._v("46.recv返回-1的话就是错误吗?")]),v._v(" "),p("p",[v._v("47.工作中为什么要用redis做这个token呢?")]),v._v(" "),p("p",[v._v("48.redis有了解过是如何做持久化的呢?")]),v._v(" "),p("p",[v._v("49.redis数据结构有了解哪些呢?")]),v._v(" "),p("p",[v._v("50.有序的set是如何实现的?")]),v._v(" "),p("p",[v._v("51.在这个公司还有别的工作体现你的水平的东西吗?")]),v._v(" "),p("p",[v._v("52.看你有用mmap,说一下mmap是什么?")]),v._v(" "),p("p",[v._v("53.你觉得哪些场景可以用mmap ?(我说了开发板的屏幕映射)")]),v._v(" "),p("p",[v._v("54.做软件开发的时候什么时候会用到mmap ?(我说了netmap用户态协议栈)")]),v._v(" "),p("p",[v._v("55.共享内存有了解过吗? linux一般如何去实现共享内存的?(shm)")]),v._v(" "),p("p",[v._v("56.你的主要开发语言是c/c是吧?平时写c多还是c ?")]),v._v(" "),p("p",[v._v("57.c11了解吗?平时你们使用的是c11吗还是老版本?")]),v._v(" "),p("p",[v._v("58.智能指针有了解吗?(我说 auto ptr ,unique ptr , shared ptr , weak ptr )")]),v._v(" "),p("p",[v._v("59.说一下上述智能指针的区别?")]),v._v(" "),p("p",[v._v("60.平时有用过哪一些指针?")]),v._v(" "),p("p",[v._v("61.C++里面右值引用什么意思?")]),v._v(" "),p("p",[v._v("62.多态是如何实现的?核心原理是什么?")]),v._v(" "),p("p",[v._v("63.你们平时如何去定位内存泄露的问题?")]),v._v(" "),p("p",[v._v("64.你是基本只做c/c++语言是吧?")]),v._v(" "),p("p",[v._v("65.第一家公司是做什么工作的呢?")]),v._v(" "),p("p",[v._v("66.你为什么会选择离开第一家公司呢?")]),v._v(" "),p("p",[v._v("67.为什么会离开第二家公司呢?")]),v._v(" "),p("p",[v._v("68.为什么毕业的时候会选择第一家做机顶盒的公司呢?")]),v._v(" "),p("p",[v._v("69.毕业找工作的时候有其他的offer选择呢?")]),v._v(" "),p("p",[v._v("70.大学的时候就是做嵌入式吗?")]),v._v(" "),p("p",[v._v("71.那你对游戏行业有了解过吗?了解多少?")]),v._v(" "),p("p",[v._v("72.你为什么会投游戏行业呢?对游戏后台了解吗?")]),v._v(" "),p("p",[v._v("73.对音视频哪些了解过吗?")]),v._v(" "),p("p",[v._v("74.平时玩游戏吗?")]),v._v(" "),p("p",[v._v("75.你现在找工作是只要是后端就可以是吧?游戏后端可以?音视频后端?服务器后端?都是有兴趣的是吧?")]),v._v(" "),p("p",[v._v("76.平时会通过什么样的途径去学习呢?")]),v._v(" "),p("p",[v._v("77.你平时一般看书多—些呢?还是上网看博客,看视屏多一些?")]),v._v(" "),p("p",[v._v("78.你最近在学的是什么呢?(我说有在学用户态协议栈的一些东西,netmap")]),v._v(" "),p("p",[v._v("79.是指tcp/ip协议吗?http协议哪些吗?(我大概说来一下netmap的原理)")]),v._v(" "),p("p",[v._v("80.说到拷贝的话,0拷贝这些有了解过吗?")]),v._v(" "),p("p",[v._v("81.还有了解到别的0拷贝的应用吗?")]),v._v(" "),p("p",[v._v("82.你现在工作是要加班吗?几点到几点?(每天都是10点,11点以后)")]),v._v(" "),p("p",[v._v("83.你们业务开发很多吗?你一般事情做完了会是几点?你对工作时间是如何看的?")]),v._v(" "),p("p",[v._v("84.长期10点多和11点多下班的话,个人能坚持吗?能接受吗?")]),v._v(" "),p("p",[v._v("85.平时周末或者节假日突然需要修bug的时候有吗?")]),v._v(" "),p("p",[v._v("86.你现在有女朋友吗?在那里?")]),v._v(" "),p("p",[v._v("87.你是哪里人?你现在在广州哪里?")]),v._v(" "),p("p",[v._v("88.你了解过我们公司的位置吗?")])])}),[],!1,null,null,null);_.default=t.exports}}]); \ No newline at end of file diff --git a/assets/js/24.3e59a9da.js b/assets/js/24.3e59a9da.js new file mode 100644 index 0000000..17e671e --- /dev/null +++ b/assets/js/24.3e59a9da.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{606:function(v,_,p){"use strict";p.r(_);var t=p(15),e=Object(t.a)({},(function(){var v=this,_=v.$createElement,p=v._self._c||_;return p("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[p("p",[v._v("深信服网络安全2020年09月14日星期一12:47:05 CST")]),v._v(" "),p("p",[v._v("1.简单的介绍一下自己擅长的技能")]),v._v(" "),p("p",[v._v("2.工作中主要还是做c/c++是吗?json也是用c/C++写的吗?")]),v._v(" "),p("p",[v._v("3.c/C+ + static的使用场景是什么?")]),v._v(" "),p("p",[v._v("4.C++为什么要使用extern C ,才能调用c文件的内容?<")]),v._v(" "),p("p",[v._v("5.定义局部数组和直接使用new/malloc分配的内存有什么不一样?")]),v._v(" "),p("p",[v._v("6.栈上面分配数组最大可以分配多少内存?")]),v._v(" "),p("p",[v._v("7.free/delete是如何知道需要释放的内存段有多大?◆")]),v._v(" "),p("p",[v._v("8.空指针和野指针的区别?")]),v._v(" "),p("p",[v._v("9.场景, 2个线程分别有2个指针, p1, p2 ,都指向了同一-片内存,现在释放掉p1 ,内存已经被释放了,但是现在p2也要释放内存, 这个时候会出问题吗?怎么解决? ( 引用计数,互斥锁,无锁cas")]),v._v(" "),p("p",[v._v("10.通常计算字符串长度使用strlen , sizeof能计算字符串的长度吗?")]),v._v(" "),p("p",[v._v("11.算法题,判断一个数是否是2的n次方")]),v._v(" "),p("p",[v._v("12.进程和线程的区别")]),v._v(" "),p("p",[v._v("13.案例题,你需要综合考虑;多核cpu场景,使用多线程的场景去设计数据的手法,数据的计算,整体协调的效率达到最大。简单的当做网络接口的接收和")]),v._v(" "),p("p",[v._v("发送 epoll 线程池 协程")]),v._v(" "),p("p",[v._v("14.tcp和udp的区别")]),v._v(" "),p("p",[v._v("15.socket套接字变成,服务器端都有哪些函数,功能是什么")]),v._v(" "),p("p",[v._v("16.网络编程,网络协议栈有没有了解")]),v._v(" "),p("p",[v._v("17.类似于epoll这样的技术,你是如何学习的?")]),v._v(" "),p("p",[v._v("18.除了c/c+ +平时还接触其他语言吗?")]),v._v(" "),p("p",[v._v("19.go语言有接触过吗?")]),v._v(" "),p("p",[v._v("深信服二面2020年09月16日星期三14:33:02 CST")]),v._v(" "),p("p",[v._v("1.用什么语言来做的这个服务器?")]),v._v(" "),p("p",[v._v("2.(啊?怎么用c/c+ +来做? )并发能有多少?")]),v._v(" "),p("p",[v._v("3.我觉得20w比较悬,能做到20w并发不太可能")]),v._v(" "),p("p",[v._v("4.有没有做断点续传的功能,闪存(秒传)的功能,如何做的?")]),v._v(" "),p("p",[v._v("5.你们是提供给别人sdk吗?")]),v._v(" "),p("p",[v._v("6.如何验证文件的md5值,细节?")]),v._v(" "),p("p",[v._v("7.如果用http chunk编码的方式如何做?")]),v._v(" "),p("p",[v._v("8.全部都用你的客户端上传文件,你没有办法控制文件的格式和安全的?")]),v._v(" "),p("p",[v._v("9.浏览器想去在线打开你的文件,你为什么不支持chunk编码的方式?")]),v._v(" "),p("p",[v._v("10.你理解http的chunk编码吗?")]),v._v(" "),p("p",[v._v("11.鉴权如何做,用户权限是如何做的?")]),v._v(" "),p("p",[v._v("12.上传文件带了哪些验证信息,具体技术实现细节?")]),v._v(" "),p("p",[v._v("13.上传文件,二进制流你也是放在json里面吗?")]),v._v(" "),p("p",[v._v("14.我是黑客的话就不按你的流程走,直接把文件传到你的服务器里面,这个怎么办?")]),v._v(" "),p("p",[v._v("15.token是明文的话,很容易被别人拿到,这个是很不安全的,如何处理?")]),v._v(" "),p("p",[v._v("16.token的做法,文件上传的做法,需要说的更加清楚和细节-一些")]),v._v(" "),p("p",[v._v("17.这样做不行,如果不对上传文件做校验的话,这样做是有问题的,是存在漏洞的")]),v._v(" "),p("p",[v._v("18.http明显有一个auth的字段为什么不用 ,你现在做的这样是不合理的")]),v._v(" "),p("p",[v._v("19.你还有做过其他的一一些项目吗,互联网的")]),v._v(" "),p("p",[v._v("20.有做过linux内核网络层的项目开发吗?")]),v._v(" "),p("p",[v._v("21.网络通信这一块有别的项目经验吗?自己去做的scoket项目有吗?")]),v._v(" "),p("p",[v._v("22.socket阻塞和非阻塞有什么区别?如何写?")]),v._v(" "),p("p",[v._v("23.recv返回-1有哪几种情况要处理?")]),v._v(" "),p("p",[v._v("24.看你还做了linux内核移植的,是做过内核的编程呢还是编译?")]),v._v(" "),p("p",[v._v("25.有把哪一一个开源技术研究的比较深的经历吗,搞的比较透的那种?")]),v._v(" "),p("p",[v._v("26.做的项目过程中,有没有遇到最困难,最难查的bug ,如何解决的?我是要看你解决问题的深度")]),v._v(" "),p("p",[v._v("27.你说的这些都是基本的调试技术,这是必须会的,你有让你印象比较深刻的很难的")]),v._v(" "),p("p",[v._v("28.你看下你那边还有什么项目可以证明你能力的?")]),v._v(" "),p("p",[v._v("29.你在网络这一块相对比较有经验-点对吧,网络编程这一块")]),v._v(" "),p("p",[v._v("30.有兴趣学其他的语言吗?比如go语言, python语言")]),v._v(" "),p("p",[v._v("31.介绍一些你过往比较快学习- 一个技术且掌握的案例吗?")]),v._v(" "),p("p",[v._v("32.有看过哪些书籍?看看你的学识能力")]),v._v(" "),p("p",[v._v("我问的问题")]),v._v(" "),p("p",[v._v("1.这个岗位核心技能是网络相关的技能还是安全的技能")]),v._v(" "),p("p",[v._v("●大部分主要还是网络这一块的,对内核的编程要有一些了解,应用层的编程也是需")]),v._v(" "),p("p",[v._v("●刚才和你说的chunk编码类似的会用到openssl做加密,你对openssI有了解过吗")]),v._v(" "),p("p",[v._v("●要对网络层的各种协议要搞的很熟,例如gre ,例如unix网络编程, tcp/ip详解")])])}),[],!1,null,null,null);_.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/25.3423b9d6.js b/assets/js/25.3423b9d6.js new file mode 100644 index 0000000..809e654 --- /dev/null +++ b/assets/js/25.3423b9d6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{607:function(e,s,t){"use strict";t.r(s);var a=t(15),r=Object(a.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[t("img",{attrs:{src:"https://img.shields.io/badge/vuepress-0.14.8-brightgreen.svg",alt:"vuepress"}}),e._v(" "),t("img",{attrs:{src:"https://img.shields.io/badge/leancloud--storage-3.10.1-orange.svg",alt:"leancloud-storage"}}),e._v(" "),t("img",{attrs:{src:"https://img.shields.io/badge/valine-1.3.4-blue.svg",alt:"valine"}})]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"title"},[e._v("介绍")]),t("ol",[t("li",[e._v("这是一个vuepress主题,旨在添加博客所需的分类、TAB墙、分页、评论等能;"),t("br")]),e._v(" "),t("li",[e._v("主题追求极简,根据 vuepress 的默认主题修改而成,官方的主题配置仍然适用;"),t("br")]),e._v(" "),t("li",[e._v("你可以打开 "),t("a",{attrs:{href:"http://recoluan.gitlab.io",target:"_blank",rel:"noopener noreferrer"}},[e._v("午后南杂"),t("OutboundLink")],1),e._v(" 来查看效果。")])])]),t("h2",{attrs:{id:"use"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#use"}},[e._v("#")]),e._v(" Use")]),e._v(" "),t("p",[t("strong",[e._v("Build")])]),e._v(" "),t("div",{staticClass:"language-bash line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run build\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# or")]),e._v("\n\n"),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" build\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[t("strong",[e._v("Server")])]),e._v(" "),t("div",{staticClass:"language-bash line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run dev\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# or")]),e._v("\n\n"),t("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" dev\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("h2",{attrs:{id:"play-together"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#play-together"}},[e._v("#")]),e._v(" Play Together")]),e._v(" "),t("h3",{attrs:{id:"_0-x"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_0-x"}},[e._v("#")]),e._v(" 0.x")]),e._v(" "),t("p",[t("code",[e._v("vuepress-theme-reco@0.x")]),e._v(" 是基于 "),t("code",[e._v("vuepress@0.x")]),e._v(" 的博客主题。")]),e._v(" "),t("p",[t("code",[e._v("vuepress@0.x")]),e._v(" 功能比较简单,只适合书写简单的文档,但好在支持主题自定义,而个人又希望能够用它来书写博客,原因就是它足够的简洁,毫无疑问,这也符合很多程序员的观念,也就是在这种情况下,"),t("code",[e._v("vuepress-theme-reco@0.x")]),e._v(" 的第一个版本经过一个通宵而产生。")]),e._v(" "),t("p",[e._v("主题开源不久,很多朋友通过各种联系方式,给到很多好的意见和建议,所以我个人也在积极地更新。")]),e._v(" "),t("p",[e._v("因为我是一名前端开发工程师,开发的过程中,总是想着能不能加入一些炫酷的效果,有很多次都是添加上又去掉,反反复复,最后都是被 "),t("strong",[e._v("简洁")]),e._v(" 的这个原则阻止掉,毕竟,现在我是将它当作一个产品来看待,并不是一个技术或者是技巧的尝试项目。")]),e._v(" "),t("h3",{attrs:{id:"_1-x"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-x"}},[e._v("#")]),e._v(" 1.x")]),e._v(" "),t("p",[e._v("随着不断有用户过来询问:为什么 "),t("code",[e._v("vuepress-theme-reco@0.x")]),e._v(" 不能在 "),t("code",[e._v("vuepress@1.x")]),e._v(" 上使用?本来只是打算对 "),t("code",[e._v("vuepress-theme-reco@0.x")]),e._v(" 进行简单的bug修复的我,终究还是忍不住,开始了 "),t("code",[e._v("vuepress-theme-reco@1.x")]),e._v(" 的开发。又是在一个寂静的凌晨两点半(晚上就是出活快),我默默地开始了。")]),e._v(" "),t("p",[e._v("主题升级的关键也就是 "),t("code",[e._v("@vuepress/plugin-blog")]),e._v(" 这款官方插件,它不需要再去麻烦地过滤数据,将分类和标签的相关信息直接存在 "),t("code",[e._v("$categories")]),e._v(" 和 "),t("code",[e._v("$tags")]),e._v(" 这两个全局变量中。借助于 "),t("code",[e._v("@vuepress/plugin-blog")]),e._v(",分类和标签功能更容易实现,但也有了一些局限。接下来两三天的时间,都是在进行功能的迁移和一些bug的修复。")]),e._v(" "),t("p",[t("code",[e._v("vuepress-theme-reco@0.x")]),e._v(" 的开发中,更加深刻地明白了模块化和组件化编程的重要性,如果当初没有把一些功能进行封装,而是直接简单的复制,这次升级也不会这么顺利。模块拆分的越细,使用就会越灵活。")]),e._v(" "),t("h3",{attrs:{id:"cli"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#cli"}},[e._v("#")]),e._v(" CLI")]),e._v(" "),t("p",[e._v("还是衷心地希望能有更多的朋友参与进来,更快地去完善它。接下来时间允许的情况下,我会开源一款自动生成博客的脚手架,略过配置步骤,直接书写优质内容,这也是我后来逐渐形成的一种信念,就是希望能让这款主题,功能越完善,使用越来越简单。")]),e._v(" "),t("h2",{attrs:{id:"license"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#license"}},[e._v("#")]),e._v(" License")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/recoluan/vuepress-theme-reco/blob/master/LICENSE",target:"_blank",rel:"noopener noreferrer"}},[e._v("MIT"),t("OutboundLink")],1)])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/26.14b116b2.js b/assets/js/26.14b116b2.js new file mode 100644 index 0000000..7e8f099 --- /dev/null +++ b/assets/js/26.14b116b2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{608:function(_,v,t){"use strict";t.r(v);var r=t(15),a=Object(r.a)({},(function(){var _=this,v=_.$createElement,t=_._self._c||v;return t("ContentSlotsDistributor",{attrs:{"slot-key":_.$parent.slotKey}},[t("h1",{attrs:{id:"一级标题"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#一级标题"}},[_._v("#")]),_._v(" 一级标题")]),_._v(" "),t("h2",{attrs:{id:"二级标题"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#二级标题"}},[_._v("#")]),_._v(" 二级标题")]),_._v(" "),t("h3",{attrs:{id:"三级标题"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#三级标题"}},[_._v("#")]),_._v(" 三级标题")]),_._v(" "),t("h4",{attrs:{id:"四级标题"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#四级标题"}},[_._v("#")]),_._v(" 四级标题")]),_._v(" "),t("h5",{attrs:{id:"五级标题"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#五级标题"}},[_._v("#")]),_._v(" 五级标题")]),_._v(" "),t("h6",{attrs:{id:"六级标题"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#六级标题"}},[_._v("#")]),_._v(" 六级标题")]),_._v(" "),t("p",[t("em",[_._v("斜体文字")])]),_._v(" "),t("p",[t("em",[_._v("斜体文字")])]),_._v(" "),t("p",[t("strong",[_._v("粗体文字")])]),_._v(" "),t("p",[t("strong",[_._v("粗体文字")])]),_._v(" "),t("p",[t("em",[t("strong",[_._v("粗斜体文字")])])]),_._v(" "),t("p",[t("em",[t("strong",[_._v("粗斜体文字")])])]),_._v(" "),t("p",[_._v("分割线")]),_._v(" "),t("hr"),_._v(" "),t("hr"),_._v(" "),t("hr"),_._v(" "),t("hr"),_._v(" "),t("hr"),_._v(" "),t("p",[_._v("删除线")]),_._v(" "),t("p",[_._v("baidu.com\nsina.com\n"),t("s",[_._v("tencent.com")])]),_._v(" "),t("p",[t("u",[_._v("带下划线文本")])]),_._v(" "),t("p",[_._v("[^要注明的文本]:")]),_._v(" "),t("ul",[t("li",[_._v("第一项")]),_._v(" "),t("li",[_._v("第二项")]),_._v(" "),t("li",[_._v("第三项")])]),_._v(" "),t("ul",[t("li",[_._v("第一项")]),_._v(" "),t("li",[_._v("第二项")]),_._v(" "),t("li",[_._v("第三项")])]),_._v(" "),t("ul",[t("li",[_._v("第一项")]),_._v(" "),t("li",[_._v("第二项")]),_._v(" "),t("li",[_._v("第三项")])]),_._v(" "),t("ol",[t("li",[_._v("第一项:\n"),t("ul",[t("li",[_._v("第一项嵌套的第一个元素")]),_._v(" "),t("li",[_._v("第一项嵌套的第二个元素")])])]),_._v(" "),t("li",[_._v("第二项:\n"),t("ul",[t("li",[_._v("第二项嵌套的第一个元素")]),_._v(" "),t("li",[_._v("第二项嵌套的第二个元素")])])])]),_._v(" "),t("blockquote",[t("p",[_._v("最外层")]),_._v(" "),t("blockquote",[t("p",[_._v("第一层嵌套")]),_._v(" "),t("blockquote",[t("p",[_._v("第二层嵌套")])])])]),_._v(" "),t("p",[_._v("'print()' 函数")]),_._v(" "),t("p",[_._v("代码区块")]),_._v(" "),t("p",[_._v("'''javascript\n$(document).read(function(){\nalert('Markdown');\n});\n'''")]),_._v(" "),t("p",[t("a",{attrs:{href:"%E9%93%BE%E6%8E%A5%E5%9C%B0%E5%9D%80"}},[_._v("链接名称")]),_._v("\n或者\n<链接地址>")]),_._v(" "),t("p",[_._v("这是一个链接 "),t("a",{attrs:{href:"https://news.sina.com.cn/",target:"_blank",rel:"noopener noreferrer"}},[_._v("新浪新闻"),t("OutboundLink")],1),_._v(" "),t("a",{attrs:{href:"https://news.sina.com.cn/",target:"_blank",rel:"noopener noreferrer"}},[_._v("https://news.sina.com.cn/"),t("OutboundLink")],1)]),_._v(" "),t("p",[t("img",{attrs:{src:"https://pic4.zhimg.com/80/v2-a47051e92cf74930bedd7469978e6c08_hd.png",alt:"有问题上知乎 图标"}})]),_._v(" "),t("table",[t("thead",[t("tr",[t("th",[_._v("表头1")]),_._v(" "),t("th",[_._v("表头2")])])]),_._v(" "),t("tbody",[t("tr",[t("td",[_._v("单元格11")]),_._v(" "),t("td",[_._v("单元格12")])]),_._v(" "),t("tr",[t("td",[_._v("单元格21")]),_._v(" "),t("td",[_._v("单元格22")])])])]),_._v(" "),t("p",[_._v("使用"),t("kbd",[_._v("Ctrl")]),_._v("+"),t("kbd",[_._v("Alt")]),_._v("+"),t("kbd",[_._v("Del")]),_._v("重启电脑")]),_._v(" "),t("p",[t("strong",[_._v("文本加粗")]),_._v("\n**正常显示星号**")]),_._v(" "),t("p",[_._v("$$\n\\int_0^1 {x^2} ,{\\rm d}x\n$$")])])}),[],!1,null,null,null);v.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/27.946e74f9.js b/assets/js/27.946e74f9.js new file mode 100644 index 0000000..a56c0c7 --- /dev/null +++ b/assets/js/27.946e74f9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{609:function(t,e,n){"use strict";n.r(e);var s=n(15),i=Object(s.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("p",[this._v("second page in redis")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/28.33fa0677.js b/assets/js/28.33fa0677.js new file mode 100644 index 0000000..05b5e08 --- /dev/null +++ b/assets/js/28.33fa0677.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{610:function(t,e,n){"use strict";n.r(e);var s=n(15),l=Object(s.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("p",[this._v("1111111")])])}),[],!1,null,null,null);e.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/29.6f72c1d3.js b/assets/js/29.6f72c1d3.js new file mode 100644 index 0000000..3a2744b --- /dev/null +++ b/assets/js/29.6f72c1d3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{611:function(t,e,n){"use strict";n.r(e);var s=n(15),i=Object(s.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("p",[this._v("first page in zmq")])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/3.5a4097ad.js b/assets/js/3.5a4097ad.js new file mode 100644 index 0000000..8e15d9c --- /dev/null +++ b/assets/js/3.5a4097ad.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{493:function(t,e,a){},494:function(t,e,a){},495:function(t,e,a){},498:function(t,e,a){},499:function(t,e,a){"use strict";a(91);var n=a(159),r=a(491),o=a(490),s=Object(n.b)({components:{RecoIcon:r.b},props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},setup:function(t,e){var a=Object(o.a)();return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"},goTags:function(t){a.$route.path!=="/tag/".concat(t,"/")&&a.$router.push({path:"/tag/".concat(t,"/")})},formatDateValue:function(t){return new Intl.DateTimeFormat(a.$lang).format(new Date(t))}}}}),i=(a(500),a(15)),c=Object(i.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author?a("reco-icon",{attrs:{icon:"reco-account"}},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("reco-icon",{attrs:{icon:"reco-date"}},[a("span",[t._v(t._s(t.formatDateValue(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("reco-icon",{attrs:{icon:"reco-eye"}},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("reco-icon",{staticClass:"tags",attrs:{icon:"reco-tag"}},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return a.stopPropagation(),t.goTags(e)}}},[t._v(t._s(e))])})),0):t._e()],1)}),[],!1,null,"f875f3fc",null);e.a=c.exports},500:function(t,e,a){"use strict";a(493)},501:function(t,e,a){"use strict";a(494)},502:function(t,e,a){"use strict";a(495)},503:function(t,e,a){"use strict";a(43);var n=a(159),r=(a(161),a(264),{methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",JSON.stringify({page:1,path:""})),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}),o=a(491),s=a(499),i=Object(n.b)({components:{PageInfo:s.a,RecoIcon:o.b},props:["item","currentPage","currentTag"]}),c=(a(501),a(15)),l=Object(c.a)(i,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item",on:{click:function(e){return t.$router.push(t.item.path)}}},[t.item.frontmatter.sticky?a("reco-icon",{attrs:{icon:"reco-sticky"}}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("reco-icon",{attrs:{icon:"reco-lock"}}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"ff2c8be0",null).exports,u=a(490),p=Object(n.b)({mixins:[r],components:{NoteAbstractItem:l},props:["data","currentTag"],setup:function(t,e){var a=Object(u.a)(),r=Object(n.h)(t).data,o=Object(n.g)(1),s=Object(n.a)((function(){var t=(o.value-1)*a.$perPage,e=o.value*a.$perPage;return r.value.slice(t,e)}));return Object(n.d)((function(){o.value=a._getStoragePage()||1})),{currentPage:o,currentPageData:s,getCurrentPage:function(t){o.value=t,a._setStoragePage(t),e.emit("paginationChange",t)}}},watch:{$route:function(){this.currentPage=this._getStoragePage()||1}}}),f=(a(502),Object(c.a)(p,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},[t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),t._v(" "),a("pagation",{staticClass:"pagation",attrs:{total:t.data.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],2)}),[],!1,null,"6cc0658a",null));e.a=f.exports},506:function(t,e,a){"use strict";a(498)},508:function(t,e,a){"use strict";var n=a(66),r=(a(160),a(159)),o=a(120),s=a(490),i=Object(r.b)({props:{currentTag:{type:String,default:""}},setup:function(t,e){var a=Object(s.a)();return{tags:Object(r.a)((function(){return[{name:a.$recoLocales.all,path:"/tag/"}].concat(Object(n.a)(a.$tagesList))})),tagClick:function(t){e.emit("getCurrentTag",t)},getOneColor:o.b}}}),c=(a(506),a(15)),l=Object(c.a)(i,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tags"},t._l(t.tags,(function(e,n){return a("span",{directives:[{name:"show",rawName:"v-show",value:!e.pages||e.pages&&e.pages.length>0,expression:"!item.pages || (item.pages && item.pages.length > 0)"}],key:n,class:{active:e.name==t.currentTag},style:{backgroundColor:t.getOneColor()},on:{click:function(a){return t.tagClick(e)}}},[t._v(t._s(e.name))])})),0)}),[],!1,null,"285c9a44",null);e.a=l.exports},530:function(t,e,a){},531:function(t,e,a){},532:function(t,e,a){},533:function(t,e,a){},534:function(t,e,a){},535:function(t,e,a){},536:function(t,e,a){},537:function(t,e,a){},572:function(t,e,a){"use strict";a(530)},573:function(t,e,a){"use strict";a(531)},574:function(t,e,a){t.exports=a.p+"assets/img/bg.2cfdbb33.svg"},575:function(t,e,a){"use strict";a(532)},576:function(t,e,a){"use strict";a(533)},577:function(t,e,a){"use strict";a(534)},578:function(t){t.exports=JSON.parse('{"a":"1.6.10"}')},579:function(t,e,a){"use strict";a(535)},580:function(t,e,a){"use strict";a(536)},581:function(t,e,a){"use strict";a(537)},586:function(t,e,a){"use strict";a.r(e);var n=a(159),r=a(510),o=a(491),s=a(490),i=Object(n.b)({components:{NavLink:r.a,ModuleTransition:o.a},setup:function(t,e){var a=Object(s.a)();return{recoShowModule:Object(n.a)((function(){return a&&a.$parent.recoShowModule})),actionLink:Object(n.a)((function(){return a&&{link:a.$frontmatter.actionLink,text:a.$frontmatter.actionText}})),heroImageStyle:Object(n.a)((function(){return a.$frontmatter.heroImageStyle||{maxHeight:"200px",margin:"6rem auto 1.5rem"}}))}}}),c=(a(572),a(15)),l=Object(c.a)(i,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"home"},[a("div",{staticClass:"hero"},[a("ModuleTransition",[t.recoShowModule&&t.$frontmatter.heroImage?a("img",{style:t.heroImageStyle||{},attrs:{src:t.$withBase(t.$frontmatter.heroImage),alt:"hero"}}):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.04"}},[t.recoShowModule&&null!==t.$frontmatter.heroText?a("h1",{style:{marginTop:t.$frontmatter.heroImage?"0px":"140px"}},[t._v("\n "+t._s(t.$frontmatter.heroText||t.$title||"vuePress-theme-reco")+"\n ")]):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[t.recoShowModule&&null!==t.$frontmatter.tagline?a("p",{staticClass:"description"},[t._v("\n "+t._s(t.$frontmatter.tagline||t.$description||"Welcome to your vuePress-theme-reco site")+"\n ")]):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[t.recoShowModule&&t.$frontmatter.actionText&&t.$frontmatter.actionLink?a("p",{staticClass:"action"},[a("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()])],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.24"}},[t.recoShowModule&&t.$frontmatter.features&&t.$frontmatter.features.length?a("div",{staticClass:"features"},t._l(t.$frontmatter.features,(function(e,n){return a("div",{key:n,staticClass:"feature"},[a("h2",[t._v(t._s(e.title))]),t._v(" "),a("p",[t._v(t._s(e.details))])])})),0):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.32"}},[a("Content",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"home-center",attrs:{custom:""}})],1)],1)}),[],!1,null,null,null).exports,u=a(17),p=(a(90),a(508)),f=(a(27),a(63),a(49),a(525)),g=a.n(f),d=a(120),m=function(){var t=Object(s.a)(),e=Object(n.g)(!0),a=Object(n.f)({left:0,top:0});return Object(n.d)((function(){e.value=!/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)})),{popupWindowStyle:a,showDetail:function(n){var r=n.target;r.querySelector(".popup-window-wrapper").style.display="block";var o=r.querySelector(".popup-window"),s=document.querySelector(".info-wrapper"),i=r.clientWidth,c=o.clientWidth,l=o.clientHeight;if(e)a.left=(i-c)/2+"px",a.top=-l+"px",s.style.overflow="visible",t.$nextTick((function(){!function(t){var e=document.body.offsetWidth,n=t.getBoundingClientRect(),r=e-(n.x+n.width);if(r<0){var o=t.offsetLeft;a.left=o+r+"px"}}(o)}));else{var u=function(t){var e=document,a=t.getBoundingClientRect(),n=a.left,r=a.top;return{left:n+=e.documentElement.scrollLeft||e.body.scrollLeft,top:r+=e.documentElement.scrollTop||e.body.scrollTop}};s.style.overflow="hidden";var p=u(r).left-u(s).left;a.left=-p+(s.clientWidth-o.clientWidth)/2+"px",a.top=-l+"px"}},hideDetail:function(t){t.target.querySelector(".popup-window-wrapper").style.display="none"}}},h=Object(n.b)({setup:function(t,e){var a=Object(s.a)(),r=m(),o=r.popupWindowStyle,i=r.showDetail,c=r.hideDetail;return{dataAddColor:Object(n.a)((function(){var t=(a&&a.$themeConfig).friendLink;return(void 0===t?[]:t).map((function(t){return t.color=Object(d.b)(),t}))})),popupWindowStyle:o,showDetail:i,hideDetail:c,getImgUrl:function(t){var e=t.logo,n=void 0===e?"":e,r=t.email,o=void 0===r?"":r;return n&&/^http/.test(n)?n:n&&!/^http/.test(n)?a.$withBase(n):"//1.gravatar.com/avatar/".concat(g()(o||""),"?s=50&d=mm&r=x")}}}}),v=(a(573),Object(c.a)(h,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"friend-link-wrapper"},t._l(t.dataAddColor,(function(e,n){return a("div",{key:n,staticClass:"friend-link-item",attrs:{target:"_blank"},on:{mouseenter:function(e){return t.showDetail(e)},mouseleave:function(e){return t.hideDetail(e)}}},[a("span",{staticClass:"list-style",style:{backgroundColor:e.color}}),t._v("\n "+t._s(e.title)+"\n "),a("transition",{attrs:{name:"fade"}},[a("div",{staticClass:"popup-window-wrapper"},[a("div",{ref:"popupWindow",refInFor:!0,staticClass:"popup-window",style:t.popupWindowStyle},[a("div",{staticClass:"logo"},[a("img",{attrs:{src:t.getImgUrl(e)}})]),t._v(" "),a("div",{staticClass:"info"},[a("div",{staticClass:"title"},[a("h4",[t._v(t._s(e.title))]),t._v(" "),a("a",{staticClass:"btn-go",style:{backgroundColor:e.color},attrs:{href:e.link,target:"_blank"}},[t._v("GO")])]),t._v(" "),e.desc?a("p",[t._v(t._s(e.desc))]):t._e()])])])])],1)})),0)}),[],!1,null,"165dc218",null).exports),_=a(503),b=a(543),C=Object(n.b)({components:{NoteAbstract:_.a,TagList:p.a,FriendLink:v,ModuleTransition:o.a,PersonalInfo:b.a,RecoIcon:o.b},setup:function(t,e){var r=Object(s.a)(),o=Object(n.f)({recoShow:!1,heroHeight:0}),i=Object(n.a)((function(){return r&&r.$parent.recoShowModule})),c=Object(n.a)((function(){return r.$frontmatter.heroImageStyle||{}})),l=Object(n.a)((function(){var t=r.$frontmatter.bgImage?r.$withBase(r.$frontmatter.bgImage):a(574),e={textAlign:"center",overflow:"hidden",background:"url(".concat(t,") center/cover no-repeat")},n=r.$frontmatter.bgImageStyle;return n?Object(u.a)(Object(u.a)({},e),n):e}));return Object(n.d)((function(){o.heroHeight=document.querySelector(".hero").clientHeight,o.recoShow=!0})),Object(u.a)(Object(u.a)({recoShowModule:i,heroImageStyle:c,bgImageStyle:l},Object(n.h)(o)),{},{getOneColor:d.b})},methods:{paginationChange:function(t){var e=this;setTimeout((function(){window.scrollTo(0,e.heroHeight)}),100)},getPagesByTags:function(t){this.$router.push({path:t.path})}}}),w=(a(575),Object(c.a)(C,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"home-blog"},[a("div",{staticClass:"hero",style:Object.assign({},t.bgImageStyle)},[a("div",[a("ModuleTransition",[t.recoShowModule&&t.$frontmatter.heroImage?a("img",{staticClass:"hero-img",style:t.heroImageStyle||{},attrs:{src:t.$withBase(t.$frontmatter.heroImage),alt:"hero"}}):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.04"}},[t.recoShowModule&&null!==t.$frontmatter.heroText?a("h1",[t._v("\n "+t._s(t.$frontmatter.heroText||t.$title||"vuePress-theme-reco")+"\n ")]):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[t.recoShowModule&&null!==t.$frontmatter.tagline?a("p",{staticClass:"description"},[t._v("\n "+t._s(t.$frontmatter.tagline||t.$description||"Welcome to your vuePress-theme-reco site")+"\n ")]):t._e()])],1)]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"home-blog-wrapper"},[a("div",{staticClass:"blog-list"},[a("note-abstract",{attrs:{data:t.$recoPosts},on:{paginationChange:t.paginationChange}})],1),t._v(" "),a("div",{staticClass:"info-wrapper"},[a("PersonalInfo"),t._v(" "),a("h4",[a("reco-icon",{attrs:{icon:"reco-category"}}),t._v(" "+t._s(t.$recoLocales.category))],1),t._v(" "),a("ul",{staticClass:"category-wrapper"},t._l(this.$categories.list,(function(e,n){return a("li",{key:n,staticClass:"category-item"},[a("router-link",{attrs:{to:e.path}},[a("span",{staticClass:"category-name"},[t._v(t._s(e.name))]),t._v(" "),a("span",{staticClass:"post-num",style:{backgroundColor:t.getOneColor()}},[t._v(t._s(e.pages.length))])])],1)})),0),t._v(" "),a("hr"),t._v(" "),0!==t.$tags.list.length?a("h4",[a("reco-icon",{attrs:{icon:"reco-tag"}}),t._v(" "+t._s(t.$recoLocales.tag))],1):t._e(),t._v(" "),a("TagList",{on:{getCurrentTag:t.getPagesByTags}}),t._v(" "),t.$themeConfig.friendLink&&0!==t.$themeConfig.friendLink.length?a("h4",[a("reco-icon",{attrs:{icon:"reco-friend"}}),t._v(" "+t._s(t.$recoLocales.friendLink))],1):t._e(),t._v(" "),a("FriendLink")],1)])]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.24"}},[a("Content",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"home-center",attrs:{custom:""}})],1)],1)}),[],!1,null,null,null).exports),$=(a(64),a(499)),y=a(50),O=a(88),S=a(66),j=(a(160),Object(n.b)({setup:function(t,e){var a=Object(s.a)();return{headers:Object(n.a)((function(){return a.$showSubSideBar?a.$page.headers:[]})),isLinkActive:function(t){var e=Object(y.e)(a.$route,a.$page.path+"#"+t.slug);return e&&setTimeout((function(){document.querySelector(".reco-side-".concat(t.slug)).scrollIntoView()}),300),e}}},render:function(t){var e=this;return t("ul",{class:{"sub-sidebar-wrapper":!0},style:{width:this.headers.length>0?"12rem":"0"}},Object(S.a)(this.headers.map((function(a){return t("li",{class:Object(O.a)({active:e.isLinkActive(a)},"level-".concat(a.level),!0),attr:{key:a.title}},[t("router-link",{class:Object(O.a)({"sidebar-link":!0},"reco-side-".concat(a.slug),!0),props:{to:"".concat(e.$page.path,"#").concat(a.slug)}},a.title)])}))))}})),k=(a(576),Object(c.a)(j,void 0,void 0,!1,null,"cb1513f6",null).exports);function T(t,e,a){var n=[];!function t(e,a){for(var n=0,r=e.length;n0,expression:"!item.pages || (item.pages && item.pages.length > 0)"}],key:n,class:{active:e.name==t.currentTag},style:{backgroundColor:t.getOneColor()},on:{click:function(a){return t.tagClick(e)}}},[t._v(t._s(e.name))])})),0)}),[],!1,null,"285c9a44",null);e.a=u.exports},538:function(t,e,a){},582:function(t,e,a){"use strict";a(538)},589:function(t,e,a){"use strict";a.r(e);a(90);var n=a(159),r=a(507),o=a(503),c=a(508),s=a(491),i=a(87),u=a(504),g=a(490),l=Object(n.b)({mixins:[u.a],components:{Common:r.a,NoteAbstract:o.a,TagList:c.a,ModuleTransition:s.a},setup:function(t,e){var a=Object(g.a)();return{posts:Object(n.a)((function(){var t=a.$currentTags.pages;return t=Object(i.a)(t),Object(i.c)(t),t})),getCurrentTag:function(t){e.emit("currentTag",t)},tagClick:function(t){a.$route.path!==t.path&&a.$router.push({path:t.path})},paginationChange:function(t){setTimeout((function(){window.scrollTo(0,0)}),100)}}}}),p=(a(496),a(505),a(582),a(15)),f=Object(p.a)(l,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Common",{staticClass:"tag-wrapper",attrs:{sidebar:!1}},[a("ModuleTransition",[a("TagList",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"tags",attrs:{currentTag:t.$currentTags.key},on:{getCurrentTag:t.tagClick}})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[a("note-abstract",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"list",attrs:{data:t.posts,currentTag:t.$currentTags.key},on:{paginationChange:t.paginationChange}})],1)],1)}),[],!1,null,"25a0fadc",null);e.default=f.exports}}]); \ No newline at end of file diff --git a/assets/js/5.eb8174c0.js b/assets/js/5.eb8174c0.js new file mode 100644 index 0000000..ba275b3 --- /dev/null +++ b/assets/js/5.eb8174c0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{492:function(t,e,a){},493:function(t,e,a){},494:function(t,e,a){},495:function(t,e,a){},496:function(t,e,a){"use strict";a(492)},497:function(t,e,a){},498:function(t,e,a){},499:function(t,e,a){"use strict";a(91);var n=a(159),r=a(491),o=a(490),c=Object(n.b)({components:{RecoIcon:r.b},props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},setup:function(t,e){var a=Object(o.a)();return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"},goTags:function(t){a.$route.path!=="/tag/".concat(t,"/")&&a.$router.push({path:"/tag/".concat(t,"/")})},formatDateValue:function(t){return new Intl.DateTimeFormat(a.$lang).format(new Date(t))}}}}),s=(a(500),a(15)),i=Object(s.a)(c,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author?a("reco-icon",{attrs:{icon:"reco-account"}},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("reco-icon",{attrs:{icon:"reco-date"}},[a("span",[t._v(t._s(t.formatDateValue(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("reco-icon",{attrs:{icon:"reco-eye"}},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("reco-icon",{staticClass:"tags",attrs:{icon:"reco-tag"}},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return a.stopPropagation(),t.goTags(e)}}},[t._v(t._s(e))])})),0):t._e()],1)}),[],!1,null,"f875f3fc",null);e.a=i.exports},500:function(t,e,a){"use strict";a(493)},501:function(t,e,a){"use strict";a(494)},502:function(t,e,a){"use strict";a(495)},503:function(t,e,a){"use strict";a(43);var n=a(159),r=(a(161),a(264),{methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",JSON.stringify({page:1,path:""})),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}),o=a(491),c=a(499),s=Object(n.b)({components:{PageInfo:c.a,RecoIcon:o.b},props:["item","currentPage","currentTag"]}),i=(a(501),a(15)),u=Object(i.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item",on:{click:function(e){return t.$router.push(t.item.path)}}},[t.item.frontmatter.sticky?a("reco-icon",{attrs:{icon:"reco-sticky"}}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("reco-icon",{attrs:{icon:"reco-lock"}}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"ff2c8be0",null).exports,g=a(490),l=Object(n.b)({mixins:[r],components:{NoteAbstractItem:u},props:["data","currentTag"],setup:function(t,e){var a=Object(g.a)(),r=Object(n.h)(t).data,o=Object(n.g)(1),c=Object(n.a)((function(){var t=(o.value-1)*a.$perPage,e=o.value*a.$perPage;return r.value.slice(t,e)}));return Object(n.d)((function(){o.value=a._getStoragePage()||1})),{currentPage:o,currentPageData:c,getCurrentPage:function(t){o.value=t,a._setStoragePage(t),e.emit("paginationChange",t)}}},watch:{$route:function(){this.currentPage=this._getStoragePage()||1}}}),p=(a(502),Object(i.a)(l,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},[t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),t._v(" "),a("pagation",{staticClass:"pagation",attrs:{total:t.data.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],2)}),[],!1,null,"6cc0658a",null));e.a=p.exports},505:function(t,e,a){"use strict";a(497)},506:function(t,e,a){"use strict";a(498)},508:function(t,e,a){"use strict";var n=a(66),r=(a(160),a(159)),o=a(120),c=a(490),s=Object(r.b)({props:{currentTag:{type:String,default:""}},setup:function(t,e){var a=Object(c.a)();return{tags:Object(r.a)((function(){return[{name:a.$recoLocales.all,path:"/tag/"}].concat(Object(n.a)(a.$tagesList))})),tagClick:function(t){e.emit("getCurrentTag",t)},getOneColor:o.b}}}),i=(a(506),a(15)),u=Object(i.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tags"},t._l(t.tags,(function(e,n){return a("span",{directives:[{name:"show",rawName:"v-show",value:!e.pages||e.pages&&e.pages.length>0,expression:"!item.pages || (item.pages && item.pages.length > 0)"}],key:n,class:{active:e.name==t.currentTag},style:{backgroundColor:t.getOneColor()},on:{click:function(a){return t.tagClick(e)}}},[t._v(t._s(e.name))])})),0)}),[],!1,null,"285c9a44",null);e.a=u.exports},539:function(t,e,a){},583:function(t,e,a){"use strict";a(539)},590:function(t,e,a){"use strict";a.r(e);a(90);var n=a(159),r=a(507),o=a(508),c=a(503),s=a(491),i=a(504),u=a(490),g=Object(n.b)({mixins:[i.a],components:{Common:r.a,NoteAbstract:c.a,TagList:o.a,ModuleTransition:s.a},setup:function(t,e){var a=Object(u.a)();return{tagClick:function(t){a.$route.path!==t.path&&a.$router.push({path:t.path})},paginationChange:function(t){setTimeout((function(){window.scrollTo(0,0)}),100)}}}}),l=(a(496),a(505),a(583),a(15)),p=Object(l.a)(g,(function(){var t=this.$createElement,e=this._self._c||t;return e("Common",{staticClass:"tags-wrapper",attrs:{sidebar:!1}},[e("ModuleTransition",[e("TagList",{directives:[{name:"show",rawName:"v-show",value:this.recoShowModule,expression:"recoShowModule"}],attrs:{currentTag:this.$recoLocales.all},on:{getCurrentTag:this.tagClick}})],1),this._v(" "),e("ModuleTransition",{attrs:{delay:"0.08"}},[e("note-abstract",{directives:[{name:"show",rawName:"v-show",value:this.recoShowModule,expression:"recoShowModule"}],staticClass:"list",attrs:{data:this.$recoPosts},on:{paginationChange:this.paginationChange}})],1)],1)}),[],!1,null,"615c9794",null);e.default=p.exports}}]); \ No newline at end of file diff --git a/assets/js/6.6356d18d.js b/assets/js/6.6356d18d.js new file mode 100644 index 0000000..adacdea --- /dev/null +++ b/assets/js/6.6356d18d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{492:function(t,e,a){},493:function(t,e,a){},494:function(t,e,a){},495:function(t,e,a){},496:function(t,e,a){"use strict";a(492)},497:function(t,e,a){},499:function(t,e,a){"use strict";a(91);var n=a(159),r=a(491),o=a(490),c=Object(n.b)({components:{RecoIcon:r.b},props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},setup:function(t,e){var a=Object(o.a)();return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"},goTags:function(t){a.$route.path!=="/tag/".concat(t,"/")&&a.$router.push({path:"/tag/".concat(t,"/")})},formatDateValue:function(t){return new Intl.DateTimeFormat(a.$lang).format(new Date(t))}}}}),s=(a(500),a(15)),i=Object(s.a)(c,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author?a("reco-icon",{attrs:{icon:"reco-account"}},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("reco-icon",{attrs:{icon:"reco-date"}},[a("span",[t._v(t._s(t.formatDateValue(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("reco-icon",{attrs:{icon:"reco-eye"}},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("reco-icon",{staticClass:"tags",attrs:{icon:"reco-tag"}},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return a.stopPropagation(),t.goTags(e)}}},[t._v(t._s(e))])})),0):t._e()],1)}),[],!1,null,"f875f3fc",null);e.a=i.exports},500:function(t,e,a){"use strict";a(493)},501:function(t,e,a){"use strict";a(494)},502:function(t,e,a){"use strict";a(495)},503:function(t,e,a){"use strict";a(43);var n=a(159),r=(a(161),a(264),{methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",JSON.stringify({page:1,path:""})),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}),o=a(491),c=a(499),s=Object(n.b)({components:{PageInfo:c.a,RecoIcon:o.b},props:["item","currentPage","currentTag"]}),i=(a(501),a(15)),u=Object(i.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item",on:{click:function(e){return t.$router.push(t.item.path)}}},[t.item.frontmatter.sticky?a("reco-icon",{attrs:{icon:"reco-sticky"}}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("reco-icon",{attrs:{icon:"reco-lock"}}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"ff2c8be0",null).exports,g=a(490),l=Object(n.b)({mixins:[r],components:{NoteAbstractItem:u},props:["data","currentTag"],setup:function(t,e){var a=Object(g.a)(),r=Object(n.h)(t).data,o=Object(n.g)(1),c=Object(n.a)((function(){var t=(o.value-1)*a.$perPage,e=o.value*a.$perPage;return r.value.slice(t,e)}));return Object(n.d)((function(){o.value=a._getStoragePage()||1})),{currentPage:o,currentPageData:c,getCurrentPage:function(t){o.value=t,a._setStoragePage(t),e.emit("paginationChange",t)}}},watch:{$route:function(){this.currentPage=this._getStoragePage()||1}}}),p=(a(502),Object(i.a)(l,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},[t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),t._v(" "),a("pagation",{staticClass:"pagation",attrs:{total:t.data.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],2)}),[],!1,null,"6cc0658a",null));e.a=p.exports},505:function(t,e,a){"use strict";a(497)},529:function(t,e,a){},571:function(t,e,a){"use strict";a(529)},588:function(t,e,a){"use strict";a.r(e);a(90);var n=a(159),r=a(507),o=a(503),c=a(491),s=a(87),i=a(120),u=a(504),g=a(490),l=Object(n.b)({mixins:[u.a],components:{Common:r.a,NoteAbstract:o.a,ModuleTransition:c.a},setup:function(t,e){var a=Object(g.a)();return{posts:Object(n.a)((function(){var t=a.$currentCategories.pages;return t=Object(s.a)(t),Object(s.c)(t),t})),title:Object(n.a)((function(){return a.$currentCategories.key})),getCurrentTag:function(t){e.emit("currentTag",t)},paginationChange:function(t){setTimeout((function(){window.scrollTo(0,0)}),100)},getOneColor:i.b}}}),p=(a(496),a(505),a(571),a(15)),f=Object(p.a)(l,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Common",{staticClass:"categories-wrapper",attrs:{sidebar:!1}},[a("ModuleTransition",[a("ul",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"category-wrapper"},t._l(t.$categoriesList,(function(e,n){return a("li",{directives:[{name:"show",rawName:"v-show",value:e.pages.length>0,expression:"item.pages.length > 0"}],key:n,staticClass:"category-item",class:t.title==e.name?"active":""},[a("router-link",{attrs:{to:e.path}},[a("span",{staticClass:"category-name"},[t._v(t._s(e.name))]),t._v(" "),a("span",{staticClass:"post-num",style:{backgroundColor:t.getOneColor()}},[t._v(t._s(e.pages.length))])])],1)})),0)]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[a("note-abstract",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"list",attrs:{data:t.posts},on:{paginationChange:t.paginationChange}})],1)],1)}),[],!1,null,"1e68bc8d",null);e.default=f.exports}}]); \ No newline at end of file diff --git a/assets/js/7.2141c153.js b/assets/js/7.2141c153.js new file mode 100644 index 0000000..8cb8955 --- /dev/null +++ b/assets/js/7.2141c153.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{490:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));n(44),n(45);var o=n(96);function r(){var e=Object(o.d)();if(!e)throw new Error("must be called in setup");return e||{}}},492:function(e,t,n){},496:function(e,t,n){"use strict";n(492)},511:function(e,t,n){},545:function(e,t,n){"use strict";n(511)},587:function(e,t,n){"use strict";n.r(t);var o=n(159),r=n(490),c=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],u=Object(o.b)({setup:function(e,t){var n=Object(r.a)(),u=Object(o.a)((function(){return!1!==n.$themeConfig.noFoundPageByTencent}));return Object(o.d)((function(){if(u.value){var e=document.createElement("script");e.setAttribute("homePageName","回到首页"),e.setAttribute("homePageUrl",n.$site.base),e.setAttribute("src","//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js"),document.body.append(e)}})),{noFoundPageByTencent:u,getMsg:function(){return c[Math.floor(Math.random()*c.length)]}}}}),s=(n(496),n(545),n(15)),i=Object(s.a)(u,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.noFoundPageByTencent?e._e():n("section",{staticClass:"theme-container"},[n("article",{staticClass:"content"},[n("h1",[e._v("404")]),e._v(" "),n("blockquote",[e._v(e._s(e.getMsg()))]),e._v(" "),n("router-link",{attrs:{to:"/"}},[e._v("Take me home.")])],1)])}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/8.e3d6ceb6.js b/assets/js/8.e3d6ceb6.js new file mode 100644 index 0000000..5fdb273 --- /dev/null +++ b/assets/js/8.e3d6ceb6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{492:function(e,t,n){},496:function(e,t,n){"use strict";n(492)},540:function(e,t,n){},584:function(e,t,n){"use strict";n(540)},591:function(e,t,n){"use strict";n.r(t);n(266),n(267),n(91),n(27),n(64),n(268),n(160);var a=n(159),o=n(507),s=n(491),r=n(504),i=n(490),c=Object(a.b)({name:"TimeLine",mixins:[r.a],components:{Common:o.a,ModuleTransition:s.a},setup:function(e,t){var n=Object(i.a)();return{go:function(e){n.$router.push({path:e})},dateFormat:function(e,t){e=function(e){var t=new Date(e).toJSON();return new Date(+new Date(t)+288e5).toISOString().replace(/T/g," ").replace(/\.[\d]{3}Z/,"").replace(/-/g,"/")}(e);var n=new Date(e),a=n.getMonth()+1,o=n.getDate();return"".concat(a,"-").concat(o)}}}}),l=(n(496),n(584),n(15)),u=Object(l.a)(c,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Common",{staticClass:"timeline-wrapper",attrs:{sidebar:!1}},[n("ul",{staticClass:"timeline-content"},[n("ModuleTransition",[n("li",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"desc"},[e._v(e._s(e.$recoLocales.timeLineMsg))])]),e._v(" "),e._l(e.$recoPostsForTimeline,(function(t,a){return n("ModuleTransition",{key:a,attrs:{delay:String(.08*(a+1))}},[n("li",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}]},[n("h3",{staticClass:"year"},[e._v(e._s(t.year))]),e._v(" "),n("ul",{staticClass:"year-wrapper"},e._l(t.data,(function(t,a){return n("li",{key:a},[n("span",{staticClass:"date"},[e._v(e._s(e.dateFormat(t.frontmatter.date)))]),e._v(" "),n("span",{staticClass:"title",on:{click:function(n){return e.go(t.path)}}},[e._v(e._s(t.title))])])})),0)])])}))],2)])}),[],!1,null,"42b59284",null);t.default=u.exports}}]); \ No newline at end of file diff --git a/assets/js/9.973d1d99.js b/assets/js/9.973d1d99.js new file mode 100644 index 0000000..f11a335 --- /dev/null +++ b/assets/js/9.973d1d99.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{541:function(t,e,n){},585:function(t,e,n){"use strict";n(541)},616:function(t,e,n){"use strict";n.r(e);var i=n(159),r=Object(i.b)({functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}}),p=(n(585),n(15)),a=Object(p.a)(r,void 0,void 0,!1,null,"08862138",null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/app.72629fdf.js b/assets/js/app.72629fdf.js new file mode 100644 index 0000000..b47ed87 --- /dev/null +++ b/assets/js/app.72629fdf.js @@ -0,0 +1,58 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],f=0,p=[];f=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||l(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function w(t,e){return b.call(t,e)}function x(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var _=/-(\w)/g,k=x((function(t){return t.replace(_,(function(t,e){return e?e.toUpperCase():""}))})),A=x((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),C=/\B([A-Z])/g,D=x((function(t){return t.replace(C,"-$1").toLowerCase()}));var E=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function S(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function O(t,e){for(var n in e)t[n]=e[n];return t}function $(t){for(var e={},n=0;n0,J=Q&&Q.indexOf("edge/")>0,Z=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===G),X=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),tt={}.watch,et=!1;if(H)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,nt)}catch(t){}var rt=function(){return void 0===q&&(q=!H&&!W&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),q},ot=H&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var at,st="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);at="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=j,ct=0,lt=function(){this.id=ct++,this.subs=[]};lt.prototype.addSub=function(t){this.subs.push(t)},lt.prototype.removeSub=function(t){y(this.subs,t)},lt.prototype.depend=function(){lt.target&<.target.addDep(this)},lt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(i&&!w(o,"default"))a=!1;else if(""===a||a===D(t)){var u=Ut(String,o.type);(u<0||s0&&(fe((u=t(u,(n||"")+"_"+r))[0])&&fe(l)&&(f[c]=mt(l.text+u[0].text),u.shift()),f.push.apply(f,u)):s(u)?fe(l)?f[c]=mt(l.text+u):""!==u&&f.push(mt(u)):fe(u)&&fe(l)?f[c]=mt(l.text+u.text):(a(e._isVList)&&i(u.tag)&&o(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+r+"__"),f.push(u)));return f}(t):void 0}function fe(t){return i(t)&&i(t.text)&&!1===t.isComment}function pe(t,e){if(t){for(var n=Object.create(null),r=st?Reflect.ownKeys(t):Object.keys(t),o=0;o0,a=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!i&&!n.$hasNormal)return n;for(var u in o={},t)t[u]&&"$"!==u[0]&&(o[u]=me(e,u,t[u]))}else o={};for(var c in e)c in o||(o[c]=ye(e,c));return t&&Object.isExtensible(t)&&(t._normalized=o),N(o,"$stable",a),N(o,"$key",s),N(o,"$hasNormal",i),o}function me(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({}),e=(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:le(t))&&t[0];return t&&(!e||1===t.length&&e.isComment&&!ve(e))?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function ye(t,e){return function(){return t[e]}}function be(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;rdocument.createEvent("Event").timeStamp&&(cn=function(){return ln.now()})}function fn(){var t,e;for(un=cn(),an=!0,en.sort((function(t,e){return t.id-e.id})),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,ne(fn))}}(this)},dn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||u(t)||this.deep){var e=this.value;if(this.value=t,this.user){var n='callback for watcher "'+this.expression+'"';Vt(this.cb,this.vm,[t,e],this.vm,n)}else this.cb.call(this.vm,t,e)}}},dn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},dn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},dn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var hn={enumerable:!0,configurable:!0,get:j,set:j};function vn(t,e,n){hn.get=function(){return this[e][n]},hn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,hn)}function gn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&kt(!1);var i=function(i){o.push(i);var a=Lt(i,e,n,t);Dt(r,i,a),i in t||vn(t,"_props",i)};for(var a in e)i(a);kt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?j:E(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;l(e=t._data="function"==typeof e?function(t,e){pt();try{return t.call(e,e)}catch(t){return qt(t,e,"data()"),{}}finally{dt()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&w(r,i)||(a=void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&vn(t,"_data",i))}var a;Ct(e,!0)}(t):Ct(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=rt();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new dn(t,a||j,j,mn)),o in t||yn(t,o,i)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function Sn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&On(n,i,r,o)}}}function On(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=_n++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Rt(kn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ye(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=de(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return Ne(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ne(t,e,n,r,o,!0)};var i=n&&n.data;Dt(t,"$attrs",i&&i.attrs||r,null,!0),Dt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate"),function(t){var e=pe(t.$options.inject,t);e&&(kt(!1),Object.keys(e).forEach((function(n){Dt(t,n,e[n])})),kt(!0))}(e),gn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),tn(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(An),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Et,t.prototype.$delete=St,t.prototype.$watch=function(t,e,n){if(l(e))return xn(this,t,e,n);(n=n||{}).user=!0;var r=new dn(this,t,e,n);if(n.immediate){var o='callback for immediate watcher "'+r.expression+'"';pt(),Vt(e,this,[r.value],this,o),dt()}return function(){r.teardown()}}}(An),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o1?S(n):n;for(var r=S(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;iparseInt(this.max)&&On(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)On(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Sn(t,(function(t){return En(e,t)}))})),this.$watch("exclude",(function(e){Sn(t,(function(t){return!En(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=He(t),n=e&&e.componentOptions;if(n){var r=Dn(n),o=this.include,i=this.exclude;if(o&&(!r||!En(o,r))||i&&r&&En(i,r))return e;var a=this.cache,s=this.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[u]?(e.componentInstance=a[u].componentInstance,y(s,u),s.push(u)):(this.vnodeToCache=e,this.keyToCache=u),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return B}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:O,mergeOptions:Rt,defineReactive:Dt},t.set=Et,t.delete=St,t.nextTick=ne,t.observable=function(t){return Ct(t),t},t.options=Object.create(null),M.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,O(t.options.components,jn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=S(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Rt(this.options,t),this}}(t),Cn(t),function(t){M.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(An),Object.defineProperty(An.prototype,"$isServer",{get:rt}),Object.defineProperty(An.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(An,"FunctionalRenderContext",{value:Pe}),An.version="2.6.14";var Tn=g("style,class"),Fn=g("input,textarea,option,select,progress"),Pn=g("contenteditable,draggable,spellcheck"),In=g("events,caret,typing,plaintext-only"),Rn=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Mn="http://www.w3.org/1999/xlink",Ln=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Bn=function(t){return Ln(t)?t.slice(6,t.length):""},zn=function(t){return null==t||!1===t};function Nn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Un(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=Un(e,n.data));return function(t,e){if(i(t)||i(e))return qn(t,Vn(e));return""}(e.staticClass,e.class)}function Un(t,e){return{staticClass:qn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function qn(t,e){return t?e?t+" "+e:t:e||""}function Vn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?dr(t,e,n):Rn(e)?zn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Pn(e)?t.setAttribute(e,function(t,e){return zn(e)||"false"===e?"false":"contenteditable"===t&&In(e)?e:"true"}(e,n)):Ln(e)?zn(n)?t.removeAttributeNS(Mn,Bn(e)):t.setAttributeNS(Mn,e,n):dr(t,e,n)}function dr(t,e,n){if(zn(n))t.removeAttribute(e);else{if(Y&&!K&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var hr={create:fr,update:fr};function vr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Nn(e),u=n._transitionClasses;i(u)&&(s=qn(s,Vn(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var gr,mr={create:vr,update:vr};function yr(t,e,n){var r=gr;return function o(){var i=e.apply(null,arguments);null!==i&&xr(t,o,n,r)}}var br=Qt&&!(X&&Number(X[1])<=53);function wr(t,e,n,r){if(br){var o=un,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}gr.addEventListener(t,e,et?{capture:n,passive:r}:n)}function xr(t,e,n,r){(r||gr).removeEventListener(t,e._wrapper||e,n)}function _r(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};gr=e.elm,function(t){if(i(t.__r)){var e=Y?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}i(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),se(n,r,wr,xr,yr,e.context),gr=void 0}}var kr,Ar={create:_r,update:_r};function Cr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},u=e.data.domProps||{};for(n in i(u.__ob__)&&(u=e.data.domProps=O({},u)),s)n in u||(a[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var c=o(r)?"":String(r);Dr(a,c)&&(a.value=c)}else if("innerHTML"===n&&Gn(a.tagName)&&o(a.innerHTML)){(kr=kr||document.createElement("div")).innerHTML=""+r+"";for(var l=kr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function Dr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Er={create:Cr,update:Cr},Sr=x((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Or(t){var e=$r(t.style);return t.staticStyle?O(t.staticStyle,e):e}function $r(t){return Array.isArray(t)?$(t):"string"==typeof t?Sr(t):t}var jr,Tr=/^--/,Fr=/\s*!important$/,Pr=function(t,e,n){if(Tr.test(e))t.style.setProperty(e,n);else if(Fr.test(n))t.style.setProperty(D(e),n.replace(Fr,""),"important");else{var r=Rr(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(Br).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Nr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Br).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Ur(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&O(e,qr(t.name||"v")),O(e,t),e}return"string"==typeof t?qr(t):void 0}}var qr=x((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Vr=H&&!K,Hr="transition",Wr="transitionend",Gr="animation",Qr="animationend";Vr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Hr="WebkitTransition",Wr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Gr="WebkitAnimation",Qr="webkitAnimationEnd"));var Yr=H?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Kr(t){Yr((function(){Yr(t)}))}function Jr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),zr(t,e))}function Zr(t,e){t._transitionClasses&&y(t._transitionClasses,e),Nr(t,e)}function Xr(t,e,n){var r=eo(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?Wr:Qr,u=0,c=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++u>=a&&c()};setTimeout((function(){u0&&(n="transition",l=a,f=i.length):"animation"===e?c>0&&(n="animation",l=c,f=u.length):f=(n=(l=Math.max(a,c))>0?a>c?"transition":"animation":null)?"transition"===n?i.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&to.test(r[Hr+"Property"])}}function no(t,e){for(;t.length1}function uo(t,e){!0!==e.data.show&&oo(e)}var co=function(t){var e,n,r={},u=t.modules,c=t.nodeOps;for(e=0;eh?b(t,o(n[m+1])?null:n[m+1].elm,n,d,m,r):d>m&&x(e,p,h)}(p,g,m,n,l):i(m)?(i(t.text)&&c.setTextContent(p,""),b(p,null,m,0,m.length-1,n)):i(g)?x(g,0,g.length-1):i(t.text)&&c.setTextContent(p,""):t.text!==e.text&&c.setTextContent(p,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function C(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(P(vo(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function ho(t,e){return e.every((function(e){return!P(e,t)}))}function vo(t){return"_value"in t?t._value:t.value}function go(t){t.target.composing=!0}function mo(t){t.target.composing&&(t.target.composing=!1,yo(t.target,"input"))}function yo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function bo(t){return!t.componentInstance||t.data&&t.data.transition?t:bo(t.componentInstance._vnode)}var wo={model:lo,show:{bind:function(t,e,n){var r=e.value,o=(n=bo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,oo(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=bo(n)).data&&n.data.transition?(n.data.show=!0,r?oo(n,(function(){t.style.display=t.__vOriginalDisplay})):io(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},xo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function _o(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?_o(He(e.children)):t}function ko(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[k(i)]=o[i];return e}function Ao(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Co=function(t){return t.tag||ve(t)},Do=function(t){return"show"===t.name},Eo={name:"transition",props:xo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Co)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=_o(o);if(!i)return o;if(this._leaving)return Ao(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var u=(i.data||(i.data={})).transition=ko(this),c=this._vnode,l=_o(c);if(i.data.directives&&i.data.directives.some(Do)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!ve(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=O({},u);if("out-in"===r)return this._leaving=!0,ue(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ao(t,o);if("in-out"===r){if(ve(i))return c;var p,d=function(){p()};ue(u,"afterEnter",d),ue(u,"enterCancelled",d),ue(f,"delayLeave",(function(t){p=t}))}}return o}}},So=O({tag:String,moveClass:String},xo);function Oo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function $o(t){t.data.newPos=t.elm.getBoundingClientRect()}function jo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete So.mode;var To={Transition:Eo,TransitionGroup:{props:So,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=ko(this),s=0;s-1?Yn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Yn[t]=/HTMLUnknownElement/.test(e.toString())},O(An.options.directives,wo),O(An.options.components,To),An.prototype.__patch__=H?co:j,An.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=gt),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new dn(t,r,j,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,tn(t,"mounted")),t}(this,t=t&&H?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},H&&setTimeout((function(){B.devtools&&ot&&ot.emit("init",An)}),0),e.default=An},function(t,e,n){var r=n(0),o=n(42).f,i=n(31),a=n(18),s=n(125),u=n(131),c=n(104);t.exports=function(t,e){var n,l,f,p,d,h=t.target,v=t.global,g=t.stat;if(n=v?r:g?r[h]||s(h,{}):(r[h]||{}).prototype)for(l in e){if(p=e[l],f=t.noTargetGet?(d=o(n,l))&&d.value:n[l],!c(v?l:h+(g?".":"#")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;u(p,f)}(t.sham||f&&f.sham)&&i(p,"sham",!0),a(n,l,p,t)}}},function(t,e,n){var r=n(69),o=Function.prototype,i=o.bind,a=o.call,s=r&&i.bind(a,a);t.exports=r?function(t){return t&&s(t)}:function(t){return t&&function(){return a.apply(t,arguments)}}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t){return"function"==typeof t}},function(t,e,n){var r=n(0),o=n(52),i=n(11),a=n(97),s=n(53),u=n(171),c=o("wks"),l=r.Symbol,f=l&&l.for,p=u?l:l&&l.withoutSetter||a;t.exports=function(t){if(!i(c,t)||!s&&"string"!=typeof c[t]){var e="Symbol."+t;s&&i(l,t)?c[t]=l[t]:c[t]=u&&f?f(e):p(e)}return c[t]}},function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var r=n(1); +/** + * vue-class-component v7.2.6 + * (c) 2015-present Evan You + * @license MIT + */function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:{};e.name=e.name||t._componentTag||t.name;var n=t.prototype;Object.getOwnPropertyNames(n).forEach((function(t){if("constructor"!==t)if(d.indexOf(t)>-1)e[t]=n[t];else{var r=Object.getOwnPropertyDescriptor(n,t);void 0!==r.value?"function"==typeof r.value?(e.methods||(e.methods={}))[t]=r.value:(e.mixins||(e.mixins=[])).push({data:function(){return i({},t,r.value)}}):(r.get||r.set)&&((e.computed||(e.computed={}))[t]={get:r.get,set:r.set})}})),(e.mixins||(e.mixins=[])).push({data:function(){return p(this,t)}});var o=t.__decorators__;o&&(o.forEach((function(t){return t(e)})),delete t.__decorators__);var a=Object.getPrototypeOf(t.prototype),c=a instanceof r.default?a.constructor:r.default,l=c.extend(e);return g(l,t,c),s()&&u(l,t),l}var v={prototype:!0,arguments:!0,callee:!0,caller:!0};function g(t,e,n){Object.getOwnPropertyNames(e).forEach((function(r){if(!v[r]){var i=Object.getOwnPropertyDescriptor(t,r);if(!i||i.configurable){var a,s,u=Object.getOwnPropertyDescriptor(e,r);if(!l){if("cid"===r)return;var c=Object.getOwnPropertyDescriptor(n,r);if(a=u.value,s=o(a),null!=a&&("object"===s||"function"===s)&&c&&c.value===u.value)return}0,Object.defineProperty(t,r,u)}}}))}function m(t){return"function"==typeof t?h(t):function(e){return h(e,t)}}m.registerHooks=function(t){d.push.apply(d,a(t))},e.b=m},function(t,e,n){var r=n(134),o=n(18),i=n(297);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e,n){var r=n(4);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,e,n){var r=n(69),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,n){var r=n(3),o=n(20),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},function(t,e,n){var r=n(0),o=n(107),i=r.String;t.exports=function(t){if("Symbol"===o(t))throw TypeError("Cannot convert a Symbol value to a string");return i(t)}},function(t,e,n){var r=n(0),o=n(14),i=r.String,a=r.TypeError;t.exports=function(t){if(o(t))return t;throw a(i(t)+" is not an object")}},function(t,e,n){var r=n(5);t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,s){var u,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),a?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=u):o&&(u=s?function(){o.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:o),u)if(c.functional){c._injectStyles=u;var l=c.render;c.render=function(t,e){return u.call(e),l(t,e)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,u):[u]}return{exports:t,options:c}}n.d(e,"a",(function(){return r}))},function(t,e,n){var r=n(0),o=n(9),i=n(173),a=n(172),s=n(13),u=n(99),c=r.TypeError,l=Object.defineProperty,f=Object.getOwnPropertyDescriptor;e.f=o?a?function(t,e,n){if(s(t),e=u(e),s(n),"function"==typeof t&&"prototype"===e&&"value"in n&&"writable"in n&&!n.writable){var r=f(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(s(t),e=u(e),s(n),i)try{return l(t,e,n)}catch(t){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));n(92),n(84),n(28),n(8),n(265),n(82),n(83),n(196),n(429),n(93);var r=n(88);function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e1?arguments[1]:void 0)}})},function(t,e,n){var r=n(3),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},function(t,e,n){var r=n(0),o=n(5),i=n(71),a=r.TypeError;t.exports=function(t){if(o(t))return t;throw a(i(t)+" is not a function")}},function(t,e,n){var r=n(9),o=n(16),i=n(57);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){t.exports=n(464)},function(t,e,n){var r=n(56);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(3);t.exports=r({}.isPrototypeOf)},function(t,e,n){var r,o,i,a=n(276),s=n(0),u=n(3),c=n(14),l=n(31),f=n(11),p=n(124),d=n(101),h=n(72),v=s.TypeError,g=s.WeakMap;if(a||p.state){var m=p.state||(p.state=new g),y=u(m.get),b=u(m.has),w=u(m.set);r=function(t,e){if(b(m,t))throw new v("Object already initialized");return e.facade=t,w(m,t,e),e},o=function(t){return y(m,t)||{}},i=function(t){return b(m,t)}}else{var x=d("state");h[x]=!0,r=function(t,e){if(f(t,x))throw new v("Object already initialized");return e.facade=t,l(t,x,e),e},o=function(t){return f(t,x)?t[x]:{}},i=function(t){return f(t,x)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw v("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){"use strict";var r=n(193).charAt,o=n(12),i=n(35),a=n(176),s=i.set,u=i.getterFor("String Iterator");a(String,"String",(function(t){s(this,{type:"String Iterator",string:o(t),index:0})}),(function(){var t,e=u(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){var r=n(215),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){var r=n(0),o=n(194),i=n(195),a=n(169),s=n(31),u=n(6),c=u("iterator"),l=u("toStringTag"),f=a.values,p=function(t,e){if(t){if(t[c]!==f)try{s(t,c,f)}catch(e){t[c]=f}if(t[l]||s(t,l,e),o[e])for(var n in a)if(t[n]!==a[n])try{s(t,n,a[n])}catch(e){t[n]=a[n]}}};for(var d in o)p(r[d]&&r[d].prototype,d);p(i,"DOMTokenList")},function(t,e,n){var r=n(19);t.exports=r("navigator","userAgent")||""},function(t,e,n){var r,o=n(13),i=n(126),a=n(129),s=n(72),u=n(175),c=n(98),l=n(101),f=l("IE_PROTO"),p=function(){},d=function(t){return" + + + + + + + + +

C/C++/MySQL/Redis/操作系统/八股文/Leetcode

7/11/2022 知识

# 一、C/C++语言相关,常见题型

# 1、static

# 修饰的对象

1、变量 2、函数

# 场景

1、函数体

  • 作用范围 只能在函数内访问

2、模块内(文件内)

  • 作用范围 +
    • 源文件 在该文件类使用
    • 头文件 在包含的文件内都可以使用
  • 避免命名重复

3、类中

  • 修饰成员变量:属于整个类所拥有,无this指针
  • 修饰成员函数:属于整个类所拥有,无this指针,只能访问静态成员变量,不能访问成员函数成员变量

img

# 2、const

# 使用场景

1、变量;2、函数参数;3、函数返回值;4、常成员函数

  • 局部const

img

# 未完待续。。。

+ + + diff --git a/blogs/acknowledge/c1000ktest.html b/blogs/acknowledge/c1000ktest.html new file mode 100644 index 0000000..5f1a827 --- /dev/null +++ b/blogs/acknowledge/c1000ktest.html @@ -0,0 +1,628 @@ + + + + + + c1000k,单机百万并发测试 | 斯人如彩虹 + + + + + + + + + + + +

c1000k,单机百万并发测试

6/19/2022 知识

# c1000k,单机百万并发测试

使用epoll实现的reactor服务端,开启一个进程多个端口,然后使用多个客户端 ip 多端口来连接

​ 1、在16g内存的笔记本上

​ 2、用四台虚拟机(一台服务器 三台客户端)

​ 3、使用epoll写的reactor反应堆服务端,源码在最下面

​ 4、多线程的客户端,源码在最下面

​ 并发:一个服务器能够同时承载客户端的数量

​ 服务器能同时建立连接的数量 是并发的基础

​ 承载 100w 在200ms内返回

​ 这里回声服务器 没有下列多余影响

​ 1、数据库 2、网络带宽 3、内存操作 4、日志

# 一、一个连接的定义

# 1.1 服务器理论最大并发数

​ 一个连接包含五元组,源ip(sip)、目的ip(dip)源端口(sport)、目的端、(dport) 协议

2 的 32 次方(源ip数)× 2的 16 次方(源port数)× 2 的 32 次方(目的ip数)× 2的 16 次方(目的port数)大约等于四百多亿亿亿

(不过每条连接都会消耗服内存,实践中绝不可能达到这个理论数字。)

# 1.2 测试实验配置

这里使用一个服务端ip * 100服务端端口 * 60000客户端端口 * 3 个客户端 理论上可以达到200w连接 奈何笔记本内存不够

sip 多个客户端 这里采用三个虚拟机(三个ip)

dip 服务器IP只有一个 使用一个虚拟机(一个ip)

sport 客户端数量 使用60000个端口

dport 服务的端口 使用100个端口

proto tcp 使用tcp连接

# 1.3 linux系统的连接相关默认配置

看看ubuntu20.04的默认配置

root@luo:~# ulimit -n
+1024
+root@luo:~# sysctl -a |grep mem
+...
+net.ipv4.tcp_mem = 92880	123843	185760 # 92880* 4k 300m 500m 700m 当协议栈占用空间500m时优化 大于700m时不再分配
+net.ipv4.tcp_rmem = 4096	131072	6291456
+net.ipv4.tcp_wmem = 4096	16384	4194304
+...
+net.ipv4.ip_local_port_range = 32768	60999
+fs.file-max = 9223372036854775807
+net.nf_conntrack_max = 65536
+
1
2
3
4
5
6
7
8
9
10
11

# 1.4下面解释配置的作用

1、net.ipv4.tcp_mem TCP使用了内存页面数

​ net.ipv4.tcp_rmem 为TCP socket预留用于接收缓冲的内存 +​ net.ipv4.tcp_wmem 为TCP socket预留用于发送缓冲的内存

​ tcp_wmem tcp_rmem服务器传输大文件就调大 传输字符 调小(但可能ssh 都会很慢) 一个fd就是tcp_wmem tcp_rmem所占用空间 使用更少的内存

2、ulimit -n 和 net.nf_conntrack_max fd 限制 ulimit 限制fd 数量

​ 默认单个进程打开的fd为1000多个 可以修改ulimit -n 1048576(临时修改) 或 /etc/security/limits.conf(永久修改)

accept: Too many open files
+
1

3、net.ipv4.ip_local_port_range 默认用户只能用30000以上的端口建立连接 要自己改

​ 建立连接时 服务端端口从三万多开始挨个遍历 找到一个没有被占用的

connections: 27999, sockfd:28002, time_used:3193
+connect: Cannot assign requested address
+error : Cannot assign requested address
+
1
2
3

4、net.nf_conntrack_max 服务端建立连接的syn连接数

​ iptables基于netfilter的应用程序 iptables会调用netfilrer的接口

​ 报文sk_buff从网卡上到达协议栈时会经过netfilter

conntion timeout
+
1

# 二、实验开始

# 2.1 使用sysctl临时修改配置(重启后失效)

#send buffer 服务器传输大文件就调大  传输字符 调小(但可能ssh 都会很慢) 一个fd就是tcp_wmem  tcp_rmem所占用空间 使用更少的内存
+sysctl -w net.ipv4.tcp_wmem="2048 2048 4096"
+sysctl -w net.ipv4.tcp_rmem="2048 2048 4096"
+
+sysctl -w net.ipv4.tcp_mem="262144 524288 786432" # 262144*4k 1g 2g 3g 当协议栈占用空间2g时优化 大于3g时不再分配
+sysctl -w net.ipv4.ip_local_port_range="1025 64000"
+ulimit -n 1048576
+modprobe ip_conntrack
+sysctl -w net.nf_conntrack_max=1048576
+
1
2
3
4
5
6
7
8
9

# 2.2 编译最下方源码 开启c/s回声服务器看效果

send[fd=980328], [32]Hello Server: client --> 329478

1、服务端启动后看一下内存

root@luo:~# free
+              total        used        free      shared  buff/cache   available
+Mem:        8117280     2376860     5343540        1620      396880     5485128
+Swap:       4001788           0     4001788
+
1
2
3
4

2、服务端维持980000连接时的内存

root@luo:~# free
+              total        used        free      shared  buff/cache   available
+Mem:        8117280     6973192      103992           0     1040096      913852
+Swap:       4001788     1090996     2910792
+
+
1
2
3
4
5

3、计算单条连接消耗内存

6973192 - 2376860 = 4596332 ÷ 800000= 4.69

由于笔记本开了4台虚拟机一起跑 连接总是到90多万的时候虚拟机崩溃 最多980000

平均计算一个连接4k左右

# 三、测试中的一些问题以及优化方向

文件描述符fd不够

​ 端口数量不够

​ accept 全连接队列满了

​ 客户端超时 服务端不会ack 连接队列满了?

半连接全连接 连接队列的问题 满了后需要排队

会导致网络抖动 accept线程池竞争 多线程accept

多线程的网络模型 redis memcached nginx

​ 1、accept与recv/send的fd分开

​ 2、多线程accept

​ nginx memcached多进程更符合业务处理 固定多线程接入 多线程业务处理

# 源码

reactor.c

#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <sys/epoll.h>
+#include <arpa/inet.h>
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+
+#define BUFFER_LENGTH       1024
+#define MAX_EPOLL_EVENTS    1024*1024 //connection 
+#define MAX_EPOLL_ITEM      102400 //con
+#define SERVER_PORT         8888
+
+#define LISTEN_PORT_COUNT   100
+
+typedef int NCALLBACK(int ,int, void*);
+
+struct ntyevent {
+    int fd;
+    int events;
+    void *arg;
+    int (*callback)(int fd, int events, void *arg);
+    
+    int status;
+    char buffer[BUFFER_LENGTH];
+    int length;
+    long last_active;
+};
+
+
+
+struct ntyreactor {
+    int epfd;
+    struct ntyevent *events; // 1024 * 1024
+};
+
+
+int recv_cb(int fd, int events, void *arg);
+int send_cb(int fd, int events, void *arg);
+
+
+void nty_event_set(struct ntyevent *ev, int fd, NCALLBACK callback, void *arg) {
+
+    ev->fd = fd;
+    ev->callback = callback;
+    ev->events = 0;
+    ev->arg = arg;
+    ev->last_active = time(NULL);
+
+    return ;
+    
+}
+
+
+int nty_event_add(int epfd, int events, struct ntyevent *ev) {
+
+    struct epoll_event ep_ev = {0, {0}};
+    ep_ev.data.ptr = ev;
+    ep_ev.events = ev->events = events;
+
+    int op;
+    if (ev->status == 1) {
+        op = EPOLL_CTL_MOD;
+    } else {
+        op = EPOLL_CTL_ADD;
+        ev->status = 1;
+    }
+
+    if (epoll_ctl(epfd, op, ev->fd, &ep_ev) < 0) {
+        printf("event add failed [fd=%d], events[%d]\n", ev->fd, events);
+        return -1;
+    }
+
+    return 0;
+}
+
+int nty_event_del(int epfd, struct ntyevent *ev) {
+
+    struct epoll_event ep_ev = {0, {0}};
+
+    if (ev->status != 1) {
+        return -1;
+    }
+
+    ep_ev.data.ptr = ev;
+    ev->status = 0;
+    epoll_ctl(epfd, EPOLL_CTL_DEL, ev->fd, &ep_ev);
+
+    return 0;
+}
+
+int recv_cb(int fd, int events, void *arg) {
+
+    struct ntyreactor *reactor = (struct ntyreactor*)arg;
+    struct ntyevent *ev = reactor->events+fd;
+
+    int len = recv(fd, ev->buffer, BUFFER_LENGTH, 0);
+    nty_event_del(reactor->epfd, ev);
+
+    if (len > 0) {
+        
+        ev->length = len;
+        ev->buffer[len] = '\0';
+
+        printf("C[%d]:%s\n", fd, ev->buffer);
+
+        nty_event_set(ev, fd, send_cb, reactor);
+        nty_event_add(reactor->epfd, EPOLLOUT, ev);
+        
+        
+    } else if (len == 0) {
+
+        close(ev->fd);
+        printf("[fd=%d] pos[%ld], closed\n", fd, ev-reactor->events);
+         
+    } else {
+
+        close(ev->fd);
+        printf("recv[fd=%d] error[%d]:%s\n", fd, errno, strerror(errno));
+        
+    }
+
+    return len;
+}
+
+
+int send_cb(int fd, int events, void *arg) {
+
+    struct ntyreactor *reactor = (struct ntyreactor*)arg;
+    struct ntyevent *ev = reactor->events+fd;
+
+    int len = send(fd, ev->buffer, ev->length, 0);
+    if (len > 0) {
+        printf("send[fd=%d], [%d]%s\n", fd, len, ev->buffer);
+
+        nty_event_del(reactor->epfd, ev);
+        
+        nty_event_set(ev, fd, recv_cb, reactor);
+        nty_event_add(reactor->epfd, EPOLLIN, ev);
+        
+    } else {
+
+        close(ev->fd);
+
+        nty_event_del(reactor->epfd, ev);
+        printf("send[fd=%d] error %s\n", fd, strerror(errno));
+
+    }
+
+    return len;
+}
+
+int accept_cb(int fd, int events, void *arg) {
+
+    struct ntyreactor *reactor = (struct ntyreactor*)arg;
+    if (reactor == NULL) return -1;
+
+    struct sockaddr_in client_addr;
+    socklen_t len = sizeof(client_addr);
+
+    int clientfd;
+
+    if ((clientfd = accept(fd, (struct sockaddr*)&client_addr, &len)) == -1) {
+        if (errno != EAGAIN && errno != EINTR) {
+            
+        }
+        printf("accept: %s\n", strerror(errno));
+        return -1;
+    }
+
+    int i = 0;
+    do {
+#if 0
+        for (i = 0;i < MAX_EPOLL_EVENTS;i ++) {
+            if (reactor->events[i].status == 0) {
+                break;
+            }
+        }
+        if (i == MAX_EPOLL_EVENTS) {
+            printf("%s: max connect limit[%d]\n", __func__, MAX_EPOLL_EVENTS);
+            break;
+        }
+#endif
+        int flag = 0;
+        if ((flag = fcntl(clientfd, F_SETFL, O_NONBLOCK)) < 0) {
+            printf("%s: fcntl nonblocking failed, %d\n", __func__, MAX_EPOLL_EVENTS);
+            break;
+        }
+
+        nty_event_set(&reactor->events[clientfd], clientfd, recv_cb, reactor);
+        nty_event_add(reactor->epfd, EPOLLIN, &reactor->events[clientfd]);
+
+    } while (0);
+
+    printf("new connect [%s:%d][time:%ld], pos[%d]\n", 
+        inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port), reactor->events[i].last_active, i);
+
+    return 0;
+
+}
+
+int init_sock(short port) {
+
+    int fd = socket(AF_INET, SOCK_STREAM, 0);
+    fcntl(fd, F_SETFL, O_NONBLOCK);
+
+    struct sockaddr_in server_addr;
+    memset(&server_addr, 0, sizeof(server_addr));
+    server_addr.sin_family = AF_INET;
+    server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+    server_addr.sin_port = htons(port);
+
+    bind(fd, (struct sockaddr*)&server_addr, sizeof(server_addr));
+
+    if (listen(fd, 20) < 0) {
+        printf("listen failed : %s\n", strerror(errno));
+    }
+
+    printf("listen port : %d\n", port);
+
+    return fd;
+}
+
+
+int ntyreactor_init(struct ntyreactor *reactor) {
+
+    if (reactor == NULL) return -1;
+    memset(reactor, 0, sizeof(struct ntyreactor));
+
+    reactor->epfd = epoll_create(1);
+    if (reactor->epfd <= 0) {
+        printf("create epfd in %s err %s\n", __func__, strerror(errno));
+        return -2;
+    }
+
+    reactor->events = (struct ntyevent*)malloc((MAX_EPOLL_EVENTS) * sizeof(struct ntyevent));
+    if (reactor->events == NULL) {
+        printf("create epfd in %s err %s\n", __func__, strerror(errno));
+        close(reactor->epfd);
+        return -3;
+    }
+}
+
+int ntyreactor_destory(struct ntyreactor *reactor) {
+
+    close(reactor->epfd);
+    free(reactor->events);
+
+}
+
+
+
+int ntyreactor_addlistener(struct ntyreactor *reactor, int sockfd, NCALLBACK *acceptor) {
+
+    if (reactor == NULL) return -1;
+    if (reactor->events == NULL) return -1;
+
+    nty_event_set(&reactor->events[sockfd], sockfd, acceptor, reactor);
+    nty_event_add(reactor->epfd, EPOLLIN, &reactor->events[sockfd]);
+
+    return 0;
+}
+
+
+
+int ntyreactor_run(struct ntyreactor *reactor) {
+    if (reactor == NULL) return -1;
+    if (reactor->epfd < 0) return -1;
+    if (reactor->events == NULL) return -1;
+    
+    struct epoll_event events[MAX_EPOLL_ITEM];
+    
+    int checkpos = 0, i;
+
+    while (1) {
+#if 0
+        long now = time(NULL);
+        for (i = 0;i < 100;i ++, checkpos ++) {
+            if (checkpos == MAX_EPOLL_EVENTS) {
+                checkpos = 0;
+            }
+
+            if (reactor->events[checkpos].status != 1) {
+                continue;
+            }
+
+            long duration = now - reactor->events[checkpos].last_active;
+
+            if (duration >= 60) {
+                close(reactor->events[checkpos].fd);
+                printf("[fd=%d] timeout\n", reactor->events[checkpos].fd);
+                nty_event_del(reactor->epfd, &reactor->events[checkpos]);
+            }
+        }
+#endif
+        //                                  一次能从就绪队列带出数量 event长度 时间
+        int nready = epoll_wait(reactor->epfd, events, MAX_EPOLL_ITEM, 1000);
+        if (nready < 0) {
+            printf("epoll_wait error, exit\n");
+            continue;
+        }
+
+        for (i = 0;i < nready;i ++) {
+
+            struct ntyevent *ev = (struct ntyevent*)events[i].data.ptr;
+
+            if ((events[i].events & EPOLLIN) && (ev->events & EPOLLIN)) {
+                ev->callback(ev->fd, events[i].events, ev->arg);
+            }
+            if ((events[i].events & EPOLLOUT) && (ev->events & EPOLLOUT)) {
+                ev->callback(ev->fd, events[i].events, ev->arg);
+            }
+            
+        }
+
+    }
+}
+
+int main(int argc, char *argv[]) {
+
+    unsigned short port = SERVER_PORT;
+    if (argc == 2) {
+        port = atoi(argv[1]);
+    }
+    struct ntyreactor *reactor = (struct ntyreactor*)malloc(sizeof(struct ntyreactor));
+    ntyreactor_init(reactor);
+    
+
+    int listenfd[LISTEN_PORT_COUNT] = {0};
+    int i = 0;
+
+    for (i = 0;i < LISTEN_PORT_COUNT;i ++) {
+        listenfd[i] = init_sock(port+i);
+        ntyreactor_addlistener(reactor, listenfd[i], accept_cb);
+    }
+    
+    ntyreactor_run(reactor);
+
+    ntyreactor_destory(reactor);
+
+    for (i = 0;i < LISTEN_PORT_COUNT;i ++) {
+        close(listenfd[i]);
+    }
+    
+
+    return 0;
+}
+
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352

mul_port_client_epoll.c


+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/epoll.h>
+#include <errno.h>
+#include <netinet/tcp.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <fcntl.h>
+
+
+#define MAX_BUFFER      128
+#define MAX_EPOLLSIZE   (384*1024)
+#define MAX_PORT        100
+
+#define TIME_SUB_MS(tv1, tv2)  ((tv1.tv_sec - tv2.tv_sec) * 1000 + (tv1.tv_usec - tv2.tv_usec) / 1000)
+
+int isContinue = 0;
+
+static int ntySetNonblock(int fd) {
+    int flags;
+
+    flags = fcntl(fd, F_GETFL, 0);
+    if (flags < 0) return flags;
+    flags |= O_NONBLOCK;
+    if (fcntl(fd, F_SETFL, flags) < 0) return -1;
+    return 0;
+}
+
+static int ntySetReUseAddr(int fd) {
+    int reuse = 1;
+    return setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse));
+}
+
+
+
+int main(int argc, char **argv) {
+    if (argc <= 2) {
+        printf("Usage: %s ip port\n", argv[0]);
+        exit(0);
+    }
+
+    const char *ip = argv[1];
+    int port = atoi(argv[2]);
+    int connections = 0;
+    char buffer[128] = {0};
+    int i = 0, index = 0;
+
+    struct epoll_event events[MAX_EPOLLSIZE];
+    
+    int epoll_fd = epoll_create(MAX_EPOLLSIZE);
+    
+    strcpy(buffer, " Data From MulClient\n");
+        
+    struct sockaddr_in addr;
+    memset(&addr, 0, sizeof(struct sockaddr_in));
+    
+    addr.sin_family = AF_INET;
+    addr.sin_addr.s_addr = inet_addr(ip);
+
+    struct timeval tv_begin;
+    gettimeofday(&tv_begin, NULL);
+
+    while (1) {
+        if (++index >= MAX_PORT) index = 0;
+        
+        struct epoll_event ev;
+        int sockfd = 0;
+
+        if (connections < 500000 && !isContinue) {
+            sockfd = socket(AF_INET, SOCK_STREAM, 0);
+            if (sockfd == -1) {
+                perror("socket");
+                goto err;
+            }
+
+            //ntySetReUseAddr(sockfd);
+            addr.sin_port = htons(port+index);
+
+            if (connect(sockfd, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)) < 0) {
+                perror("connect");
+                goto err;
+            }
+            ntySetNonblock(sockfd);
+            ntySetReUseAddr(sockfd);
+
+            sprintf(buffer, "Hello Server: client --> %d\n", connections);
+            send(sockfd, buffer, strlen(buffer), 0);
+
+            ev.data.fd = sockfd;
+            ev.events = EPOLLIN | EPOLLOUT;
+            epoll_ctl(epoll_fd, EPOLL_CTL_ADD, sockfd, &ev);
+        
+            connections ++;
+        }
+        //connections ++;
+        if (connections % 1000 == 999 || connections >= 340000) {
+            struct timeval tv_cur;
+            memcpy(&tv_cur, &tv_begin, sizeof(struct timeval));
+            
+            gettimeofday(&tv_begin, NULL);
+
+            int time_used = TIME_SUB_MS(tv_begin, tv_cur);
+            printf("connections: %d, sockfd:%d, time_used:%d\n", connections, sockfd, time_used);
+
+            int nfds = epoll_wait(epoll_fd, events, connections, 100);
+            for (i = 0;i < nfds;i ++) {
+                int clientfd = events[i].data.fd;
+
+                if (events[i].events & EPOLLOUT) {
+                    sprintf(buffer, "data from %d\n", clientfd);
+                    send(sockfd, buffer, strlen(buffer), 0);
+                } else if (events[i].events & EPOLLIN) {
+                    char rBuffer[MAX_BUFFER] = {0};             
+                    ssize_t length = recv(sockfd, rBuffer, MAX_BUFFER, 0);
+                    if (length > 0) {
+                        printf(" RecvBuffer:%s\n", rBuffer);
+
+                        if (!strcmp(rBuffer, "quit")) {
+                            isContinue = 0;
+                        }
+                        
+                    } else if (length == 0) {
+                        printf(" Disconnect clientfd:%d\n", clientfd);
+                        connections --;
+                        close(clientfd);
+                    } else {
+                        if (errno == EINTR) continue;
+
+                        printf(" Error clientfd:%d, errno:%d\n", clientfd, errno);
+                        close(clientfd);
+                    }
+                } else {
+                    printf(" clientfd:%d, errno:%d\n", clientfd, errno);
+                    close(clientfd);
+                }
+            }
+        }
+
+        usleep(1 * 1000);
+    }
+
+    return 0;
+
+err:
+    printf("error : %s\n", strerror(errno));
+    return 0;
+    
+}
+
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
+ + + diff --git a/blogs/acknowledge/gdbguide.html b/blogs/acknowledge/gdbguide.html new file mode 100644 index 0000000..a782921 --- /dev/null +++ b/blogs/acknowledge/gdbguide.html @@ -0,0 +1,507 @@ + + + + + + GDB调试手册 | 斯人如彩虹 + + + + + + + + + + + +

GDB调试手册

6/4/2022 知识

GDB调试手册

目录

0 用GDB调试程序

0.1 GDB概述

0.2 调试示例

0.2.1 源代码test1.c

0.2.2 调试过程

0.3 使用GDB

0.3.1 启动GDB

0.3.2 GDB环境中使用shell命令

0.3.3 在GDB中运行程序

1 设置断点

1.1 使用命令

1.2 示例

1.2.1 调试过程

2 程序的单步执行

2.1 使用命令

2.2 示例

2.2.1 调试过程

3 显示/修改变量的值

3.1使用命令

3.2示例

3.2.1 源代码test2.c

3.2.2 调试过程

4 监视程序变量值

4.1 使用命令

4.2 示例

4.2.1 调试过程

5 显示/修改寄存器

5.1 背景知识

5.2 使用命令

5.3 示例

5.2.1 调试过程

6 查看程序的堆栈

6.1 背景知识

6.2 使用命令

6.3 示例

6.3.1 源代码test3.c

6.3.2 调试过程

7 多线程调试

7.1 使用命令

7.2 示例

7.2.1 源代码test4.c

7.2.2 调试过程

8 死锁调试

8.1 使用命令

8.2 示例

8.2.1 源文件test5.c

8.2.2 调试过程

9 core文件调试

9.1 使用命令

9.2 示例

9.2.1 源代码test6.c

9.2.2 调试过程

# 0 用GDB调试程序

# 0.1 GDB概述

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。

一般来说,GDB主要帮忙你完成下面四个方面的功能:

1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

2、调试的程序在你所指定的断点处停住。(断点可以是条件表达式)

3、程序被停住时,可以检查此时你的程序中所发生的事。

4、动态的改变你程序的执行环境。

从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。

# 0.2 调试示例

# 0.2.1 源代码test1.c

1.#include <stdio.h>  
+2.  
+3.int func(int n)  
+4.{  
+5.    int sum=0,i;  
+6.    for(i=0; i<n; i++)  
+7.    {     
+8.        sum+=i;  
+9.    }     
+10.    return sum;  
+11.}  
+12.  
+13.  
+14.int main()  
+15.{  
+16.    int i = 0;  
+17.    int j = 0;  
+18.    int result = 0;  
+19.    int m = 0;  
+20.    int *p = &m;   
+21.    for(i=1; i<=3; i++)  
+22.    {     
+23.        result += i;  
+24.             
+25.        for(j=1; j < 6; j++)  
+26.        {     
+27.            m++;  
+28.        }     
+29.    }     
+30.  
+31.    printf("result[1-100] = %d \n", result );  
+32.    printf("result[1-250] = %d \n", func(250) );  
+33.  
+34.    return 0;  
+35.}  
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 0.2.2 调试过程

编译生成执行文件:

root@luo:~/workspace/test/ exec\>gcc -g test1.c -o test1
+使用GDB调试:
+root@luo:~/workspace/test/exec\>gdb test1-------------- 启动GDB
+GNU gdb (Wind River Linux Sourcery CodeBench 4.8-45) 7.6
+Copyright (C) 2013 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+and "show warranty" for details.
+This GDB was configured as "x86_64-wrs-linux-gnu".
+For bug reporting instructions, please see:
+<support@windriver.com>...
+Reading symbols from /home/luo/workspace/test/exec/test1...done.
+(gdb) l 1-------------- 从第一行开始列出源码,l为list缩写
+1	#include <stdio.h>
+2	
+3	int func(int n)
+4	{
+5		int sum=0,i;
+6		for(i=0; i<n; i++)
+7		{
+8			sum+=i;
+9		}
+10		return sum;
+(gdb) -------------- 直接回车表示重复上一次命令
+11	}
+12	
+13	
+14	int main()
+15	{
+16		int i = 0;
+17		int j = 0;
+18		int result = 0;
+19		int m = 0;
+20		int *p = &m;
+(gdb) break 16 -------------- 设置断点,在源程序第16行
+Breakpoint 1 at 0x400566: file test1.c, line 16.
+(gdb) break func -------------- 设置断点,在func()函数入口处
+Breakpoint 2 at 0x400537: file test1.c, line 5.
+(gdb) info break -------------- 显示断点信息
+Num     Type           Disp Enb Address            What
+1       breakpoint     keep y   0x0000000000400566 in main at test1.c:16
+2       breakpoint     keep y   0x0000000000400537 in func at test1.c:5
+(gdb) r -------------- 运行程序,r为run简写
+Starting program: /home/luo/workspace/test/exec/test1 
+Breakpoint 1, main () at test1.c:16
+16		int i = 0;
+(gdb) n -------------- 单条语句执行,next命令简写
+17		int j = 0;
+(gdb) n
+18		int result = 0;
+(gdb) n
+19		int m = 0;
+(gdb) n
+20		int *p = &m;
+(gdb) c -------------- 继续运行程序,continue命令简写
+Continuing.
+result[1-100] = 6 -------------- 程序输出
+
+Breakpoint 2, func (n=250) at test1.c:5
+5		int sum=0,i;
+(gdb) n
+6		for(i=0; i<n; i++)
+(gdb) n
+8			sum+=i;
+(gdb) p i -------------- 打印变量i的值,p为print命令简写
+$1 = 0
+(gdb) n
+6		for(i=0; i<n; i++)
+(gdb) n
+8			sum+=i;
+(gdb) p sum
+$2 = 0
+(gdb) n
+6		for(i=0; i<n; i++)
+(gdb) p i
+$3 = 1
+(gdb) n
+8			sum+=i;
+(gdb) n
+6		for(i=0; i<n; i++)
+(gdb) p sum
+$4 = 3
+(gdb) bt -------------- 查看函数堆栈
+#0  func (n=250) at test1.c:6
+#1  0x00000000004005dd in main () at test1.c:32
+(gdb) finish -------------- 退出函数
+Run till exit from #0  func (n=250) at test1.c:6
+0x00000000004005dd in main () at test1.c:32
+32		printf("result[1-250] = %d \n", func(250) );
+Value returned is $5 = 31125
+(gdb) c -------------- 继续运行
+Continuing.
+result[1-250] = 31125 -------------- 程序输出
+[Inferior 1 (process 46602) exited normally] ------------ 程序退出,调试结束
+(gdb) q -------------- 退出GDB
+root@luo:~/workspace/test/exec\>
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97

# 0.3 使用GDB

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:

> cc -g hello.c -o hello

> g++ -g hello.cpp -o hello

如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。

# 0.3.1 启动GDB

启动GDB的方法有以下几种:

1、gdb <program>

program也就是你的执行文件,一般在当然目录下。

2、gdb <program> core

用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。

3、gdb <program> <PID>

如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。

GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。下面只例举一些比较常用的参数:

-symbols <file>

-s <file>

从指定文件中读取符号表。

-se file

指定文件中读取符号表信息,并把他用在可执行文件中。

-core <file>

-c <file>

调试时core dump的core文件。

-directory <directory>

-d <directory>

加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。

# 0.3.2 GDB环境中使用shell命令

在gdb环境中,你可以执行UNIX的shell的命令,使用gdb的shell命令来完成:

shell <command string>

调用UNIX的shell来执行<command string>,环境变量SHELL中定义的UNIX的shell将会被用来执行<command string>,如果SHELL没有定义,那就使用UNIX的标准shell:/bin/sh。(在Windows中使用Command.com或cmd.exe)

还有一个gdb命令是make:

make <make-args>

可以在gdb中执行make命令来重新build自己的程序。这个命令等价于“shell make <make-args>”。

# 0.3.3 在GDB中运行程序

当以gdb <program>方式启动gdb后,gdb会在PATH路径和当前目录中搜索<program>的源文件。如要确认gdb是否读到源文件,可使用l或list命令,看看gdb是否能列出源代码。

在gdb中,运行程序使用r或是run命令。程序的运行,你有可能需要设置下面四方面的事。

1、程序运行参数。

set args 可指定运行时参数。(如:set args 10 20 30 40 50)

show args 命令可以查看设置好的运行参数。

2、运行环境。

path <dir> 可设定程序的运行路径。

show paths 查看程序的运行路径。

set environment varname [=value] 设置环境变量。如:set env USER=aaa

show environment [varname] 查看环境变量。

3、工作目录。

cd <dir> 相当于shell的cd命令。

pwd 显示当前的所在目录。

4、程序的输入输出。

info terminal 显示你程序用到的终端的模式。

使用重定向控制程序输出。如:run > outfile

tty命令可以指写输入输出的终端设备。如:tty /dev/ttyb。

# 1 设置断点

# 1.1 使用命令

break linenum

在指定行号设置断点。

break function

在函数function的入口处设置断点。C++中可以使用class::function或function(type,type)格式来指定函数名。

break +offset/-offset

在当前行前面或后面offset行设置断点,offset为自然数。

break filename:linenum

在源文件filename的linenum行处设置断点。

break filename:function

在源文件filename的function函数的入口处设置断点。

break

break命令没有参数时,表示在下一条指令处设置断点。

break args if cond

设置一个带有条件cond的断点,只有条件为“真”时才停止。args代表上述参数之一。

delete [breakpoint num]

删除断点,breakpoint num为断点号。

tbreak args

设置仅停止一次的断点。args与上面break命令的相同。程序在该断点停止后,该断点便立即被删除。

# 1.2 示例

源代码test1.c 同上

# 1.2.1 调试过程

编译生成可执行文件,注意要带上 -g

root@luo:~/workspace/test/source\>gcc -g test.c -o ../exec/test

使用GDB调试:


+root@luo:~/workspace/test/source\>gcc -g test.c -o ../exec/test
+使用GDB调试:
+root@luo:~/workspace/test/exec\>gdb test 
+GNU gdb (Wind River Linux Sourcery CodeBench 4.8-45) 7.6
+Copyright (C) 2013 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+and "show warranty" for details.
+This GDB was configured as "x86_64-wrs-linux-gnu".
+For bug reporting instructions, please see:
+<support@windriver.com>...
+Reading symbols from /home/luo/workspace/test/exec/test...done.
+(gdb) l 1 -------------- l为list的简写,从第一行开始列出源码
+1	#include <stdio.h>
+2	
+3	int func(int n)
+4	{
+5		int sum=0,i;
+6		for(i=0; i<n; i++)
+7		{
+8			sum+=i;
+9		}
+10		return sum;
+(gdb) -------------- 直接回车,表示重复上一次命令
+11	}
+12	
+13	
+14	int main()
+15	{
+16		int i = 0;
+17		int j = 0;
+18		int result = 0;
+19		int m = 0;
+20		int *p = &m;
+(gdb) 
+21		for(i=1; i<=3; i++)
+22		{
+23			result += i;
+24	    
+25			for(j=1; j < 6; j++)
+26			{
+27				m++;
+28			}
+29		}
+30	
+(gdb) 
+31		printf("result[1-100] = %d \n", result );
+32		printf("result[1-250] = %d \n", func(250) );
+33	
+34		return 0;
+35	}
+(gdb) break main -------------- 设置断点,在函数main()入口处。
+Breakpoint 1 at 0x400566: file test.c, line 17.
+(gdb) break 21 -------------- 设置断点,在源程序第21行
+Breakpoint 2 at 0x400585: file test.c, line 21.
+(gdb) break test.c:func  -------------- 设置断点,在test.c文件的func()函数入口处
+Breakpoint 3 at 0x400537: file test.c, line 5.
+(gdb) r -------------- 运行程序,run命令简写
+Starting program: /home/luo/workspace/test/exec/test 
+
+Breakpoint 1, main () at test.c:17 ---------- 程序在main()入口停止
+17		int j = 0;
+(gdb) c -------------- 继续运行程序,continue命令的简写
+Continuing.
+
+Breakpoint 2, main () at test.c:22 -------------- 程序在22行停止
+22		{
+(gdb) tbreak 26  -------------- 设置临时断点,在26行
+Temporary breakpoint 4 at 0x400594: file test.c, line 26.
+(gdb) info b -------------- 查看断点信息
+Num     Type           Disp Enb Address            What
+1       breakpoint     keep y   0x0000000000400566 in main at test.c:17
+	breakpoint already hit 1 time
+2       breakpoint     keep y   0x0000000000400585 in main at test.c:21
+	breakpoint already hit 1 time
+3       breakpoint     keep y   0x0000000000400537 in func at test.c:5
+4       breakpoint     del  y   0x0000000000400594 in main at test.c:26
+(gdb) c -------------- 继续运行程序
+Continuing.
+
+Temporary breakpoint 4, main () at test.c:26  --------------程序在26行停止
+26			{
+(gdb) info b -------------- 再查看断点信息,临时断点已删除
+Num     Type           Disp Enb Address            What
+1       breakpoint     keep y   0x0000000000400566 in main at test.c:17
+	breakpoint already hit 1 time
+2       breakpoint     keep y   0x0000000000400585 in main at test.c:21
+	breakpoint already hit 1 time
+3       breakpoint     keep y   0x0000000000400537 in func at test.c:5
+(gdb) break 27 if m = 10 ------------ 设置断点,在27行,当m=10时生效
+Breakpoint 5 at 0x4005b1: file test.c, line 27.
+(gdb) c -------------- 继续运行程序
+Continuing.
+
+Breakpoint 2, main () at test.c:22 ------------ 程序在22行停止
+22		{
+(gdb) c -------------- 继续运行程序
+Continuing.
+
+Breakpoint 2, main () at test.c:22
+22		{
+(gdb) c -------------- 继续运行程序
+Continuing.
+
+Breakpoint 5, main () at test.c:30 -------------- 程序在30行停止
+30
+(gdb) print "%d", m -------------- 打印m的值
+$1 = 10 -------------- 此时m = 10
+(gdb) c -------------- 继续运行程序
+Continuing.
+result[1-100] = 6 
+
+Breakpoint 3, func (n=250) at test.c:5 ---------- 程序在func()函数入口处停止
+5		int sum=0,i;
+(gdb) tbreak +3 -------------- 在当前行+3行处设置临时断点
+Temporary breakpoint 8 at 0x400547: file test.c, line 8.
+(gdb) c -------------- 继续运行程序
+Continuing.
+Temporary breakpoint 8, func (n=250) at test.c:8
+8			sum+=i;
+(gdb) break -------------- 在下一条指令处设置断点
+Breakpoint 9 at 0x400547: file test.c, line 8.
+(gdb) c -------------- 继续运行程序
+Continuing.
+Breakpoint 9, func (n=250) at test.c:8 -------------- 在第8行停止
+8			sum+=i;
+(gdb) c -------------- 继续运行程序
+Continuing.
+Breakpoint 9, func (n=250) at test.c:8 -------------- 在第8行停止
+8			sum+=i;
+(gdb) clear --------------清楚所有断点
+Deleted breakpoint 9 
+(gdb) c -------------- 继续运行程序
+Continuing.
+result[1-250] = 31125 
+(gdb)
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138

# 2 程序的单步执行

# 2.1 使用命令

step <count>

单步跟踪,如果有函数调用,他会进入该函数。进入函数的前提是,此函数被编译有debug信息。后面可以加count也可以不加,不加表示一条条地执行,加表示执行后面的count条指令,然后再停住。

next <count>

同样单步跟踪,如果有函数调用,他不会进入该函数。后面可以加count也可以不加,不加表示一条条地执行,加表示执行后面的count条指令,然后再停住。

finish

运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值及参数值等信息。

until 或 u

当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体。

# 2.2 示例

源代码test1.c 同上

# 2.2.1 调试过程

root@luo:~/workspace/test/exec\>gdb -q test 
+----- 启动GDB,-q使启动使版本信息不显示
+Reading symbols from /home/luo/workspace/test/exec/test...done.
+(gdb) break 18 -------------- 在第18行设置断点
+Breakpoint 1 at 0x400574: file test.c, line 18.
+(gdb) r -------------- 运行程序
+Starting program: /home/luo/workspace/test/exec/test 
+
+Breakpoint 1, main () at test.c:18 -------------- 在18行停止
+18		int result = 0;
+(gdb) n -------------- 下一条
+19		int m = 0;
+(gdb) n -------------- 下一条
+20		int *p = &m;
+(gdb) s -------------- 下一条
+21		for(i=1; i<=3; i++)
+(gdb) s -------------- 下一条
+23			result += i;
+(gdb) n -------------- 下一条
+25			for(j=1; j < 6; j++)
+(gdb) n -------------- 下一条 
+27				m++;
+(gdb) u -------------- 运行函数到退出当前循环
+25			for(j=1; j < 6; j++)
+(gdb) u -------------- 运行程序到退出当前循环
+21		for(i=1; i<=3; i++)
+(gdb) u -------------- 运行程序到退出当前循环
+31		printf("result[1-100] = %d \n", result );
+(gdb) s -------------- 下一条
+result[1-100] = 6 
+32		printf("result[1-250] = %d \n", func(250) );
+(gdb) s -------------- step下一条
+func (n=250) at test.c:5 -------------- 进入函数func()
+5		int sum=0,i;
+(gdb) finish -------------- 运行程序到函数完成
+Run till exit from #0  func (n=250) at test.c:5
+0x00000000004005dd in main () at test.c:32
+32		printf("result[1-250] = %d \n", func(250) );
+Value returned is $1 = 31125
+(gdb) r -------------- 再次运行程序
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+Starting program: /home/luo/workspace/test/exec/test 
+Breakpoint 1, main () at test.c:18 -------------- 程序在18行停止
+18		int result = 0;
+(gdb) break 30 -------------- 设置断点,在30行
+Breakpoint 2 at 0x4005bf: file test.c, line 30.
+(gdb) c -------------- 继续运行程序
+Continuing.
+Breakpoint 2, main () at test.c:31 -------------- 程序在31行停止
+31		printf("result[1-100] = %d \n", result );
+(gdb) n -------------- next下一条
+result[1-100] = 6 
+32		printf("result[1-250] = %d \n", func(250) );
+(gdb) n -------------- next下一条
+result[1-250] = 31125  -------------- 未进入函数func()
+34		return 0;
+(gdb)
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

# 3 显示/修改变量的值

# 3.1使用命令

print <expr>

print /<f> <expr>

当程序被停住时,可以使用print命令(简写为p),或同义命令inspect来查看当前程序的运行数据。<expr>是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),<f>是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x。

注意:GDB中,变量分为全局变量、静态全局变量、局部变量三种,当局部变量与全局变量发生重名时,用pirnt显示出的变量的值会是函数中的局部变量的值。此时如果要查看全局变量的值,可以使用“::”操作符:

file::variable

function::variable

可以通过这种形式查看某个文件或是某个函数的变量。

# 3.2示例

# 3.2.1 源代码test2.c

1.#include <stdio.h>  
+2.  
+3.int func(int m){   
+4.    int n = 0;  
+5.    int i = 0;  
+6.    for(i = 0; i < m; i++){  
+7.        n += m;  
+8.    }     
+9.  
+10.    return n;  
+11.
+12.}  
+13.  
+14.int main(){  
+15.    int i = 0;  
+16.    int b = 0;  
+17.    int n = 20;   
+18.    int sum = 0;  
+19.    sum = func(40);  
+20.    for(i = 0; i < 10; i++){  
+21.        n++;  
+22.    }     
+23.  
+24.    return 0;  
+}  
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 3.2.2 调试过程

编译生成可执行文件:

root@luo:~/workspace/test/source\>gcc -g test2.c -o ../exec/test2

启动GDB:


+root@luo:~/workspace/test/source\>gcc -g test2.c -o ../exec/test2
+启动GDB:
+root@luo:~/workspace/test/exec\>gdb -q test2
+Reading symbols from /home/luo/workspace/test/exec/test2...done.
+(gdb) l 1
+1	#include <stdio.h>
+2	
+3	int func(int m){
+4		int n = 0;
+5		int i = 0;
+6		for(i = 0; i < m; i++){
+7			n += m;
+8		}
+9	
+10		return n;
+(gdb) 
+11	
+12	}
+13	
+14	int main(){
+15		int i = 0;
+16		int b = 0;
+17		int n = 20;
+18		int sum = 0;
+19		sum = func(40);
+20		for(i = 0; i < 10; i++){
+(gdb) 
+21			n++;
+22		}
+23	
+24		return 0;
+25	}
+(gdb) break func -------------- 设置断点,在func()函数入口处
+Breakpoint 1 at 0x4004f7: file test2.c, line 4.
+(gdb) break 21 -------------- 设置断点,在21行
+Breakpoint 2 at 0x40055f: file test2.c, line 21.
+(gdb) r -------------- 运行程序
+Starting program: /home/luo/workspace/test/exec/test2 
+
+Breakpoint 1, func (m=40) at test2.c:4
+4		int n = 0;
+(gdb) p n -------------- 在func()函数内,显示变量n的值
+$1 = 0
+(gdb) p main::n ------------ 在func()内,显示main()函数中n的值
+$2 = 20 
+(gdb) c -------------- 继续运行程序
+Continuing.
+
+Breakpoint 2, main () at test2.c:21
+21			n++;
+(gdb) p n -------------- 显示n的值
+$3 = 20
+(gdb) p n = 50 -------------- 修改n的值为50
+$4 = 50
+(gdb) p n -------------- 显示n的值
+$5 = 50
+(gdb) c -------------- 继续运行程序
+Continuing.
+
+Breakpoint 2, main () at test2.c:21
+21			n++;
+(gdb) p n ------------ 显示n的值,可以看到,n在修改基础上加1
+$6 = 51
+(gdb) p /x n ------------ 用16进制显示n值
+$7 = 0x33 
+(gdb)
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

# 4 监视程序变量值

# 4.1 使用命令

display <expr>

display/<fmt> <expr>

display/<fmt> <addr>

display命令可以设置一些自动显示的变量,当程序停住时,或是在单步跟踪时,这些变量会自动显示。expr是一个表达式,fmt表示显示的格式,addr表示内存地址,当用display设定好了一个或多个表达式后,只要程序被停下来,GDB会自动显示你所设置的这些表达式的值。

undisplay <dnums...>

delete display <dnums...>

删除自动显示,dnums意为所设置好了的自动显式的编号。如果要同时删除几个,编号可以用空格分隔,如果要删除一个范围内的编号,可以用减号表示(如:2-5)。

disable display <dnums...>

enable display <dnums...>

disable和enalbe不删除自动显示的设置,而只是让其失效和恢复。

info display

查看display设置的自动显示的信息,包括设置的编号,表达式,是否enable。

# 4.2 示例

源代码test2.c同上

# 4.2.1 调试过程

启动GDB:

root@luo:~/workspace/test/exec\>gdb -q test2

Reading symbols from /home/luo/workspace/test/exec/test2...done.

(gdb) l 1 -------------- 列出源代码

1 #include <stdio.h>

2

3 int func(int m){

4 int n = 0;

5 int i = 0;

6 for(i = 0; i < m; i++){

7 n += m;

8 }

9

10 return n;

(gdb)

11

12 }

13

14 int main(){

15 int i = 0;

16 int b = 0;

17 int n = 20;

18 int sum = 0;

19 sum = func(40);

20 for(i = 0; i < 10; i++){

(gdb)

21 n++;

22 }

23

24 return 0;

25 }

(gdb) break 21 -------------- 设置断点,在21行

Breakpoint 1 at 0x40055f: file test2.c, line 21.

(gdb) r -------------- 运行程序

Starting program: /home/luo/workspace/test/exec/test2

Breakpoint 1, main () at test2.c:21

21 n++;

(gdb) display n -------------- 跟踪变量n的值

1: n = 20

(gdb) display i -------------- 跟踪变量i的值

2: i = 0

(gdb) display n+i -------------- 跟踪n+i的值

3: n+i = 20

(gdb) display/x n -------------- 跟踪n的值,以16进制显示

4: /x n = 0x14

(gdb) display &n -------------- 跟踪n的地址

5: &n = (int *) 0x7fffffffe0a8

(gdb) c -------------- 继续运行程序

Continuing.

Breakpoint 1, main () at test2.c:21

21 n++;

5: &n = (int *) 0x7fffffffe0a8

4: /x n = 0x15

3: n+i = 22

2: i = 1

1: n = 21

(gdb) delete display 4 -------------- 删除4号跟踪

(gdb) c -------------- 继续运行程序

Continuing.

Breakpoint 1, main () at test2.c:21 ------------ 可以看到,4号没了

21 n++;

5: &n = (int *) 0x7fffffffe0a8

3: n+i = 24

2: i = 2

1: n = 22

(gdb) disable display 5 -------------- 使5号跟踪失效

(gdb) c -------------- 继续运行程序

Continuing.

Breakpoint 1, main () at test2.c:21 ------- 可以看到,5号也没显示

21 n++;

3: n+i = 26

2: i = 3

1: n = 23

(gdb) enable display 5 -------------- 使5号跟踪恢复

(gdb) c -------------- 继续运行程序

Continuing.

Breakpoint 1, main () at test2.c:21 ------ 可以看到,5号再次显示

21 n++;

5: &n = (int *) 0x7fffffffe0a8

3: n+i = 28

2: i = 4

1: n = 24

(gdb) info display -------------- 查看自动显示信息

Auto-display expressions now in effect:

Num Enb Expression

5: y &n

3: y n+i

2: y i

1: y n

(gdb) disable display 1 2 3 ----------- 使1,2,3号都失效

(gdb) c -------------- 继续运行程序

Continuing.

Breakpoint 1, main () at test2.c:21

21 n++;

5: &n = (int *) 0x7fffffffe0a8

(gdb) info display -------------- 查看自动显示信息

Auto-display expressions now in effect:

Num Enb Expression

5: y &n

3: n n+i

2: n i

1: n n

(gdb)

# 5 显示/修改寄存器

# 5.1 背景知识

先明确一点,这里指的是通用寄存器(后简称寄存器)。既然是通用的,使用并没有限制;后面介绍寄存器使用规则或者惯例,只是GCC/G++的规则。因为我们想对GCC编译的C/C++序进行分析,所以了解这些规则就很有帮助。

在体系结构教科书中,寄存器通常被说成寄存器文件,其实就是CPU上的一块存储区域,不过更喜欢使用标识符来表示,而不是地址而已。

X86-64中,所有寄存器都是64位,相对32位的x86来说,标识符发生了变化,比如:从原来的%ebp变成了%rbp。为了向后兼容性,%ebp依然可以使用,不过指向了%rbp的低32位。

X86-64寄存器的变化,不仅体现在位数上,更加体现在寄存器数量上。新增加寄存器%r8到%r15。加上x86的原有8个,一共16个寄存器。

刚刚说到,寄存器集成在CPU上,存取速度比存储器快好几个数量级,寄存器多了,GCC就可以更多的使用寄存器,替换之前的存储器堆栈使用,从而大大提升性能。

让寄存器为己所用,就得了解它们的用途,这些用途都涉及函数调用,X86-64有16个64位寄存器,分别是:

%rax,%rbx,%rcx,%rdx,%rsi,%rdi,%rbp,%rsp,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15。

其中:

%rax 作为函数返回值使用。

%rsp 栈指针寄存器,指向栈顶。

%rdi,%rsi,%rdx,%rcx,%r8,%r9 用作函数参数,依次对应第1参数,第2参数…

%rbx,%rbp,%r12,%r13,%14,%15 用作数据存储,遵循被调用者使用规则,简单说就是随便用,调用子函数之前要备份它,以防他被修改。

%r10,%r11 用作数据存储,遵循调用者使用规则,简单说就是使用之前要先保存原值。

# 5.2 使用命令

info registers

查看寄存器的情况。(不包括浮点寄存器)

info all-registers

查看所有寄存器的情况。(包括浮点寄存器)

info registers <regname …>

查看所指定的寄存器的情况。

set $<regname>=<value>

修改寄存器的值。

# 5.3 示例

源代码test2.c同上

# 5.2.1 调试过程

启动GDB:

root@luo:~/workspace/test/exec\>gdb -q test2

Reading symbols from /home/luo/workspace/test/exec/test2...done.

(gdb) b main -------------- 在main函数设置断点

Breakpoint 1 at 0x40052d: file test2.c, line 15.

(gdb) r -------------- 运行程序

Starting program: /home/luo/workspace/test/exec/test2

Breakpoint 1, main () at test2.c:15

15 int i = 0;

(gdb) s -------------- step单步执行

16 int b = 0;

(gdb)

17 int n = 20;

(gdb)

18 int sum = 0;

(gdb)

19 sum = func(40);

(gdb)

func (m=40) at test2.c:4 -------------- 进入*func()*函数了

4 int n = 0;

(gdb) i all-r -------------- 显示所有寄存器信息

rax 0x400525 4195621

rbx 0x0 0

rcx 0x0 0

rdx 0x7fffffffe1a8 140737488347560

rsi 0x7fffffffe198 140737488347544

rdi 0x28 40

rbp 0x7fffffffe090 0x7fffffffe090

rsp 0x7fffffffe090 0x7fffffffe090

r8 0x30555a3c60 207590407264

r9 0x305360ec80 207557291136

r10 0x7fffffffdf40 140737488346944

r11 0x3055221b00 207586728704

r12 0x4003b0 4195248

r13 0x7fffffffe190 140737488347536

r14 0x0 0

r15 0x0 0

rip 0x4004f7 0x4004f7 <func+7>

eflags 0x206 [ PF IF ]

cs 0x33 51

ss 0x2b 43

ds 0x0 0

es 0x0 0

fs 0x0 0

gs 0x0 0

st0 0 (raw 0x00000000000000000000)

st1 0 (raw 0x00000000000000000000)

---Type <return> to continue, or q <return> to quit---q

Quit -------------- 退出显示

(gdb) i r -------------- 显示寄存器信息,不包括浮点寄存器

rax 0x400525 4195621

rbx 0x0 0

rcx 0x0 0

rdx 0x7fffffffe1a8 140737488347560

rsi 0x7fffffffe198 140737488347544

rdi 0x28 40

rbp 0x7fffffffe090 0x7fffffffe090

rsp 0x7fffffffe090 0x7fffffffe090

r8 0x30555a3c60 207590407264

r9 0x305360ec80 207557291136

r10 0x7fffffffdf40 140737488346944

r11 0x3055221b00 207586728704

r12 0x4003b0 4195248

r13 0x7fffffffe190 140737488347536

r14 0x0 0

r15 0x0 0

rip 0x4004f7 0x4004f7 <func+7>

eflags 0x206 [ PF IF ]

cs 0x33 51

ss 0x2b 43

ds 0x0 0

es 0x0 0

fs 0x0 0

gs 0x0 0

(gdb) info registers rax -------------- 查看指定寄存器的信息

rax 0x400525 4195621

(gdb) n -------------- 单步执行

5 int i = 0;

(gdb)

6 for(i = 0; i < m; i++){

(gdb)

7 n += m;

(gdb) u -------------- 执行直至循环结束

6 for(i = 0; i < m; i++){

(gdb)

10 return n;

(gdb) i r rax -------------- 查看指定寄存器rax信息,其存放函数返回值

rax 0x28 40

(gdb) n -------------- 单步执行,此时已经return

12 }

(gdb) i r rax -------------- 查看rax信息,为1600

rax 0x640 1600

(gdb) set $rax=99 --------------rax值修改为99

(gdb) i r rax -------------- 再查看rax,为99

rax 0x63 99

(gdb) n -------------- 单步执行,此时已经退出函数

main () at test2.c:20

20 for(i = 0; i < 10; i++){

(gdb) p sum ----------- 显示sum值,其值应为刚刚*func()*函数的返回值

$1 = 99 ----------- 正确

(gdb)

# 6 查看程序的堆栈

# 6.1 背景知识

当你的程序到暂停到断点处时,你需要知道的第一件事就是知道程序停在哪儿,以及通过什么样的函数调用关系到达这里的。

每当你的程序调用一个函数,这个函数的相关信息将会生成,该信息包括这个函数在程序中的位置,函数的参数,以及被调用的局部变量的值。这些信息保存在一个数据块中,这个数据块叫做栈框。这些栈框位于内存中称为栈的区域。

当你的程序断点处停止,GDB查看堆栈的命令允许你看到所有函数相关的信息。

栈被划分为多个连续的块,每个块称为栈框;每个栈框都存有与调用函数相关的数据。栈框中包含了调用函数的参数,调用函数的局部变量。以及这个函数的执行的地址。

当程序开始执行时,栈上就只有一个栈框,也就是用来描述Main函数的。这个栈框称为初始化栈框或最外层栈框。每当调用一个函数,一个新的栈框将会生成。每当一个函数结束,该函数对应的栈框将会消除。如果一个函数是递归函数,这将会对同一个函数产生很多个栈框。正在执行函数的栈框将叫做最内层栈框。这个是所有存在栈框中最新创建的。在你的程序里,栈框通过它对应到的地址进行标识。一个栈框由多个字节组成,每个栈框都有自己的地址,当程序执行到这个栈框时。通常这个栈框地址存放在特定的寄存器中。

gdb为每个存在的栈框赋上一个标号。标号从0开始,0表示最里层的栈框。也就是正在被调用函数的栈框。这些标号在程序中并不存在,它是由gdb赋予的,gdb通过赋予这个标号来给gdb的命令指定哪个栈框。

# 6.2 使用命令

frame args

这个frame命令允许你从一个栈框移动到另一个栈框,然后可以打印出你选择的栈框,args要么是栈框的地址,要么是栈框的标号,如果没有参数,frame命令将会打印出当前的栈框。

select -frame

select -frame命令允许你从一个栈框移动到另外一个栈框而不打印栈框的信息,这个命令可以看作是frame命令的silent版本。

backtrace

bt

bt命令打印栈全部的backtrace,每个栈框显示一行。你可以在任何时间结束backtrace通过键入系统中断字符,ctrl+c。

backtrace n

bt n

bt n 命令将会显示最内层的n个栈框。

backtrace -n

bt -n

bt -n将会显示最外层的n个栈框。

backtrace full

bt full

bt full n

bt full -n

如果添加full这个参数的话,将会显示栈框中的局部变量。

frame n

f n

frame n(f n)将会选择栈框n,栈框0是最内层的栈框,也就是当前执行的函数,栈框1是调用最内层栈框的函数。最大的栈框就是main函数对应的栈框。

frame addr

f addr

通过栈框的地址选择栈框。如果栈框被bug破坏掉了,这将是主要的方法去查看栈框。栈框破坏掉了,gdb将不能通过栈框标号去定位栈框。另外,如果你的程序有多个栈,在多个栈切换时这中方法将很有用。

up n

up n将会朝外层栈框走n个。它的方向是朝最外层的栈框,也就是最大的栈框号。

down n

down n和up n是对应的,它将会朝最内层走n个栈框。

这些命令将会打印两行关于该栈框的信息,第一行将会显示栈框号,函数名,参数,以及源代码所在的文件名,和所在的行。

# 6.3 示例

# 6.3.1 源代码test3.c

  1. #include <stdio.h>
  2. int func4(int m)
  3. {
  4. int ret = m - m / 2;
  5. return ret;
  6. }
  7. int func3(int m)
  8. {
  9. int ret = m + func4(m);
  10. return ret;
  11. }
  12. int func2(int m)
  13. {
  14. int ret = m * func3(m);
  15. return ret;
  16. }
  17. int func1(int m)
  18. {
  19. int ret = func2(m) + 1;
  20. return ret;
  21. }
  22. int main()
  23. {
  24. int m = 40;
  25. int n = func1(m);
  26. return 0;
  27. }

# 6.3.2 调试过程

启动GDB:

root@luo:~/workspace/test/exec\>gdb -q test3

Reading symbols from /home/luo/workspace/test/exec/test3...done.

(gdb) b main -------------- 在main函数设置断点

Breakpoint 1 at 0x40057d: file ../source/test3.c, line 30.

(gdb) r -------------- 运行程序

Starting program: /home/luo/workspace/test/exec/test3

Breakpoint 1, main () at ../source/test3.c:30

30 int m = 40;

(gdb) s -------------- step单步执行

31 int n = func1(m);

(gdb) s

func1 (m=40) at ../source/test3.c:24

24 int ret = func2(m) + 1;

(gdb) s

func2 (m=40) at ../source/test3.c:18

18 int ret = m * func3(m);

(gdb) s

func3 (m=40) at ../source/test3.c:11

11 int ret = m + func4(m);

(gdb) s

func4 (m=40) at ../source/test3.c:5

5 int ret = m - m / 2;

(gdb) bt -------------- 显示栈信息

#0 func4 (m=40) at ../source/test3.c:5

#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24

#4 0x000000000040058e in main () at ../source/test3.c:31

(gdb) frame 2 -------------- 跳到标号为2的栈框

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

18 int ret = m * func3(m);

(gdb) select-frame 2 ------------- 跳到标号为2的栈框并且不打印信息

(gdb) bt 3 -------------- 显示最内层的3个栈框

#0 func4 (m=40) at ../source/test3.c:5

#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

(More stack frames follow...)

(gdb) bt -3 -------------- 显示最外层的3个栈框

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24

#4 0x000000000040058e in main () at ../source/test3.c:31

(gdb) bt full -------------- 显示栈信息,包括局部变量

#0 func4 (m=40) at ../source/test3.c:5

ret = 0

#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11

ret = 0

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

ret = 0

#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24

ret = 0

#4 0x000000000040058e in main () at ../source/test3.c:31

m = 40

n = 0

(gdb) frame 2 -------------- 移动到标号为2的栈框

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

18 int ret = m * func3(m);

(gdb) bt

#0 func4 (m=40) at ../source/test3.c:5

#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11

#2 0x0000000000400549 in func2 (m=40) at ../source/test3.c:18

#3 0x000000000040056a in func1 (m=40) at ../source/test3.c:24

#4 0x000000000040058e in main () at ../source/test3.c:31

(gdb) up 2 -------------- 向外层栈框移动2层

#4 0x000000000040058e in main () at ../source/test3.c:31

31 int n = func1(m);

(gdb) down 3 -------------- 向内层栈框移动3层

#1 0x0000000000400527 in func3 (m=40) at ../source/test3.c:11

11 int ret = m + func4(m);

(gdb)

# 7 多线程调试

# 7.1 使用命令

info threads

查看当前进程的线程。GDB会为每个线程分配一个ID, 后面操作线程的时候会用到这个ID。前面有*的是当前调试的线程。

thread <ID>

切换调试的线程为指定ID的线程。

break file.c:number thread all

在file.c文件第number行处为所有经过这里的线程设置断点。

set scheduler-locking off|on|step

在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的, 怎么只让被调试程序执行呢?

通过这个命令就可以实现这个需求。

off 不锁定任何线程,也就是所有线程都执行,这是默认值。

on 只有当前被调试程序会执行。

step 在单步的时候,除了next过一个函数的情况 (熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,只有当前线程会执行。

thread apply ID1 ID2 command

让一个或多个线程执行GDB命令command。

thread apply all command

让所有被调试线程执行GDB命令command。

# 7.2 示例

# 7.2.1 源代码test4.c

  1. /*
  2. * 本文件为多线程调试测试准备
  3. */
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <pthread.h>
  7. #include <unistd.h>
  8. void func1()
  9. {
  10. int i = 0;
  11. while(1){
  12. i++;
  13. printf("**********************************\n");
  14. printf("this is function 1!\n");
  15. printf("this is %d time!\n", i);
  16. sleep(1);
  17. }
  18. return ;
  19. }
  20. void func2()
  21. {
  22. int i = 0;
  23. while(1){
  24. i++;
  25. printf("**********************************\n");
  26. printf("this is function 2!\n");
  27. printf("this is %d time!\n", i);
  28. sleep(1);
  29. }
  30. return ;
  31. }
  32. int main()
  33. {
  34. pthread_t td1, td2, td3;
  35. int ret_td1, ret_td2, ret_td3;
  36. ret_td1 = pthread_create(&td1, NULL, (void*)&func1, NULL);
  37. ret_td2 = pthread_create(&td2, NULL, (void*)&func2, NULL);
  38. ret_td3 = pthread_create(&td3, NULL, (void*)&func2, NULL);
  39. if(ret_td1 != 0){
  40. printf("线程1创建失败\n");
  41. }else{
  42. printf("线程1创建成功\n");
  43. }
  44. if(ret_td2 != 0){
  45. printf("线程2创建失败\n");
  46. }else{
  47. printf("线程2创建成功\n");
  48. }
  49. if(ret_td3 != 0){
  50. printf("线程3创建失败\n");
  51. }else{
  52. printf("线程3创建成功\n");
  53. }
  54. return 0;
  55. }

# 7.2.2 调试过程

编译生成可执行文件,注意带上 -lpthread

root@luo:~/workspace/test/exec\>gcc -g ../source/test4.c -o test4 -lpthread

启动GDB:

root@luo:~/workspace/test/exec\>gdb -q test4

Reading symbols from /home/luo/workspace/test/exec/test4...done.

(gdb) b main -------------- 在main()函数设置断点

Breakpoint 1 at 0x400776: file ../source/test4.c, line 42.

(gdb) l 1 -------------- 列出源代码

1 /*

2 * 本文件为多线程调试测试准备

3 */

4 #include <stdio.h>

5 #include <stdlib.h>

6 #include <pthread.h>

7 #include <unistd.h>

8

9 void func1()

10 {

(gdb)

11 int i = 0;

12 while(1){

13 i++;

14 printf("**********************************\n");

15 printf("this is function 1!\n");

16 printf("this is %d time!\n", i);

17 sleep(1);

18 }

19

20 return ;

(gdb)

21 }

22

23 void func2()

24 {

25 int i = 0;

26 while(1){

27 i++;

28 printf("**********************************\n");

29 printf("this is function 2!\n");

30 printf("this is %d time!\n", i);

(gdb)

31 sleep(1);

32 }

33 return ;

34 }

35

36

37 int main()

38 {

39 pthread_t td1, td2, td3;

40 int ret_td1, ret_td2, ret_td3;

(gdb)

41

42 ret_td1 = pthread_create(&td1, NULL, (void*)&func1, NULL);

43 ret_td2 = pthread_create(&td2, NULL, (void*)&func2, NULL);

44 ret_td3 = pthread_create(&td3, NULL, (void*)&func2, NULL);

45

46 if(ret_td1 != 0){

47 printf("线程1创建失败\n");

48 }else{

49 printf("线程1创建成功\n");

50 }

(gdb)

51

52 if(ret_td2 != 0){

53 printf("线程2创建失败\n");

54 }else{

55 printf("线程2创建成功\n");

56 }

57

58 if(ret_td3 != 0){

59 printf("线程3创建失败\n");

60 }else{

(gdb)

61 printf("线程3创建成功\n");

62 }

63

64 return 0;

65 }

(gdb) b 18 -------------- 在18行设置断点

Breakpoint 2 at 0x400725: file ../source/test4.c, line 18.

(gdb) b 32 -------------- 在32行设置断点

Breakpoint 3 at 0x40076c: file ../source/test4.c, line 32.

(gdb) b 46 -------------- 在46行设置断点

Breakpoint 4 at 0x4007d0: file ../source/test4.c, line 46.

(gdb) r -------------- 运行程序

Starting program: /home/luo/workspace/test/exec/test4

[Thread debugging using libthread_db enabled]

Using host libthread_db library "/lib64/libthread_db.so.1".

Breakpoint 1, main () at ../source/test4.c:42

42 ret_td1 = pthread_create(&td1, NULL, (void*)&func1, NULL);

(gdb) info threads -------------- 查看线程信息,目前只有一个主线程

Id Target Id Frame

* 1 Thread 0x7ffff7dd2700 (LWP 40907) "test4" main ()

at ../source/test4.c:42

(gdb) c -------------- 继续运行程序

Continuing.

[New Thread 0x7ffff7dd0700 (LWP 40913)] -------------- 新线程创建

**********************************

[New Thread 0x7ffff75cf700 (LWP 40914)] -------------- 新线程创建

this is function 1!

this is 1 time!

[New Thread 0x7ffff6dce700 (LWP 40915)] -------------- 新线程创建

**********************************

Breakpoint 4, main () at ../source/test4.c:46

46 if(ret_td1 != 0){

(gdb) info threads -------------- 查看线程信息

Id Target Id Frame

4 Thread 0x7ffff6dce700 (LWP 40915) "test4" 0x00000030552d795d in write () from /lib64/libc.so.6

3 Thread 0x7ffff75cf700 (LWP 40914) "test4" __lll_lock_wait_private ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95

2 Thread 0x7ffff7dd0700 (LWP 40913) "test4" 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6

* 1 Thread 0x7ffff7dd2700 (LWP 40907) "test4" main ()

at ../source/test4.c:46

(gdb) set scheduler-locking on -------------- 设置调试模式为只有当前线程会被执行

(gdb) thread 4 -------------- 切换到4号线程

[Switching to thread 4 (Thread 0x7ffff6dce700 (LWP 40915))]

#0 0x00000030552d795d in write () from /lib64/libc.so.6

(gdb) c -------------- 当前线程执行continue

Continuing.

this is function 2!

this is 1 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

(gdb) c

Continuing.

**********************************

this is function 2!

this is 2 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

(gdb) thread 3 -------------- 切换线程

[Switching to thread 3 (Thread 0x7ffff75cf700 (LWP 40914))]

#0 __lll_lock_wait_private ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95

95 ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.

(gdb) c

Continuing.

**********************************

this is function 2!

this is 1 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

(gdb) c

Continuing.

**********************************

this is function 2!

this is 2 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

(gdb) thread 2 -------------- 切换线程

[Switching to thread 2 (Thread 0x7ffff7dd0700 (LWP 40913))]

#0 0x00000030552f081b in ?? () from /lib64/libc.so.6

(gdb) c

Continuing.

**********************************

this is function 1!

this is 2 time!

Breakpoint 2, func1 () at ../source/test4.c:18

18 }

(gdb) c

Continuing.

**********************************

this is function 1!

this is 3 time!

Breakpoint 2, func1 () at ../source/test4.c:18

18 }

(gdb) info threads -------------- 查看线程信息,当前位于2号线程

Id Target Id Frame

4 Thread 0x7ffff6dce700 (LWP 40915) "test4" func2 ()

at ../source/test4.c:32

3 Thread 0x7ffff75cf700 (LWP 40914) "test4" func2 ()

at ../source/test4.c:32

* 2 Thread 0x7ffff7dd0700 (LWP 40913) "test4" func1 ()

at ../source/test4.c:18

1 Thread 0x7ffff7dd2700 (LWP 40907) "test4" main ()

at ../source/test4.c:46

(gdb) thread apply 2 4 continue ----- 令2号和4号线程执行continue

Thread 2 (Thread 0x7ffff7dd0700 (LWP 40913)):

Continuing.

**********************************

this is function 1!

this is 4 time!

Breakpoint 2, func1 () at ../source/test4.c:18

18 }

Thread 4 (Thread 0x7ffff6dce700 (LWP 40915)):

Continuing.

**********************************

this is function 2!

this is 3 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

(gdb) thread apply all continue ------------- 所有线程执行continue

Thread 4 (Thread 0x7ffff6dce700 (LWP 40915)):

Continuing.

**********************************

this is function 2!

this is 4 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

Thread 3 (Thread 0x7ffff75cf700 (LWP 40914)):

Continuing.

**********************************

this is function 2!

this is 3 time!

Breakpoint 3, func2 () at ../source/test4.c:32

32 }

Thread 2 (Thread 0x7ffff7dd0700 (LWP 40913)):

Continuing.

**********************************

this is function 1!

this is 5 time!

Breakpoint 2, func1 () at ../source/test4.c:18

18 }

Thread 1 (Thread 0x7ffff7dd2700 (LWP 40907)):

Continuing.

线程1创建成功

线程2创建成功

线程3创建成功

[Thread 0x7ffff6dce700 (LWP 40915) exited]

[Thread 0x7ffff75cf700 (LWP 40914) exited]

[Thread 0x7ffff7dd0700 (LWP 40913) exited]

[Inferior 1 (process 40907) exited normally]

(gdb)

# 8 死锁调试

# 8.1 使用命令

ps -ef|grep <processname>

查看进程号,其中processname为进程名。

gdb attach <PID>

使用GDB调试正在运行的进程。

# 8.2 示例

# 8.2.1 源文件test5.c

  1. /*
  2. *本文件用于测试死锁调试
  3. *
  4. *代码来自网络:http://blog.chinaunix.net/uid-30343738-id-5757210.html
  5. *
  6. */
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <unistd.h>
  10. #include <string.h>
  11. #include <pthread.h>
  12. pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
  13. pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER;
  14. pthread_mutex_t mutex3 = PTHREAD_MUTEX_INITIALIZER;
  15. pthread_mutex_t mutex4 = PTHREAD_MUTEX_INITIALIZER;
  16. static int sequence1 = 0;
  17. static int sequence2 = 0;
  18. int func1()
  19. {
  20. pthread_mutex_lock(&mutex1);
  21. ++sequence1;
  22. sleep(1);
  23. pthread_mutex_lock(&mutex2);
  24. ++sequence2;
  25. pthread_mutex_unlock(&mutex2);
  26. pthread_mutex_unlock(&mutex1);
  27. return sequence1;
  28. }
  29. int func2()
  30. {
  31. pthread_mutex_lock(&mutex2);
  32. ++sequence2;
  33. sleep(1);
  34. pthread_mutex_lock(&mutex1);
  35. ++sequence1;
  36. pthread_mutex_unlock(&mutex1);
  37. pthread_mutex_unlock(&mutex2);
  38. return sequence2;
  39. }
  40. void* thread1(void* arg)
  41. {
  42. while (1)
  43. {
  44. int iRetValue = func1();
  45. if (iRetValue == 100000)
  46. {
  47. pthread_exit(NULL);
  48. }
  49. }
  50. }
  51. void* thread2(void* arg)
  52. {
  53. while (1)
  54. {
  55. int iRetValue = func2();
  56. if (iRetValue == 100000)
  57. {
  58. pthread_exit(NULL);
  59. }
  60. }
  61. }
  62. void* thread3(void* arg)
  63. {
  64. while (1)
  65. {
  66. sleep(1);
  67. char szBuf[128];
  68. memset(szBuf, 0, sizeof(szBuf));
  69. strcpy(szBuf, "thread3");
  70. }
  71. }
  72. void* thread4(void* arg)
  73. {
  74. while (1)
  75. {
  76. sleep(1);
  77. char szBuf[128];
  78. memset(szBuf, 0, sizeof(szBuf));
  79. strcpy(szBuf, "thread3");
  80. }
  81. }
  82. int main()
  83. {
  84. pthread_t tid[4];
  85. if (pthread_create(&tid[0], NULL, &thread1, NULL) != 0)
  86. {
  87. _exit(1);
  88. }
  89. if (pthread_create(&tid[1], NULL, &thread2, NULL) != 0)
  90. {
  91. _exit(1);
  92. }
  93. if (pthread_create(&tid[2], NULL, &thread3, NULL) != 0)
  94. {
  95. _exit(1);
  96. }
  97. if (pthread_create(&tid[3], NULL, &thread4, NULL) != 0)
  98. {
  99. _exit(1);
  100. }
  101. sleep(5);
  102. //pthread_cancel(tid[0]);
  103. pthread_join(tid[0], NULL);
  104. pthread_join(tid[1], NULL);
  105. pthread_join(tid[2], NULL);
  106. pthread_join(tid[3], NULL);
  107. pthread_mutex_destroy(&mutex1);
  108. pthread_mutex_destroy(&mutex2);
  109. pthread_mutex_destroy(&mutex3);
  110. pthread_mutex_destroy(&mutex4);
  111. return 0;
  112. }

# 8.2.2 调试过程

执行程序,程序会卡在这里:

root@luo:~/workspace/test/exec\>./test5

另开一个终端,查看进程的信息:

root@luo:~/workspace/test/exec\>ps -ef|grep test5

root 42746 39442 0 14:25 ttyp0 00:00:00 ./test5

root 43464 42753 0 15:11 ttyp2 00:00:00 grep --color=auto test5

使用GDB工具attach该进程:

root@luo:~/workspace/test/exec\>gdb -q attach 42746

attach: No such file or directory.

Attaching to process 42746

Reading symbols from /home/luo/workspace/test/exec/test5...done.

Reading symbols from /lib64/libpthread.so.0...done.

[New LWP 42750]

[New LWP 42749]

[New LWP 42748]

[New LWP 42747]

[Thread debugging using libthread_db enabled]

Using host libthread_db library "/lib64/libthread_db.so.1".

Loaded symbols for /lib64/libpthread.so.0

Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.

Loaded symbols for /lib64/libc.so.6

Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.

Loaded symbols for /lib64/ld-linux-x86-64.so.2

0x00007fc3aa9ff492 in pthread_join (threadid=140478357907200, thread_return=0x0)

at pthread_join.c:92

92 pthread_join.c: No such file or directory.

(gdb) info threads ------------- 查看线程信息

Id Target Id Frame

5 Thread 0x7fc3aa9f2700 (LWP 42747) "test5" __lll_lock_wait ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

4 Thread 0x7fc3aa1f1700 (LWP 42748) "test5" __lll_lock_wait ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

3 Thread 0x7fc3a99f0700 (LWP 42749) "test5" 0x00000030552b5a0d in nanosleep

() from /lib64/libc.so.6

2 Thread 0x7fc3a91ef700 (LWP 42750) "test5" 0x00000030552b5a0d in nanosleep

() from /lib64/libc.so.6

* 1 Thread 0x7fc3aa9f4700 (LWP 42746) "test5" 0x00007fc3aa9ff492 in pthread_join (threadid=140478357907200, thread_return=0x0) at pthread_join.c:92

(gdb) set scheduler-locking on --------- 设置调试模式为只有当前线程会执行

(gdb) thread apply all bt ------------- 显示所有线程的栈信息

Thread 5 (Thread 0x7fc3aa9f2700 (LWP 42747)):

#0 __lll_lock_wait ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

#1 0x00007fc3aaa00457 in _L_lock_913 () from /lib64/libpthread.so.0

#2 0x00007fc3aaa00280 in __GI___pthread_mutex_lock (mutex=0x6012c0 <mutex2>)

at ../nptl/pthread_mutex_lock.c:79

#3 0x00000000004008b1 in func1 () at test5.c:27

#4 0x000000000040094e in thread1 (arg=0x0) at test5.c:52

#5 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3aa9f2700)

at pthread_create.c:309

#6 0x00000030552e42bd in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7fc3aa1f1700 (LWP 42748)):

#0 __lll_lock_wait ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

#1 0x00007fc3aaa00457 in _L_lock_913 () from /lib64/libpthread.so.0

#2 0x00007fc3aaa00280 in __GI___pthread_mutex_lock (mutex=0x601280 <mutex1>)

at ../nptl/pthread_mutex_lock.c:79

#3 0x000000000040090d in func2 () at test5.c:40

#4 0x000000000040097c in thread2 (arg=0x0) at test5.c:65

#5 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3aa1f1700)

at pthread_create.c:309

#6 0x00000030552e42bd in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fc3a99f0700 (LWP 42749)):

#0 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6

#1 0x00000030552b58a4 in sleep () from /lib64/libc.so.6

#2 0x00000000004009b0 in thread3 (arg=0x0) at test5.c:78

#3 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3a99f0700)

at pthread_create.c:309

#4 0x00000030552e42bd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fc3a91ef700 (LWP 42750)):

#0 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6

#1 0x00000030552b58a4 in sleep () from /lib64/libc.so.6

#2 0x00000000004009f5 in thread4 (arg=0x0) at test5.c:89

#3 0x00007fc3aa9fe092 in start_thread (arg=0x7fc3a91ef700)

at pthread_create.c:309

#4 0x00000030552e42bd in clone () from /lib64/libc.so.6

---Type <return> to continue, or q <return> to quit---

Thread 1 (Thread 0x7fc3aa9f4700 (LWP 42746)):

#0 0x00007fc3aa9ff492 in pthread_join (threadid=140478357907200,

thread_return=0x0) at pthread_join.c:92

#1 0x0000000000400af1 in main () at test5.c:119

从栈信息可以初步判断,有可能是4号和5号线程锁住了。

查看27行和40行源文件的代码:

(gdb) l test5.c:27

22 int func1()

23 {

24 pthread_mutex_lock(&mutex1);

25 ++sequence1;

26 sleep(1);

27 pthread_mutex_lock(&mutex2);

28 ++sequence2;

29 pthread_mutex_unlock(&mutex2);

30 pthread_mutex_unlock(&mutex1);

31

(gdb) l test5.c:40

35 int func2()

36 {

37 pthread_mutex_lock(&mutex2);

38 ++sequence2;

39 sleep(1);

40 pthread_mutex_lock(&mutex1);

41 ++sequence1;

42 pthread_mutex_unlock(&mutex1);

43 pthread_mutex_unlock(&mutex2);

44

看一下4号和5号线程是不是锁住了:

(gdb) thread 5 ------------- 切换到5号线程

[Switching to thread 5 (Thread 0x7fc3aa9f2700 (LWP 42747))]

#0 __lll_lock_wait ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

135 ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.

(gdb) n ------------- 执行下一步,卡住,Ctrl+C跳出

^C

Program received signal SIGINT, Interrupt.

__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

135 in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S

(gdb) thread 2 ------------- 切换到2号线程

[Switching to thread 2 (Thread 0x7fc3a91ef700 (LWP 42750))]

#0 0x00000030552b5a0d in nanosleep () from /lib64/libc.so.6

(gdb) n ------------- 执行下一步,可正常执行

Single stepping until exit from function nanosleep,

which has no line number information.

0x00000030552b58a4 in sleep () from /lib64/libc.so.6

(gdb) n

Single stepping until exit from function sleep,

which has no line number information.

thread4 (arg=0x0) at test5.c:91

91 memset(szBuf, 0, sizeof(szBuf));

(gdb) thread 4 ------------- 切换到4号线程

[Switching to thread 4 (Thread 0x7fc3aa1f1700 (LWP 42748))]

#0 __lll_lock_wait ()

at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

135 ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.

(gdb) n ------------- 执行下一步,卡住

^C^C

Program received signal SIGINT, Interrupt.

__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135

135 in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S

(gdb)

以上方法可调试找出程序中出现死锁的地方。

# 9 core文件调试

# 9.1 使用命令

ulimit -c

查看core文件生成的大小限制,若为0,则表示不会生成core文件。(注:ulimit不会影响其他shell终端)

ulimit -c <size>

设置core文件生成的大小。

cat /proc/sys/kernel/core_pattern

查看core文件路径。

gdb <a.out> <corefile>

调试core文件

# 9.2 示例

# 9.2.1 源代码test6.c

一个能产生core dump的程序

  1. #include <stdio.h>
  2. static void sub(void);
  3. int main(void)
  4. {
  5. sub();
  6. return 0;
  7. }
  8. static void sub(void)
  9. {
  10. int *p = NULL;
  11. /* derefernce a null pointer, expect coredump. */
  12. printf("%d", *p);
  13. }

# 9.2.2 调试过程

查看core文件是否开启:

root@luo:~/workspace/test/exec\>ulimit -c

0

设置core文件大小:

root@luo:~/workspace/test/exec\>ulimit -c 1024

root@luo:~/workspace/test/exec\>ulimit -c

1024

查看core文件路径:

root@luo:~/workspace/test/exec\>cat /proc/sys/kernel/core_pattern

/SE/core-%e-%p

root@luo:~/workspace/test/exec\>ls /SE

ai core--22330 core--4231 log ngtp_agent web_disk

core--21300 core--23374 core--5227 mysql mp.log

执行程序,生成core文件:

root@luo:~/workspace/test/exec\>./test6

Segmentation fault (core dumped)

查看是否生成core文件:

root@luo:~/workspace/test/exec\>ls /SE

ai core--23374 core-test6-44938 ngtp_agent

core--21300 core--4231 log mp.log

core--22330 core--5227 mysql web_disk

使用GDB调试:

root@luo:~/workspace/test/exec\>gdb -q test6 /SE/core-test6-44938

Reading symbols from /home/luo/workspace/test/exec/test6...done.

[New LWP 44938]

Core was generated by `./test6'.

Program terminated with signal 11, Segmentation fault.

#0 0x0000000000400554 in sub () at test6.c:12

12 printf("%d", *p);

(gdb) bt ------------- 显示栈信息

#0 0x0000000000400554 in sub () at test6.c:12

#1 0x0000000000400539 in main () at test6.c:5

(gdb)

可以看到最后入栈的是sub函数里、位于test6.c文件第12行。所以core dump的问题可能出在这里。

# 10 gdb调试

# 10.1 命令介绍

gdb脚本基于gdb命令实现,可在虚拟机和设备上直接运行。使用此脚本可批量对多个进程执行给定命令,也可以调试-i指定的非进程。

命令 gdb
命令格式 gdb [-s|-p] [-w] [-F 'SEPERATOR'] [-i '_PIDS'] [-e '_PIDS'] -c|-f 'CMD_ARGS'
参数说明 -s 串行执行CMD(依次对每个执行CMD;默认选项) -p 并行执行CMD(同时对每个执行CMD) -w 等待所有上都执行CMD完毕,否则任意执行完CMD都将停止其他上的执行(仅对-p有效) -i 使用指定的 pids(多个pid以空格分隔),若不指定则自动扫描所有进程 -e 剔除指定的 pids(多个pid以空格分隔) -c 命令列表(多条命令以';'或-F指定的分隔符进行分隔) -f 命令文件(对于带有分支、循环等复杂控制的多条命令,推荐采用命令文件形式) -F 命令列表中的分隔符(默认为';')

# 10.2 使用示例

  1. 获取mempool状态。(PID应为master或nae的pid)

    gdb -c 'call rte_mempool_list_dump(stdout)' -i <PID>

    gdb -c 'call cfg_callback_test_coredump(0,0)' -i $pid

    gdb -c '' -i $pid

  2. 临时在指定位置添加打印函数。

    gdb -p -c 'b test.c:45; commands; echo ----will bug_on----\n; bt; c; end; c'

  3. 验证RCU是否执行session释放。

    gdb -p -c 'handle all noprint nostop; b _free_mobj if mid==session_mobj; commands; info thread; bt; end; c'

  4. 显示所有进程的calltrace信息及本地变量。

    说明:对于多、无断点场景下的私有数据、状态,可串行顺序执行。

    gdb -c 'bt full'

  5. 显示所有进程/线程的calltrace信息。(类似于tdb的info state)

说明:对于多、无断点场景下的私有数据、状态,可串行顺序执行。

gdb -c 'thread apply all bt'

  1. 查看每个进程的私有全局变量engine_id、session_local,并打印CallTrace。

    gdb -c 'p engine_id; p/x *session_local; bt'

  2. 对指定进程11662,在其neigh.c:1235行的BUG_ON(1)处设置断点,生成core文件。

    说明:这种方式生成的core文件不同于由内核生成的/SE/core--PID,它含有共享内存的绝大部分数据,便于深入分析。须注意的是这种core文件一般较大,可能达到几个GB,因此要保证足够的存储空间;存储可能需要十几秒或几十秒。若不指定文件名,则在当前目录下生成名为core.PID的core文件(此时可提前cd到/SE下)。

    gdb -c 'b neigh.c:1235; commands; silent; gcore /home/luo/workspace/core-neigh.11662; c; end; c' -i 11662

  3. 对指定进程11662,在其ut函数处设置断点,每个报文到来则打印tbuf信息。

说明:对单个进程,不存在串行/并行的区别,可按串行处理。

gdb -c 'b ut; commands; silent; p/x *tbuf; c; end; c' -i 11662

  1. 打开分片重组部分的调试开关debug_ip4_frag_recv、debug_ip4_mtu_send。

说明:这两个变量都为共享数据,只需设置单个即可,如pid为11662。

gdb -c 'set debug_ip4_frag_recv=1; set debug_ip4_mtu_send=1; printf "recv=%d,send=%d",debug_ip4_frag_recv,debug_ip4_mtu_send' -i 11662

  1. 对所有进程设置条件指令断点,触发后执行指定命令,执行命令后继续执行不退出。

说明:对于涉及多的有断点场景,应使用并行模式。

gdb -p -c 'b test.c:22 if cnt%6==4; commands; silent; echo --trace--\n; bt; printf "\nname=%s cnt=%d\n", name, cnt; c; end; c'

该命令序列也可写入命令文件:(-f /tmp/a.gdb)

handle all noprint nostop

b test.c:22 if cnt%6==4

commands

silent

echo --trace--\n

bt

printf "\nname=%s cnt=%d\n", name, cnt

c

end

c

[注]:最后的c命令,使得设完断点及commands后继续运行,倒数第二条c命令,使得断点触发/处理后仍继续运行。

  1. 对所有进程设置数据断点,当数值被改变时,打印CallTrace。

    说明:watch可监控数据是否被改变,rwatch可监控数据是否被读取,awatch包括这两类。

    gdb -p -c 'watch st.age; commands; bt; end; c; c'

  2. 对每个设置多个断点,每个断点触发时打印CallTrace及文件/函数/行信息。

    说明:每个断点对应自己的触发处理,此处采用了自定义命令hit_me的方式。

    gdb -p -f /tmp/b.gdb

    handle all noprint nostop

    define hit_me

    echo \n>>>hit_me>>>\n

    bt

    info thread

    end

    b test.c:24

    commands

    hit_me

    c

    end

    b test.c:36

    commands

    hit_me

    c

    end

    c

  3. 查看phy_dev[]中ifindex为26的结构体。

    说明:phy_dev为共享数据,因此只需查看单个即可,如pid为11662。命令序列略繁,可写入命令文件。

    gdb -f /tmp/dev.gdb -i 11662

    脚本/tmp/dev.gdb内容如下:

    handle all noprint nostop

    set print pretty

    set $idx=26

    set $i=0

    while ($i<256)

    set $d = (struct dev*)phy_dev[$i]

    if ($d == 0)

    loop_break

    end

    if ($d->ifindex==$idx)

    p/x *$d

    loop_break

    end

    set $i = $i+1

    end

  4. 查看挂接在链表mirror_filter_list上的每个filter节点。

说明:mirror_filter_list为共享数据,因此只需查看单个即可,如pid为11662。

gdb -f /tmp/mirror_filter.gdb -i 11662

脚本mirror_filter.gdb内容如下:

handle all noprint nostop

set print pretty

p/x &mirror_filter_list

set $f=mirror_filter_list.next

while (1)

if ($f==&mirror_filter_list)

echo [end of list]

loop_break

end

p/x *(struct mirror_filter_t*)$f

set $f=((struct list_head*)$f)->next

end

  1. 获取进程core大小限制。

    gdb -c 'p getrlimit(4,$rsp-32); x/2xg $rsp-32'

+ + + diff --git a/blogs/acknowledge/locktest.html b/blogs/acknowledge/locktest.html new file mode 100644 index 0000000..b6481ec --- /dev/null +++ b/blogs/acknowledge/locktest.html @@ -0,0 +1,312 @@ + + + + + + mutex、读写锁、自旋锁、信号量以及RCU的性能测试 | 斯人如彩虹 + + + + + + + + + + + +

mutex、读写锁、自旋锁、信号量以及RCU的性能测试

6/12/2022 知识

# mutex、读写锁、自旋锁、信号量以及RCU的性能测试

# 前言

本例为一个读线程和一个写线程,在不同加锁情况下测试一秒钟读写次数 +没有测试多线程情况,结果只有参考意义 +读写次数还与cpu频率相关 但大致不同种类的锁性能比较差距不大 +测试源码和过程在最下面

# 一、直接上结论

# 1、以下为每秒读写次数

次数与cpu频率相关,不同机器测试结果不同(这里使用ubuntu20.04虚拟机测试的)

读写锁 21000k

mutex 31000k

自旋锁 58000k

信号量 27000k

rcu 47000k

# 2、锁的特点和使用场景

自旋锁特点 循环等待等 力度很小 用于链表头指针改变等情况

mutex 加锁时线程休眠一会看一下 可用于大部分情况

读写锁 读写都要判断 加锁复杂 不推荐使用

信号量 pv操作 比mutex低一点

rcu 读写锁变种 read copy update 可以代替读写锁情况

# 二、环境准备

编译命令
+
    gcc -o rcu rcu.c -lpthread -lurcu
+
1
rcu锁需要安装liburcu-dev
+
    apt-get install liburcu-dev
+
1

# 三、实际测试结果

不加锁

root@luo:~/workspace/test# ./rcu 
+Error: x:2340421, y:3524383
+
1
2

读写锁

root@luo:~/workspace/test# ./rcu 
+reads: 19500709, 19500 K reads/sec
+reads: 44758029, 22379 K reads/sec
+reads: 65393430, 21797 K reads/sec
+reads: 85189522, 21297 K reads/sec
+
+
1
2
3
4
5
6

信号量

root@luo:~/workspace/test# ./rcu 
+reads: 27627678, 27627 K reads/sec
+reads: 55094966, 27547 K reads/sec
+reads: 82395410, 27465 K reads/sec
+reads: 109609817, 27402 K reads/sec
+
1
2
3
4
5

mutex

root@luo:~/workspace/test# ./rcu 
+reads: 32018261, 32018 K reads/sec
+reads: 63767452, 31883 K reads/sec
+reads: 95838658, 31946 K reads/sec
+reads: 127792109, 31948 K reads/sec
+
+
1
2
3
4
5
6

自旋锁

root@luo:~/workspace/test# ./rcu 
+reads: 57844075, 57844 K reads/sec
+reads: 117047083, 58523 K reads/sec
+reads: 173215973, 57738 K reads/sec
+reads: 229239811, 57309 K reads/sec
+
+
1
2
3
4
5
6

RCU

root@luo:~/workspace/test# ./rcu 
+reads: 47511136, 47511 K reads/sec
+reads: 94736084, 47368 K reads/sec
+reads: 141648406, 47216 K reads/sec
+reads: 188779939, 47194 K reads/sec
+
+
1
2
3
4
5
6

# 四、 源码

rcu.c

#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <pthread.h>
+#include <limits.h>
+#include <semaphore.h>
+
+#include <urcu.h>
+
+struct point {
+	int x;
+	int y;
+};
+
+struct point *gp;
+int done = 0;
+long reads = 0;
+
+
+pthread_rwlock_t rwlock;
+pthread_mutex_t mutex;
+pthread_spinlock_t spinlock;
+sem_t sem;
+
+void *timer(void *arg) {
+
+	struct timespec ts, ts2;
+	timespec_get(&ts, TIME_UTC);
+
+	while (!done) {
+
+		sleep(1);
+		timespec_get(&ts2, TIME_UTC);
+
+		time_t sec = ts2.tv_sec - ts.tv_sec;
+
+		printf("reads: %ld, %ld K reads/sec\n", reads, (reads/sec)/1000);
+
+	}
+
+}
+
+void *updater(void *arg) {
+
+	struct point *p;
+	struct point *old;
+
+	int i = 0;
+	for (i = 0;i < INT_MAX;i ++) {
+
+		p = malloc(sizeof(struct point));
+
+		p->x = i;
+		p->y = i+1;
+
+		old = gp;
+#if 0
+		gp = p;
+
+#elif 0
+		pthread_rwlock_wrlock(&rwlock);
+		gp = p;
+		pthread_rwlock_unlock(&rwlock);
+
+#elif 0
+
+		pthread_mutex_lock(&mutex);
+		gp = p;
+		pthread_mutex_unlock(&mutex);
+
+#elif 0
+
+		pthread_spin_lock(&spinlock);
+		gp = p;
+		pthread_spin_unlock(&spinlock);
+
+#elif 1
+
+		rcu_assign_pointer(gp, p);
+		synchronize_rcu();
+
+#else
+
+		sem_wait(&sem);
+		gp = p;
+		sem_post(&sem);
+
+#endif
+		free(old);
+		
+	}
+
+}
+
+void *reader(void *arg) {
+
+	rcu_register_thread(); //urcu
+
+	while (!done) {
+
+		int x, y;
+#if 0
+		x = gp->x;
+		y = gp->y;
+#elif 0
+		pthread_rwlock_rdlock(&rwlock);
+		x = gp->x;
+		y = gp->y;
+		pthread_rwlock_unlock(&rwlock);
+
+#elif 0
+
+		pthread_mutex_lock(&mutex);
+		x = gp->x;
+		y = gp->y;
+		pthread_mutex_unlock(&mutex);
+
+#elif 0
+
+		pthread_spin_lock(&spinlock);
+		x = gp->x;
+		y = gp->y;
+		pthread_spin_unlock(&spinlock);
+
+#elif 1
+
+		rcu_read_lock();
+
+		struct point *p = rcu_dereference(gp);
+		x = p->x;
+		y = p->y;
+
+		rcu_read_unlock();
+
+#else
+
+		sem_wait(&sem);
+		x = gp->x;
+		y = gp->y;
+		sem_post(&sem);
+
+#endif
+		reads ++;
+
+		if (y != x+1) {
+			printf("Error: x:%d, y:%d\n", x, y);
+			done = 1;
+			break;
+		}
+
+	}
+
+	rcu_unregister_thread();
+
+	exit(1);
+}
+
+
+int main() {
+
+	pthread_t tid[3];
+
+	pthread_rwlock_init(&rwlock, NULL);
+	pthread_mutex_init(&mutex, NULL);
+	pthread_spin_init(&spinlock, PTHREAD_PROCESS_SHARED);
+	sem_init(&sem, 0, 1);
+
+	rcu_init(); // rcu 
+
+	gp = malloc(sizeof(struct point));
+	gp->x = 1;
+	gp->y = 2;
+
+	pthread_create(&tid[0], NULL, updater, NULL);
+	pthread_create(&tid[1], NULL, reader, NULL);
+	pthread_create(&tid[2], NULL, timer, NULL);
+
+	int i = 0;
+	for (i = 0;i < 3;i ++) {
+		pthread_join(tid[i], NULL);
+	}
+
+	free(gp);
+}
+
+
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
+ + + diff --git a/blogs/acknowledge/memoryleak.html b/blogs/acknowledge/memoryleak.html new file mode 100644 index 0000000..cc8cffd --- /dev/null +++ b/blogs/acknowledge/memoryleak.html @@ -0,0 +1,213 @@ + + + + + + gdb查看堆内存以及内存泄漏的一种定位方法 | 斯人如彩虹 + + + + + + + + + + + +

gdb查看堆内存以及内存泄漏的一种定位方法

6/26/2022 知识

# 方法

循环分配10000个类对象 然后查看内存空间源码在最下面

对c++类的虚函数有基本了解

# 编译命令

g++ -o memtest memtest.cpp -g -O0
+
1

# 直接开始

@luo:~/workspace/memtest# gdb memtest <----------------------- 使用gdb 调试memtest
+GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
+...
+...
+Reading symbols from memtest...
+(gdb) r <------------------------------------------------------开始运行
+Starting program: /root/workspace/memtest/memtest 
+terminate called after throwing an instance of 'std::bad_alloc'
+  what():  std::bad_alloc
+
+Program received signal SIGABRT, Aborted.
+__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
+50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
+(gdb) info proc <---------------------------------------------查看当前进程信息
+process 2132 <------------------------------------------------ 当前进程pid
+cmdline = '/root/workspace/memtest/memtest'
+cwd = '/root/workspace/memtest'
+exe = '/root/workspace/memtest/memtest'
+(gdb) shell pmap -x 2132 <------------------------------------ 使用pmap查看内存映射
+2132:   /root/workspace/memtest/memtest
+Address           Kbytes     RSS   Dirty Mode  Mapping
+0000555555554000       4       4       4 r---- memtest
+0000555555555000       4       4       4 r-x-- memtest
+0000555555556000       4       4       0 r---- memtest
+0000555555557000       4       4       4 r---- memtest
+0000555555558000       4       4       4 rw--- memtest
+0000555555559000     396     324     324 rw---   [ anon ] <------堆内存地址
+00007ffff7a7d000      16      16      16 rw---   [ anon ]
+00007ffff7a81000      12      12       0 r---- libgcc_s.so.1
+00007ffff7a84000      72      72       0 r-x-- libgcc_s.so.1
+00007ffff7a96000      16      16       0 r---- libgcc_s.so.1
+00007ffff7a9a000       4       4       4 r---- libgcc_s.so.1
+00007ffff7a9b000       4       4       4 rw--- libgcc_s.so.1
+00007ffff7a9c000      52      52       0 r---- libm-2.31.so
+00007ffff7aa9000     668     256       0 r-x-- libm-2.31.so
+00007ffff7b50000     612       0       0 r---- libm-2.31.so
+00007ffff7be9000       4       4       4 r---- libm-2.31.so
+00007ffff7bea000       4       4       4 rw--- libm-2.31.so
+00007ffff7beb000     136     136       0 r---- libc-2.31.so
+00007ffff7c0d000    1504     848       8 r-x-- libc-2.31.so
+00007ffff7d85000     312     172       0 r---- libc-2.31.so
+00007ffff7dd3000      16      16      16 r---- libc-2.31.so
+00007ffff7dd7000       8       8       8 rw--- libc-2.31.so
+00007ffff7dd9000      16      12      12 rw---   [ anon ]
+00007ffff7ddd000     600     600       0 r---- libstdc++.so.6.0.28
+00007ffff7e73000     964     628       4 r-x-- libstdc++.so.6.0.28
+00007ffff7f64000     292     164       0 r---- libstdc++.so.6.0.28
+00007ffff7fad000       4       0       0 ----- libstdc++.so.6.0.28
+00007ffff7fae000      44      44      44 r---- libstdc++.so.6.0.28
+00007ffff7fb9000      12      12      12 rw--- libstdc++.so.6.0.28
+00007ffff7fbc000      20      20      20 rw---   [ anon ]
+00007ffff7fcb000      12       0       0 r----   [ anon ]
+00007ffff7fce000       4       4       4 r-x--   [ anon ]
+00007ffff7fcf000       4       4       0 r---- ld-2.31.so
+00007ffff7fd0000     140     140      24 r-x-- ld-2.31.so
+00007ffff7ff3000      32      32       0 r---- ld-2.31.so
+00007ffff7ffc000       4       4       4 r---- ld-2.31.so
+00007ffff7ffd000       4       4       4 rw--- ld-2.31.so
+00007ffff7ffe000       4       4       4 rw---   [ anon ]
+00007ffffffde000     132      12      12 rw---   [ stack ]
+ffffffffff600000       4       0       0 --x--   [ anon ]
+---------------- ------- ------- ------- 
+total kB            6148    3648     548
+													计算方法 396*1024/8=50688
+(gdb) x/50688a 0x0000555555559000  <----------------------- 查看堆内存地址数据
+0x555555559000:	0x0	0x291
+...
+...
+0x55555556aea0:	0x0	0x21
+0x55555556aeb0:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+0x55555556aec0:	0x0	0x21
+0x55555556aed0:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+0x55555556aee0:	0x0	0x21
+0x55555556aef0:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+0x55555556af00:	0x0	0x21
+0x55555556af10:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+...
+
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

使用 c++filt翻译函数符号名称_ZTV7MEMTEST为MEMTEST虚表指针

root@luo:~/workspace/memtest# c++filt _ZTV7MEMTEST
+vtable for MEMTEST
+
1
2

顺便查看一下虚函数表存的什么,~MEMTEST为虚析构函数地址(c++的多态相关)

(gdb) x/10a 0x555555557cd0
+0x555555557cd0 <_ZTV7MEMTEST+16>:	0x555555555330 <MEMTEST::~MEMTEST()>	0x55555555534e <MEMTEST::~MEMTEST()>
+
1
2

在类中没有虚函数时的内存

0x55555556aea0:	0x0	0x21
+0x55555556aeb0:	0xbb114514aa114514	0x0
+0x55555556aea0:	0x0	0x21
+0x55555556aeb0:	0xbb114514aa114514	0x0
+
1
2
3
4

在类中有虚函数时的内存

0x55555556aea0:	0x0	0x21
+0x55555556aeb0:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+0x55555556aec0:	0x0	0x21
+0x55555556aed0:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+0x55555556aee0:	0x0	0x21
+0x55555556aef0:	0x555555557cd0 <_ZTV7MEMTEST+16>	0xbb114514aa114514
+
1
2
3
4
5
6

# 源码memtest.cpp

#include <iostream>
+using namespace std;
+
+class MEMTEST
+{
+public:
+    // 注释掉后就没有 虚表指针 0x555555557cd0 <_ZTV7MEMTEST+16>
+    virtual ~MEMTEST() {}
+
+    int i;
+    int j;
+};
+
+void f()
+{
+    for (int i = 0; i < 10000; ++i)
+    {
+        //
+        MEMTEST *p = new MEMTEST;
+        p->i = 0xAA114514;
+        p->j = 0xBB114514;
+    }
+
+    throw std::bad_alloc();
+}
+
+int main()
+{
+    f();
+
+    return 0;
+}
+
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
+ + + diff --git a/blogs/acknowledge/perf_flamegraph.html b/blogs/acknowledge/perf_flamegraph.html new file mode 100644 index 0000000..c39af68 --- /dev/null +++ b/blogs/acknowledge/perf_flamegraph.html @@ -0,0 +1,184 @@ + + + + + + perf工具和火焰图简介 | 斯人如彩虹 + + + + + + + + + + + +

perf工具和火焰图简介

7/24/2022 知识

# 1 perf工具和火焰图简介

能做什么:

可以分析函数执⾏的频繁程度

可以分析哪些函数经常阻塞

可以分析哪些函数频繁分配内存

Flame Graph 原图路径:https://queue.acm.org/downloads/2016/Gregg4.svg

img

# 2 通过perf收集函数堆栈信息绘制火焰图

# 2.1 安装perf

perf 命令(performance 的缩写)讲起, 它是 Linux 系统原⽣提供的性能分析⼯具, 会返回 CPU 正在执⾏的函数名以及调⽤栈(stack)

安装perf

 apt install linux-tools-common
+
1

测试perf是否可用 perf.data为产生的文件

┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# perf record -F 99 -a -g -- sleep 10
+[ perf record: Woken up 1 times to write data ]
+[ perf record: Captured and wrote 0.598 MB perf.data (3370 samples) ]
+
+┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# ls
+perf.data  perf.data.old  test  test.c
+
1
2
3
4
5
6
7
8

# 2.2 编译并运行测试程序

test.c 源码和接受在最下面

┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# gcc -o test test.c -g
+┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# ./test 
+main into
+
1
2
3
4
5

# 2.3 使用perf采集数据

perf record 表示采集系统事件, 没有使⽤ -e 指定采集事件, 则默认采集 cycles(即 CPU clock 周

期), -F 99 表示每秒 99 次, -p pidof test是进程号, 即对哪个进程进⾏分析, -g 表示记录调⽤栈,

sleep 30 则是持续 30 秒.

┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# perf record -F 99 -p `pidof test` -g -- sleep 30 
+[ perf record: Woken up 1 times to write data ]
+[ perf record: Captured and wrote 0.235 MB perf.data (2962 samples) ]
+
+┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# ls
+perf.data  perf.data.old  test  test.c
+
1
2
3
4
5
6
7
8

使用perf report 可以看到堆栈热点函数

┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# perf report 
+
+Samples: 2K of event 'cpu-clock:pppH', Event count (approx.): 29919191620             
+  Children      Self  Command  Shared Object      Symbol                              
++  100.00%     0.00%  test     libc-2.31.so       [.] __libc_start_main
++  100.00%    29.71%  test     test               [.] main
++   35.58%    35.55%  test     test               [.] func_c
++   19.85%    19.85%  test     test               [.] func_b
++   14.85%     9.55%  test     test               [.] func_a
++    5.30%     5.30%  test     test               [.] func_d
+     0.03%     0.03%  test     [kernel.kallsyms]  [k] __lock_text_start
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] apic_timer_interrupt
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] smp_apic_timer_interrupt
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] irq_exit
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] __softirqentry_text_start
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] run_timer_softirq
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] __run_timers.part.0
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] call_timer_fn
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] rh_timer_func
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] usb_hcd_poll_rh_status
+     0.03%     0.00%  test     [kernel.kallsyms]  [k] uhci_hub_status_data
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2.4 下载火焰图脚本

https://github.com/brendangregg/FlameGraph

git clone https://gitee.com/mirrors/FlameGraph.git

┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# git clone https://gitee.com/mirrors/FlameGraph.git 
+Cloning into 'FlameGraph'...
+remote: Enumerating objects: 1147, done.
+remote: Total 1147 (delta 0), reused 0 (delta 0), pack-reused 1147
+Receiving objects: 100% (1147/1147), 1.87 MiB | 806.00 KiB/s, done.
+Resolving deltas: 100% (674/674), done.
+
+┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# ls
+FlameGraph  perf.data  perf.data.old  test  test.c
+
+┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# ls FlameGraph/
+aix-perf.pl                      stackcollapse-gdb.pl
+demos                            stackcollapse-go.pl
+dev                              stackcollapse-instruments.pl
+...
+...
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 2.5 生成火焰图

┌──(root💀luo)-[~/workspace/flamegraph/src-flamegraph/test]
+└─# perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > process.svg
+
1
2

下载到windows桌面用浏览器打开查看效果

https://lzwtty.oss-cn-hangzhou.aliyuncs.com/blogimage/acknowledge/test_flamegraph.svg

img

可以很清晰的看到热点函数调用占用cpu使用率

# 2.5 ⽕焰图的含义

⽕焰图是基于 stack 信息⽣成的 SVG 图⽚, ⽤来展示 CPU 的调⽤栈。

  • y 轴表示调⽤栈, 每⼀层都是⼀个函数. 调⽤栈越深, ⽕焰就越⾼, 顶部就是正在执⾏的函数, 下

⽅都是它的⽗函数.

  • x 轴表示抽样数, 如果⼀个函数在 x 轴占据的宽度越宽, 就表示它被抽到的次数多, 即执⾏的时

间⻓. 注意, x 轴不代表时间, ⽽是所有的调⽤栈合并后, 按字⺟顺序排列的.

  • ⽕焰图就是看顶层的哪个函数占据的宽度最⼤. 只要有 “平顶”(plateaus), 就表示该函数可能存

在性能问题。

  • 颜⾊没有特殊含义, 因为⽕焰图表示的是 CPU 的繁忙程度, 所以⼀般选择暖⾊调.

# 源码test.c

#include <stdio.h>
+
+void func_d() // 5
+{
+    for (int i = 5 * 10000; i--;); //5
+}
+void func_a()  // 10+5= 15
+{
+    for (int i = 10 * 10000; i--;); //10 
+    func_d();   //5 
+}
+void func_b()
+{
+    for (int i = 20 * 10000; i--;);  // 20
+}
+void func_c()
+{
+    for (int i = 35 * 10000; i--;); // 35
+}
+int main(void)
+{
+    printf("main into\n");
+    while (1)  // 100
+    {
+        for (int i = 30 * 10000; i--;); // 30 
+        func_a(); //10+5 =15
+        func_b(); // 20
+        func_c(); // 35
+    }
+    printf("main end\n");
+    return 0;
+}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
+ + + diff --git a/blogs/acknowledge/site.html b/blogs/acknowledge/site.html new file mode 100644 index 0000000..f0fc2ba --- /dev/null +++ b/blogs/acknowledge/site.html @@ -0,0 +1,87 @@ + + + + + + 有用的知识网站 | 斯人如彩虹 + + + + + + + + + + + +

有用的知识网站

6/12/2024 知识

# 学习网站

小林coding的图解系统 (opens new window)

代码随想录 (opens new window)

好用的在线思维导图 (opens new window)

# 博客地址

高并发系统之限流特技 (opens new window)

动态链接库中函数的地址确定---PLT和GOT (opens new window)

Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈 (opens new window)

Redis和Memcached的区别 (opens new window)

epoll内核源码详解+自己总结的流程 (opens new window)

后台开发面试问题整理 (opens new window)

Linux内核:poll机制 (opens new window)

linux任务调度机制 (opens new window)

Linux内核:poll机制 (opens new window)

解读Raft(一 算法基础) - 杭州.Mark - 博客园 (opens new window)

Linux文件系统详解 - AlanTu - 博客园 (opens new window)

Linux c 开发 - 内存管理器ptmalloc - CSDN博客 (opens new window)

Linux环境变量及其设置 - CSDN博客 (opens new window)

比较全面的gdb调试命令 - 知识天地 - 博客园 (opens new window)

把握linux内核设计思想(六):内核时钟中断 - CSDN博客 (opens new window)

Linux进程调度原理 - alex.shu - 博客园 (opens new window)

Linux系统调用的实现机制分析 - CSDN博客 (opens new window)

理解inode - 阮一峰的网络日志 (opens new window)

多阶hash表 - juary_的专栏 - CSDN博客 (opens new window)

理解 glibc malloc - CSDN博客 (opens new window)

Redis与Memcached的比较-zpf1218-ChinaUnix博客 (opens new window)

glibc中malloc的详细解释 - CSDN博客 (opens new window)

Redis的那些最常见面试问题 - 回首笑人间 - 博客园 (opens new window)

浅析基于glibc的malloc - CSDN博客 (opens new window)

slab机制 - wangLinuxer - 博客园 (opens new window)

有感于STL的内存管理 (opens new window)

DNS使用的是TCP协议还是UDP协议 - qq100440110的专栏 - CSDN博客 (opens new window)

Linux的任务调度机制 - Nicholas的专栏 - CSDN博客 (opens new window)

进程—内存描述符(mm_struct) - CSDN博客 (opens new window)

彻底弄懂HTTP缓存机制及原理 - 木上有水 - 博客园 (opens new window)

利用CAS操作(Compare & Set)实现无锁队列 - CSDN博客 (opens new window)

进程间通信的方式——信号、管道、消息队列、共享内存 - 0giant - 博客园 (opens new window)

TCP的数据流——滑动窗口,拥塞窗口,慢启动,Nagle算法,经受时延的确认等 - 千里之外 - CSDN博客 (opens new window)

TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议 - 杨博东的博客 - 博客园 (opens new window)

C/C++ 笔试、面试题目大汇总 - fangyukuan - 博客园 (opens new window)

C/C++ 内存对齐原则及作用 - chy19911123的专栏 - CSDN博客 (opens new window)

mysql数据库面试总结 - bullets - 博客园 (opens new window)

[学习笔记]数据库设计三大范式与BCNF,学习笔记 - ybwang1989 - 博客园 (opens new window)

常见面试题整理--数据库篇(每位开发者必备) - weinierzui的专栏 - CSDN博客 (opens new window)

知识库 - 你身边的技术百科全书 - CSDN (opens new window)

进程上下文与线程上下文 - bingshanyijiao_fkx的专栏 - CSDN博客 (opens new window)

linux线程切换和进程切换的方法_Linux_脚本之家 (opens new window)

深入理解计算机系统之虚拟存储器 - Al_xin的专栏 - CSDN博客 (opens new window)

tcp的半连接与完全连接队列 - go4it - 简书 (opens new window)

数位dp总结 之 从入门到模板 - 努力 - CSDN博客 (opens new window)

类中函数的重载、隐藏和覆盖 - beaglebone - 博客园 (opens new window)

排序算法____基数排序 - Dingwj_blog - 博客园 (opens new window)

面试题干货在此_讨论区_牛客网 (opens new window)

排序算法系列:基数排序 - 大鱼 - CSDN博客 (opens new window)

位图索引:原理(BitMap index) - zhanlijun - 博客园 (opens new window)

fopen与open的区别 - 清清飞扬 - 博客园 (opens new window)

《深入理解计算机系统》-虚拟存储器 - gatsby_dhn - 简书 (opens new window)

Linux内核解析:进程间通信:管道 - 笨拙的菜鸟 - 博客园 (opens new window)

参考别人的面试总结:linux C/C++服务器后台开发面试题总结 - 大孟的博客 - CSDN博客 (opens new window)

linux C/C++服务器后台开发面试题总结 - Nancy26 - 博客园 (opens new window)

ELF 文件中的section 和 segment - wo_der的博客 - CSDN博客 (opens new window)

聊聊Linux动态链接中的PLT和GOT(1)——何谓PLT与GOT - 海枫的专栏 - CSDN博客 (opens new window)

ELF文件的加载和动态链接过程 - - ITeye博客 (opens new window)

ELF文件的加载过程(load_elf_binary函数详解)--Linux进程的管理与调度(十三) - AderStep - CSDN博客 (opens new window)

linux awk命令详解 - ggjucheng - 博客园 (opens new window)

IP分片和TCP分片的区别 - cumirror的专栏 - CSDN博客 (opens new window)

fork()----父子进程共享 - 程序狗的成长之路 - CSDN博客 (opens new window)

Makefile中的wildcard用法 - liangkaiming的专栏 - CSDN博客 (opens new window)

深入理解C++的动态绑定和静态绑定 - 常高伟的专栏 - CSDN博客 (opens new window)

C++模板元编程(C++ template metaprogramming) - 文章 - 伯乐在线 (opens new window)

C++后台开发校招面试常见问题 - oscarwin - CSDN博客 (opens new window)

互斥锁的实现(转) - hzhzh007的专栏 - CSDN博客 (opens new window)

TCP-IP详解:糊涂窗口综合症(Silly Window syndrome) - 深邃 精致 内涵 坚持 - CSDN博客 (opens new window)

浅析Linux下的task_struct结构体 - qq_29503203的博客 - CSDN博客 (opens new window)

C++虚继承的概念 - crystal_avast的专栏 - CSDN博客 (opens new window)

c++ 虚继承与继承的差异 - Kikim的地盘 - CSDN博客 (opens new window)

Linux的inode的理解 - iTech - 博客园 (opens new window)

IPC通信:Posix消息队列 - liuhongxiangm的专栏 - CSDN博客 (opens new window)

Linux线程的信号量同步 - JollyWing - 博客园 (opens new window)

Linux进程间通信——使用共享内存 - ljianhui的专栏 - CSDN博客 (opens new window)

gdb调试coredump(使用篇) - 叶落无痕,枫过有情…… - CSDN博客 (opens new window)

信号中断 与 慢系统调用 - 许振坪的专栏 - CSDN博客 (opens new window)

浅析CPU中断技术 - Funeral - 博客园 (opens new window)

Linux信号(signal) 机制分析 - h13 - 博客园 (opens new window)

EPOLLIN , EPOLLOUT , EPOLLPRI, EPOLLERR 和 EPOLLHUP事件 - yingying.liu的专栏 - CSDN博客 (opens new window)

三种工厂模式的分析以及C++实现 - 曾经的你| - 博客园 (opens new window)

STL源码剖析---红黑树原理详解上 - Hackbuteer1的专栏 - CSDN博客 (opens new window)

valgrind 的使用简介 - sduliulun的专栏 - CSDN博客 (opens new window)

_unix linux_脚本之家 (opens new window)

GDT(Global Descriptor Table)全局描述符表 - starlitnext - 博客园 (opens new window)

Linux程序加载过程 - 赢在拼搏中 - CSDN博客 (opens new window)

linux 用户空间与内核空间——高端内存详解 - 立超的专栏 - 博客园 (opens new window)

Linux虚拟地址空间布局以及进程栈和线程栈总结 - wilcohuang's blog - CSDN博客 (opens new window)

堆排算法的分析与总结 - HOU_JUN - 博客园 (opens new window)

HTTP必知必会——常见面试题总结 - Leeon的博客 - CSDN博客 (opens new window)

pthread_once单例模式 - tom555cat - CSDN博客 (opens new window)

pthread_once()使用(某个时间在整个程序中仅执行一次,不确定是那个线程) - 轻飘飞扬 - CSDN博客 (opens new window)

23种设计模式对比与总结 - 码农恋码 - 博客园 (opens new window)

ORM框架使用优缺点 - public - CSDN博客 (opens new window)

高性能服务开发之定时器 - 行健 - 博客园 (opens new window)

Https协议详解 - CoderZhuang - 博客园 (opens new window)

图解SSL/TLS协议 - 阮一峰的网络日志 (opens new window)

HTTPS 原理解析 - Zery - 博客园 (opens new window)

Linux的用户和用户组管理 - 风生水起 - 博客园 (opens new window)

TCP系列13—重传—3、协议中RTO计算和RTO定时器维护 - lshs - 博客园 (opens new window)

可执行文件(ELF)格式的理解 - 深海的小鱼儿 - 博客园 (opens new window)

GCC/G++编译参数含义 - yasi_xi的专栏 - CSDN博客 (opens new window)

Linux内核中cache的实现 - leopard_ray的专栏 - CSDN博客 (opens new window)

epoll源码实现分析[整理] - Apprentice89 - 博客园 (opens new window)

linux内核内存管理学习之三(slab分配器) - 浩海拾贝 - CSDN博客 (opens new window)

深度理解select、poll和epoll - 傻眼哥的博客 - CSDN博客 (opens new window)

【经典算法】——KMP,深入讲解next数组的求解 - c_cloud - 博客园 (opens new window)

Linux中断(interrupt)子系统之一:中断系统基本原理 - DroidPhone的专栏 - CSDN博客 (opens new window)

HTTP Session、Cookie机制详解 - 奔跑的001 - 博客园 (opens new window)

HttpSession详解 - 别再顺其自然 - 博客园 (opens new window)

HTTP的长连接和短连接 - 烛秋 - 博客园 (opens new window)

自动化构建 - 百度 (opens new window)

linux内核之进程的基本概念(进程,进程组,会话关系) - 笨拙的菜鸟 - 博客园 (opens new window)

Linux--进程组、会话、守护进程 - Alex_Monkey - 博客园 (opens new window)

银行家算法学习笔记 - 唯心不易 - 博客园 (opens new window)

linux session 浅谈 - younghongjian的专栏 - CSDN博客 (opens new window)

Linux-进程、进程组、作业、会话、控制终端详解 - John_ABC - 博客园 (opens new window)

关系型数据库到文档型数据库的跨越 - 海天一色是黑色的博客 - CSDN博客 (opens new window)

linux系统编程之进程(八):守护进程详解及创建,daemon()使用 - mickole - 博客园 (opens new window)

数据库设计三大范式 - Ruthless - 博客园 (opens new window)

常见面试题整理--数据库篇 - 铭记遗忘 - 博客园 (opens new window)

谈谈数据库的ACID - 敦格 - CSDN博客 (opens new window)

关于TCP乱序和重传的问题 - cws1214的专栏 - CSDN博客 (opens new window)

DNS 原理入门 - 阮一峰的网络日志 (opens new window)

数据结构专题——线段树 - MetalSeed - CSDN博客 (opens new window)

一步一步理解线段树 - tenos - 博客园 (opens new window)

mysql 数据表读锁机制详解 - joy696163 - 博客园 (opens new window)

单例模式全面学习(C++版) - weixliu - 博客园 (opens new window)

单例模式及C++实现代码 - 曾经的你| - 博客园 (opens new window)

每天进步一点点——五分钟理解一致性哈希算法(consistent hashing) - Cynric 的博客 - CSDN博客 (opens new window)

TCP 协议中MSS的理解-frankzfz-ChinaUnix博客 (opens new window)

TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制 - newwy - 博客园 (opens new window)

TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免 - losbyday - 博客园 (opens new window)

关于C++中公有继承、私有继承、保护继承的讨论 - This is bill的专属博客 - CSDN博客 (opens new window)

解决Hash碰撞冲突方法总结 - zeb_perfect的专栏 - CSDN博客 (opens new window)

Linux进程通信之POSIX共享内存 - anonymalias的专栏 - CSDN博客 (opens new window)

IPC对象持续性 - xiaohuima_dong的专栏 - CSDN博客 (opens new window)

Linux环境进程间通信(三):消息队列-hnsyspc-ITPUB博客 (opens new window)

Linux进程同步之POSIX信号量 - anonymalias的专栏 - CSDN博客 (opens new window)

进程/线程同步的方式和机制,进程间通信 - Icnblog_Wan - 博客园 (opens new window)

Linux进程同步之记录锁(fcntl) - jlins - 博客园 (opens new window)

Linux 伙伴算法简介 - 浩天之家 - 博客园 (opens new window)

孤儿进程与僵尸进程[总结] - Anker's Blog - 博客园 (opens new window)

Linux虚拟地址空间布局以及进程栈和线程栈总结 - Xzzzh - 博客园 (opens new window)

linux 内核poll/select/epoll实现剖析 - 在思考的路上 - ITeye博客 (opens new window)

Linux虚拟地址空间布局 - clover_toeic - 博客园 (opens new window)

HTTP详解(1)-工作原理 - guisu,程序人生。 逆水行舟,不进则退。 - CSDN博客 (opens new window)

epoll简介及触发模式(accept、read、send) - 留下的只是回忆 - 博客园 (opens new window)

linux内核分析笔记----中断和中断处理程序 - ☆&寒 烟☆ - 博客园 (opens new window)

标准IO与文件IO 的区别 - big_bit的博客 - CSDN博客 (opens new window)

硬中断和软中断 - zhangskd的专栏 - CSDN博客 (opens new window)

可重入和不可重入 - wenhui_的专栏 - CSDN博客 (opens new window)

浅谈数位DP - zbtrs - 博客园 (opens new window)

C++ Queues(队列)、Priority Queues(优先队列) - 面对现实,超越自己 - C++博客 (opens new window)

缓存淘汰算法--LRU算法 - 小程故事多 - ITeye博客 (opens new window)

Linux内核中内存cache的实现-yfydz-ChinaUnix博客 (opens new window)

socket编程中write、read和send、recv之间的区别 - petershina的专栏 - CSDN博客 (opens new window)

彻底学会使用epoll(六)——关于ET的若干问题总结 - feeman的专栏 - CSDN博客 (opens new window)

linux系统编程之进程(八):守护进程详解及创建,daemon()使用 - mickole - 博客园 (opens new window)

Linux IO模式及 select、poll、epoll详解 - 人云思云 - SegmentFault (opens new window)

select、poll、epoll之间的区别总结[整理] - Anker's Blog - 博客园 (opens new window)

树状数组彻底入门 - 半根毛线 - 博客园 (opens new window)

C++的new、delete及其内存管理 - Kelvin_Yan的专栏 - CSDN博客 (opens new window)

malloc 函数详解 - Commence - 博客园 (opens new window)

浅谈数据库查询优化的几种思路 - 六尺帐篷 - 简书 (opens new window)

硬中断与软中断的区别_Linux编程_Linux公社-Linux系统门户网站 (opens new window)

信号的基本概念、信号的产生以及阻塞信号 - 滴巴戈 - 博客园 (opens new window)

Linux信号(signal) 机制分析 - h13 - 博客园 (opens new window)

linux中断--LINUX中断机制与信号 - 鱼思故渊的专栏 - CSDN博客 (opens new window)

进程线程及堆栈关系的总结 - echoisland的专栏 - CSDN博客 (opens new window)

栈帧之深入理解c函数调用过程 - jelly_9的博客 - CSDN博客 (opens new window)

【经典数据结构】B树与B+树 - vincently - 博客园 (opens new window)

linux 物理内存和虚拟内存 - 百度 (opens new window)

C/C++函数调用过程分析 - as_ - 博客园 (opens new window)

胜者树与败者树 - whz_zb的专栏 - CSDN博客 (opens new window)

Epoll详解及源码分析 - 我有我的天空 - CSDN博客 (opens new window)

环回地址 - 百度 (opens new window)

拓扑排序的原理及其实现 - dm_vincent的专栏 - CSDN博客 (opens new window)

Manacher算法--O(n)回文子串算法 - xuanflyer - CSDN博客 (opens new window)

【转】二叉树、B树、B-树、B+树、B*树 - zhzhang - 博客园 (opens new window)

设计模式 之 单例模式 (C++ 懒汉经典实现 & DCL实现 & 饿汉经典实现) - 柠檬不加糖的博客 - CSDN博客 (opens new window)

C++中的单例模式 - Hackbuteer1的专栏 - CSDN博客 (opens new window)

【C/C++】对于可重入、线程安全、异步信号安全几个概念的理解 - ZhangPY的专栏 - CSDN博客 (opens new window)

B树、B-树、B+树、B*树详解(转) - 憨熊之家 - 博客园 (opens new window)

红黑树(一)之 原理和算法详细介绍 - 如果天空不死 - 博客园 (opens new window)

分布式锁的三种实现方式 - - ITeye技术网站 (opens new window)

平衡二叉树详解 - zhangbaochong - 博客园 (opens new window)

n个数中任意两个异或最大值 (opens new window)

+ + + diff --git a/blogs/inlove/frame_1.html b/blogs/inlove/frame_1.html new file mode 100644 index 0000000..84fbb22 --- /dev/null +++ b/blogs/inlove/frame_1.html @@ -0,0 +1,87 @@ + + + + + + 相处阶段-认识 (一) | 斯人如彩虹 + + + + + + + + + + + +

相处阶段-认识 (一)

5/22/2022 聊天

# 认识阶段

# 前言

​ 方法:同学同事 朋友介绍 搭讪 社交软件 相亲

​ 目的:多认识女生 明确合适的类型 防止死胡同

​ 注意:心态崩溃 很容易喜欢一个女生并上心 容易患得患失 这是所有不会追女生的共同点

​ 认识人主要三点:资源 展示面 方法 最重要的是资源

​ 主流认识途径: 社交软件 搭讪

​ * 社交软件是当下认识女生最快的途径

​ * 认识女生不代表不专一 而是要明确自己喜欢的类型

# 社交软件(探探 积木 soul等)

社交软件的关键:第一张照片(人帅 生活帅) 增加匹配率

如何用社交软件 要注意的细节

​ 第一张照片 做好 修一下 背景好 看清脸 后续兴趣爱好宠物 生活场景

​ 不要一直滑

​ 目的是要到微信 (可以说 我这个软件不常用 加个微信)

​ 不要聊太多

​ 不给就是没看上 下一个

​ 女生标注一上来就要微信的 都是老司机

​ 社交软件聊天不用太在意 要在意照片

​ 会员可以买

​ 不要发太多朋友圈

​ 资料认真填写

​ 照片可以约拍

​ 可以看其他竞争对手的照片

# 如何搭讪

也是一种提升和别人交流交往方式

主要是 状态 肢体语言 穿搭

搭讪的话术:

​ “我在这附近逛街看到你了 我想和你认识一下 留个微信吧”

​ 直接给

​ 犹豫害羞可以坚持一下:“我没有什么其他意思 就是想认识一下 你扫我一下”

​ 不想给:不强求

容易犯的错误:

​ 搭讪前不要被看到 从身后绕

​ 拍一下女生肩膀 同时说你好 要适中

​ 保持一米

​ 等对方看到你的眼睛后再开始说话

​ 说话要慢慢说

​ 不要有小动作

​ 真诚 不要油嘴滑舌

​ 有闺蜜的也要打招呼

三步:

​ 克服紧张 不在意女生是谁 只要不停的搭讪 不在意结果

​ 练习自己的说话和肢体语言

​ 尽量多的说话 能说多久说多久

+ + + diff --git a/blogs/inlove/frame_2.html b/blogs/inlove/frame_2.html new file mode 100644 index 0000000..398d585 --- /dev/null +++ b/blogs/inlove/frame_2.html @@ -0,0 +1,87 @@ + + + + + + 相处阶段-熟悉 (二) | 斯人如彩虹 + + + + + + + + + + + +

相处阶段-熟悉 (二)

5/22/2022 聊天

# 熟悉阶段

# 前言

​ 目的:让别人感觉你踏实 知道你是干什么的 大概是一个什么样的人

​ 注意:不熟悉属于无效聊天 可以适当幽默 不要想升高提升关系

​ 方法:真诚和踏实

要有目的的聊天 有目的的熟悉可以在十几分钟 不能无效聊天 女生放下手机 还能想起是什么人 建立基本的安全感 是个正常人 对我们有了关注 会看朋友圈

熟悉的三要素:

​ 让女生感觉到你说一个什么人(IT 宅男 文艺 工科男 工科男 创业者)印象 把感觉给到女生 大概是什么人

(我们班有个同学 特别调皮 成绩也还不错 这学期和别人打了三次架 是老师办公室的常客)

​ 大概了解她是什么人 做什么工作 多大年纪 有什么学历 了解基本信息 深入聊天

​ 聊聊女生感兴趣的话题 好吃好玩 明星综艺八卦

安全感的基础

​ 让别人感觉你踏实 知道你是干什么的 大概是一个什么样的人

# 第一次聊天的步骤 踏实 稳重

​ 寒暄 吃了吗 衣服好看 (刚下飞机 累死了 躺床上 抽根烟 休息一下)

​ 拉好聊氛围 老朋友 熟悉的气氛 搞笑的表情包 幽默开场白 一两句就行

​ 你好 正经正经 幽默对幽默

​ 朋友圈找信息 生活故事 表示自己状态 阳台吹风

​ dhv 高价值 有价值的地方 留下印象

​ 快速的自我介绍

​ (我是有个心理咨询师 别人情感 的 曾经有一个学员 找我心理辅导 停不下来了怎么这么的)

​ (我是有个程序员 出差半年的程序员)

​ 有趣的事情

​ dhv 不要说消极描述工作两点一线 说工程师 喜欢爱好 稍微包装

​ 信息互换

​ 不能问太多 最多三个

​ 问核心问题 先说自己 再问别人

​ 职业 年龄 学历 城市地域 了解大致是什么人

​ 说话要圆润一点 (你多大啊 我感觉 我比你大 ) 前面可以不问名字

​ 女生感兴趣的话题

​ 男生和女生基本没有共同话题的

​ 聊女生感兴趣的话题 朋友圈 星座八卦 吃的 玩的 宠物明星

​ 要有情绪的互动 找到感兴趣的点 或者共通的话题

​ (看到小孩 可以夸可爱 问为什么乖 激发分享欲)

​ 聊热点信息

+ + + diff --git a/blogs/inlove/frame_3.html b/blogs/inlove/frame_3.html new file mode 100644 index 0000000..3ff0e55 --- /dev/null +++ b/blogs/inlove/frame_3.html @@ -0,0 +1,87 @@ + + + + + + 相处阶段-吸引 (三) | 斯人如彩虹 + + + + + + + + + + + +

相处阶段-吸引 (三)

5/22/2022 聊天

# 吸引阶段

​ 吸引:吸引是女生愿意和你接触的原神动力 能配得上对方

​ 外形 价值 情绪三个吸引

​ 目的:让对方知道你是个猎人 优秀有能力的人 (事业成功 社交圈广 朋友多 物质条件优秀 自身条件好 生活有品位情调)

​ 注意:无吸引无追求 靠吸引而不是靠追

​ 方法:吸引就是高价值展示 做两种感觉被撩与害羞

# 猎人 有能力的男人 有高价值的男人

​ 繁衍价值

​ 高帅 身体强壮健康 年轻女生更喜欢高帅 大一点的喜欢有能力的

​ 生存价值

​ 外在 车房钱

​ 内在 优秀男人的特质 拼搏 进取 乐观 不屈不挠 有智慧 有内涵 有知识

怎么做

​ 高价值展示 朋友圈 工作生活兴趣爱好 展现自己的价值

​ 见面的形象 语言

建立吸引后下一步

​ 确认建立吸引 服从性测试 要电话 要照片 打电话起床

无吸引无追求

​ 没有建立起吸引的时候 暴露需求感会减低女人的吸引

​ 不要追求的事

# 吸引的两种感觉 什么是两种感觉 TF 暧昧聊天

​ 被撩的感觉BL 害羞的感觉FS

​ 撩BL 有好感才做 反馈一般的一点点 反馈不好的不要撩

​ 害羞FS 只能对反馈好的女生做

​ 做到想象 情景 有代入感 (和我谈恋爱的感觉一定很幸福吧)

# 吸引的形象 想象就是繁育价值

​ 第一印象很重要 类似投简历时的学历 形象判断人

​ 形象判断一个人的价值

​ 发型 穿着 肢体语言

​ 大众点评大店 根据脸型做一个发型 拍个照片照样子剪

​ 定型喷雾 发蜡 发胶 约会准备

​ 护肤 洁面 水乳

​ 服装 小红书

​ 模仿偶像 胡歌 和自身身份相符的

# 吸引的展示面

​ 昵称 头像 前面 墙 朋友圈

​ 昵称 不要非主流

​ 头像不要 风景照 证件照 宠物 卡通 网图 画质差照片

​ 任务缩小 视觉中心不要人物而是环境 网红背景 不要全脸要神秘

​ 朋友圈封面 广告位

​ 不要 网图 大头自拍 不要旅游照 风景照 要展示价值 品质生活照

​ 签名 有内涵

​ 朋友圈 不要转发鸡汤 没有自己的生活 纯文字 优秀的朋友 环境

​ 不要工作广告分组转发 专业的东西

​ 美食 娱乐生活 上进 愿意投资自己的人 宠物和小朋友也是好的

​ 和很多别的女性朋友照片 努力工作

​ 朋友圈配文 要少

​ 音乐分享

​ 门面 社交软件第一印象

​ 展示面是自己的窗口 名片 不是日记本

​ 社交软件 展示出来的状态

​ 展示面差女生一开始就不想聊了

​ 展示面是吸引的关键

​ 看朋友圈的几秒抓住女生

​ 做好头像和背景墙

​ 头像 不要用明星宠物

​ 要用自己的真是照片 露出正脸 发型 表情 独照 半身照 背景简洁

​ 背景图 全身照 环境不错的地方

​ 多角度展示自己的高价值

​ 看到自己的价值 要有自己的生活 接触有意思的东西

​ 展示面照片 工作 兴趣 生活 一定要展现自己的正能量 对生活的热爱

​ 看小红书这么拍生活照

​ 精致的生活 高价值的圈子 不要过多散发多愁善感

​ 不要发负能量的东西

+ + + diff --git a/blogs/inlove/frame_date.html b/blogs/inlove/frame_date.html new file mode 100644 index 0000000..bc4d835 --- /dev/null +++ b/blogs/inlove/frame_date.html @@ -0,0 +1,92 @@ + + + + + + 相处阶段-约会 | 斯人如彩虹 + + + + + + + + + + + +

相处阶段-约会

5/22/2022 聊天

# 约会

​ 关键的约会牵手S1 亲吻S2

# 注意流程和场地选择

​ 约会中的好感:场地40% 见面前的反馈30% 约会中的30% (失败的外部应数是很大的)

# 阶段

​ 第一次约会去互动性强的地方好玩的地方 场地逼格要高 环境好

​ S1 好玩的地方文艺的环境好

​ S2 文艺的环境好 半私密空间

# 转场很重要 一定要转场 最好三次 充实

​ 第一次 奶茶店 餐厅聊天半小时 吃饭

​ 第二次 娃娃机 电玩 旋转木马 互动的地方

​ 第三次 电影院 聊天

# 约会需要提前了解

​ 约会的场所 目的

​ 哪里的东西便宜好吃 环境好

​ 哪里适合牵手逛街

​ 哪家私人影院

​ 哪心情不好适合坐一坐的小河边

​ 哪家清吧价格不贵音乐好听 逼格还挺高

​ 哪里的娃娃机很新 娃娃好看 放机器的商场很高档

​ 哪里的艺术展 最近有什么

​ 哪里的阳光好的咖啡厅吗

​ 不要随便找 要花点心思 大众点评 小红书 实际看一下

​ 地道的小吃 便宜还好吃 没来过

​ 好玩的 娃娃机 碰碰车 划船 烧烤 风筝 郊游 农家乐 温泉 鬼屋 密室 桌游 电影 唱歌机 酒吧 ktv 水上乐园 游乐场 游泳池

​ 文艺的 陶艺学习 双人烘焙 手工 艺术展 绘画体验 情人坡 情人湾 宁静小河边 艺术社区 图书馆 私人影院 旋转木马 摩天轮 清吧 踩单车 羽毛球馆 散步 跳舞

​ 有逼格的 网红下午茶 咖啡厅 骑马 高尔夫 五星级酒店走廊 旅游

​ 小红书 下午茶 骑马 卡丁车

# 约会可以的流程

加上微信后聊天不要超过三天 年龄 兴趣 爱好 工作
+第一次 咖啡馆 奶茶店 看外貌 谈吐气质 了解思维方式和表达能力 感觉不错再去吃饭 +第二次 去游乐场和密室 看应变能力 对未知项目的开拓 +第三次 去打羽毛球 或其他运动 看默契程度 +第四次 去博物馆 去一些文创类地方 看品味和审美 +第五次 看消费观 帮对方挑选衣服

+ + + diff --git a/blogs/inlove/this36question.html b/blogs/inlove/this36question.html new file mode 100644 index 0000000..a560f87 --- /dev/null +++ b/blogs/inlove/this36question.html @@ -0,0 +1,160 @@ + + + + + + 相处阶段-亚瑟·阿伦三十六问 | 斯人如彩虹 + + + + + + + + + + + +

相处阶段-亚瑟·阿伦三十六问

6/4/2022 聊天

# 亚瑟·阿伦三十六问

1、在这个世界上,如果你可以选择一个人跟你共进晚餐,你会选择谁?

2、你有想过出名吗?通过什么方式?

3、在打电话前,你一般会练习怎么去表达吗?为什么?

4、你觉得在你的心里,完美的一天是什么样子?

5、你上一次一个人唱歌是什么时候呢?对其他人唱歌呢?

6、假设你可以活到90岁,那么在30岁后,你更倾向于身体年轻还是思想年轻,来躲过余下的60年呢?

7、你对你以后怎样死去,有没有预感?

8、说一下我们的三个共同点。

9、你这辈子最感激的是谁,或者是什么事?

10、如果你能改变你过去的经历,你想改变那件事?

11、用四分钟,尽可能详细的讲讲你从小到大的经历。

12、如果你明天醒来会获得一种新的才能,你希望是什么。

13、如果水晶球能告诉你关于你自己、你的生活、未来或其他任何事情的真相,你希望知道什么?

14、有没有长时间梦寐以求的事情,为什么你没有去实现?

15、你觉得自己最成功的是什么?

16、你觉得有用最珍贵的地方是什么?

17、你最宝贵的记忆是什么?

18、你最可怕的记忆是什么?

19、假设一年后你会突然去世,那么你会改变现在的生活方式吗?为什么?

20、友谊对于你来说意味着什么?

21、爱情和喜欢,在你生活中大概是什么样的角色?

22、说出5个关于我的好的特质。我也说5个关于你的。

23、你家里人之间亲密吗?你是不是觉得你的童年比其他大多数人更幸福?

24、你觉得你和你密码的关系是怎么样?

25、各种做三个围绕“我们”的事实陈述。例如,“我们在深夜一起聊天”。。。

26、给你一句句子,你把它补全:”我希望能有人和我一起分享。。。“

27、如果你要和我成为球迷的朋友,对你来说,最需要知道关于我的事情是什么?

28、告诉我你喜欢我什么;这次要非常诚实哦。

29、和我分享一件生活种令你尴尬的事情,可以是最近的事情。

30、你上次在别人面前哭是什么事情?那独自流泪是什么时候呢?

31、告诉我,我有哪些地方已经放你开始喜欢上了。

32、对你来说,有没有一些事严肃道不能开玩笑?

33、假设你今晚就要死了,而你再也没有机会和其他人甲流,那你最后悔没有告诉别人什么事?为什么还没有告诉他们。

34、你的房子着火了,你的所有东西都在里面,在救出你的亲人和宠物后,你有时间进去最后一次冲进去安全的救出最后一件物品,那将会是什么?为什么?

35、在你所有家人中,谁的离去最令你痛苦,为什么?

36、说一个你自己私人遇到的困扰,你说完我也说我的,然后我们互相给对方想办法。

# 话题互相了解对方

吃过最好吃的东西是什么 +目前最想做的事 +最想和对方做的事 +两个人的共同爱好 +讨论自己的兴趣爱好 +谈谈对方性格中的缺点 +最喜欢对方的哪—点 +遇见对方前是什么状态 +聊一聊初见对方的印象 +做过最让对方感动的事 +做过最浪漫的事 +做过最蠢的事 +生气时怎么解决问题 +对方最不好的习惯 +最欣赏对方的一点 +经历的最开心的事 +普及自己的兴趣爱好 +分享喝多后做过的糗事 +分享自己的旅行经历 +分享自己内心的小秘密 +分享做过最尴尬的事 +分享每天发生的趣事 +吐槽工作的烦恼 +最讨厌吃的东西是什么 +最喜欢的歌手是谁 +印象最深刻的一件事 +在一起后的幸福瞬间 +聊聊儿时的梦想 +儿时的学习状况 +最喜欢的动画片 +最怕的东西是什么 +想要拥有什么样的超能力 +疲惫的时候怎么放松自己 +当你陷入困境时你会向谁请教 +因为什么事情跟父母吵过架 +人生目前最大的成就是什么 +最近一次哭是什么时候为什么 +小时候的梦相是什么 +喜欢独处吗 +如果中了500万,你会怎么规划 +如果你打算写本书,你会写什么内容 +单曲循环最久的歌是哪一首 +想唱给对方的歌 +分享彼此的奇葩朋友 +遇到最难忘的囧事 +小时候怕爸爸还是妈妈 +我做过哪件事情让你很生气你 +是如何察觉我在生气的 +最喜欢吃的一道菜 +最想去哪个地方 +我让你难堪过吗 +喜欢什么游戏/音乐/电影/花/水果

9.你对彼此忠诚的定义是什么? +10.给爱情下个定义? +11.浪漫的度假作为你生活方式的一部分,你有何感受? +12.你会因为一个什么样的小细节而对—个女人动心? +13.你认为钱最主要的功能是? +14.在什么样的情况下,你会放弃原则? +15.你曾犯下的最大的措误是什么?它是如何改变你人生的?

# 暧昧阶段

这个阶段往往有过务次约会,彼此都有想进步的起法,再通过相对私密话题了解对方对感情的态度,否是合适的人? +9.你喜欢什么样的工作环境? +10.你最欣赏什么样的人? +11.是否对自己的工作满意? +12.喜欢独处么? +13.平常去哪儿玩? +14.最想去哪个城市工作? +15.当你对某人有偏见时,你是怎么想的? +16.你最好的脆友是谁?为什么? +17.你是如何选择现在这项事业的?

# 恋爱阶段

如果以上话题你都史经解锁成功,而说明你们的关系就基本可我确定下来,接下来就是好好读恋爱培养感情让关系 +更稳定 +1.告诉我,你是何时发觉爱上我的? +2.如果我想在生日.上给你一个惊喜.你希望是什么? +3.你想要的完美爱情是什么样的? +4.的有想过你30岁之后的人生会是什么样子么? +5.我会是你值得信任的人吗? +6.如果金钱不再是目标.你最大的追求会是什么?

Last Updated: 11/12/2023, 5:00:07 PM
+ + + diff --git a/blogs/mianjing/duoyi.html b/blogs/mianjing/duoyi.html new file mode 100644 index 0000000..2dd0886 --- /dev/null +++ b/blogs/mianjing/duoyi.html @@ -0,0 +1,87 @@ + + + + + + 多益网络面经 | 斯人如彩虹 + + + + + + + + + + + +

多益网络面经

12/15/2020 面经

22020年09月18日星期五16:52:45 CST

1、做个简单的自我介绍

2.这个项目都是多少个人做的?

3.后端就你一个人做的吗?

4.项目做了多久?

5.说一说项目中困扰你时间比较长的问题?

6.项目中你试花在搭建环境的时间比较长是吗?(我说了很多关于服务器代码是如何实现的,原理是什么)

7.用了2个nginx具体是如何做高可用的

8.2个nginx都是回同时使用的吗?还是只是使用其中一个

9.用的2个ip给前端使用是吗?部署在不同的机器上面吗?

10.有了解过,用一个ip可以使多个nginx相互切换,例如其中一个nginx异常,是要访问另外一个ip是吗

11.有了解过虚拟ip这个东西呢?

12.nginx配置的是用什么样的负载均衡算法?

13.有了解过哪些负载均衡算法呢?

14.知道nginx是如何做负载均衡的吗?(我提到nginx中的线程池和epoll )

15.服务器是如何在多个副本中进行数据同步的?

16.知道原理细节吗?

17.现在的部署下,在什么故障下,服务器能够正常使用?

18.只实现了读的高可用,写方面没有实现高可用是吗?

19.fastdfs在写数据上能不能也做高可用?

20.有没有了解过其他分布式存储的东西呢?(我说对网络编程,tcp,网络的原理会熟悉一些)

21.什么情况下做东西线程通信?

22.单线程非阻塞有什么问题吗?

23.让你设计一个网络工具,你会用多线程同步阻塞的方式吗?

24.说一下你对epoll的了解?

25.说一下select的区别?

26.什么情况下适合用select,什么情况下适合使用epoll ?

27.为什么1024个连接的时候适合用select ?

28.为什么你认为select适合做1024个以下的连接?

29.平时select和 epoll都有写过吗?(我提到reactor)

30.说一下reactor和preactor的区别?

31.先说一下select是不是reactor ?

32.你是说epoll是同步的方式,reactor是异步的方式吗?

33.reactor这个概念你是从哪里了解到的?

34.一般搜索东西是在哪里搜索?

35.直接上csdn上面搜索吗?

36.为什么不直接用google搜索吗?是因为csdn上面搜索的东西比较适合你看吗?

37.你用epoll是来实现个什么东西?是应用还是练习?

38.关于epoll中处理数据的时候,你是如何处理的?

39.epoll的边沿触发和水平触发了解吗?

40.在使用上你是如何用边沿触发还是水平触发的?

41.如何设置边沿触发和水平触发的?

42.数据处理上是如何设计的?

43.以前有写过聊天室之类的通信呢?协议是如何设计的?

44.聊天室是你大学的时候做的吗?

45.你写socket变成的话,你试如何处理这些接口的错误的?

46.recv返回-1的话就是错误吗?

47.工作中为什么要用redis做这个token呢?

48.redis有了解过是如何做持久化的呢?

49.redis数据结构有了解哪些呢?

50.有序的set是如何实现的?

51.在这个公司还有别的工作体现你的水平的东西吗?

52.看你有用mmap,说一下mmap是什么?

53.你觉得哪些场景可以用mmap ?(我说了开发板的屏幕映射)

54.做软件开发的时候什么时候会用到mmap ?(我说了netmap用户态协议栈)

55.共享内存有了解过吗? linux一般如何去实现共享内存的?(shm)

56.你的主要开发语言是c/c是吧?平时写c多还是c ?

57.c11了解吗?平时你们使用的是c11吗还是老版本?

58.智能指针有了解吗?(我说 auto ptr ,unique ptr , shared ptr , weak ptr )

59.说一下上述智能指针的区别?

60.平时有用过哪一些指针?

61.C++里面右值引用什么意思?

62.多态是如何实现的?核心原理是什么?

63.你们平时如何去定位内存泄露的问题?

64.你是基本只做c/c++语言是吧?

65.第一家公司是做什么工作的呢?

66.你为什么会选择离开第一家公司呢?

67.为什么会离开第二家公司呢?

68.为什么毕业的时候会选择第一家做机顶盒的公司呢?

69.毕业找工作的时候有其他的offer选择呢?

70.大学的时候就是做嵌入式吗?

71.那你对游戏行业有了解过吗?了解多少?

72.你为什么会投游戏行业呢?对游戏后台了解吗?

73.对音视频哪些了解过吗?

74.平时玩游戏吗?

75.你现在找工作是只要是后端就可以是吧?游戏后端可以?音视频后端?服务器后端?都是有兴趣的是吧?

76.平时会通过什么样的途径去学习呢?

77.你平时一般看书多—些呢?还是上网看博客,看视屏多一些?

78.你最近在学的是什么呢?(我说有在学用户态协议栈的一些东西,netmap

79.是指tcp/ip协议吗?http协议哪些吗?(我大概说来一下netmap的原理)

80.说到拷贝的话,0拷贝这些有了解过吗?

81.还有了解到别的0拷贝的应用吗?

82.你现在工作是要加班吗?几点到几点?(每天都是10点,11点以后)

83.你们业务开发很多吗?你一般事情做完了会是几点?你对工作时间是如何看的?

84.长期10点多和11点多下班的话,个人能坚持吗?能接受吗?

85.平时周末或者节假日突然需要修bug的时候有吗?

86.你现在有女朋友吗?在那里?

87.你是哪里人?你现在在广州哪里?

88.你了解过我们公司的位置吗?

+ + + diff --git a/blogs/mianjing/sangfor.html b/blogs/mianjing/sangfor.html new file mode 100644 index 0000000..a9d2db5 --- /dev/null +++ b/blogs/mianjing/sangfor.html @@ -0,0 +1,87 @@ + + + + + + 深信服面经 | 斯人如彩虹 + + + + + + + + + + + +

深信服面经

12/15/2020 面经

深信服网络安全2020年09月14日星期一12:47:05 CST

1.简单的介绍一下自己擅长的技能

2.工作中主要还是做c/c++是吗?json也是用c/C++写的吗?

3.c/C+ + static的使用场景是什么?

4.C++为什么要使用extern C ,才能调用c文件的内容?<

5.定义局部数组和直接使用new/malloc分配的内存有什么不一样?

6.栈上面分配数组最大可以分配多少内存?

7.free/delete是如何知道需要释放的内存段有多大?◆

8.空指针和野指针的区别?

9.场景, 2个线程分别有2个指针, p1, p2 ,都指向了同一-片内存,现在释放掉p1 ,内存已经被释放了,但是现在p2也要释放内存, 这个时候会出问题吗?怎么解决? ( 引用计数,互斥锁,无锁cas

10.通常计算字符串长度使用strlen , sizeof能计算字符串的长度吗?

11.算法题,判断一个数是否是2的n次方

12.进程和线程的区别

13.案例题,你需要综合考虑;多核cpu场景,使用多线程的场景去设计数据的手法,数据的计算,整体协调的效率达到最大。简单的当做网络接口的接收和

发送 epoll 线程池 协程

14.tcp和udp的区别

15.socket套接字变成,服务器端都有哪些函数,功能是什么

16.网络编程,网络协议栈有没有了解

17.类似于epoll这样的技术,你是如何学习的?

18.除了c/c+ +平时还接触其他语言吗?

19.go语言有接触过吗?

深信服二面2020年09月16日星期三14:33:02 CST

1.用什么语言来做的这个服务器?

2.(啊?怎么用c/c+ +来做? )并发能有多少?

3.我觉得20w比较悬,能做到20w并发不太可能

4.有没有做断点续传的功能,闪存(秒传)的功能,如何做的?

5.你们是提供给别人sdk吗?

6.如何验证文件的md5值,细节?

7.如果用http chunk编码的方式如何做?

8.全部都用你的客户端上传文件,你没有办法控制文件的格式和安全的?

9.浏览器想去在线打开你的文件,你为什么不支持chunk编码的方式?

10.你理解http的chunk编码吗?

11.鉴权如何做,用户权限是如何做的?

12.上传文件带了哪些验证信息,具体技术实现细节?

13.上传文件,二进制流你也是放在json里面吗?

14.我是黑客的话就不按你的流程走,直接把文件传到你的服务器里面,这个怎么办?

15.token是明文的话,很容易被别人拿到,这个是很不安全的,如何处理?

16.token的做法,文件上传的做法,需要说的更加清楚和细节-一些

17.这样做不行,如果不对上传文件做校验的话,这样做是有问题的,是存在漏洞的

18.http明显有一个auth的字段为什么不用 ,你现在做的这样是不合理的

19.你还有做过其他的一一些项目吗,互联网的

20.有做过linux内核网络层的项目开发吗?

21.网络通信这一块有别的项目经验吗?自己去做的scoket项目有吗?

22.socket阻塞和非阻塞有什么区别?如何写?

23.recv返回-1有哪几种情况要处理?

24.看你还做了linux内核移植的,是做过内核的编程呢还是编译?

25.有把哪一一个开源技术研究的比较深的经历吗,搞的比较透的那种?

26.做的项目过程中,有没有遇到最困难,最难查的bug ,如何解决的?我是要看你解决问题的深度

27.你说的这些都是基本的调试技术,这是必须会的,你有让你印象比较深刻的很难的

28.你看下你那边还有什么项目可以证明你能力的?

29.你在网络这一块相对比较有经验-点对吧,网络编程这一块

30.有兴趣学其他的语言吗?比如go语言, python语言

31.介绍一些你过往比较快学习- 一个技术且掌握的案例吗?

32.有看过哪些书籍?看看你的学识能力

我问的问题

1.这个岗位核心技能是网络相关的技能还是安全的技能

●大部分主要还是网络这一块的,对内核的编程要有一些了解,应用层的编程也是需

●刚才和你说的chunk编码类似的会用到openssl做加密,你对openssI有了解过吗

●要对网络层的各种协议要搞的很熟,例如gre ,例如unix网络编程, tcp/ip详解

+ + + diff --git a/blogs/other/guide.html b/blogs/other/guide.html new file mode 100644 index 0000000..5c1bc38 --- /dev/null +++ b/blogs/other/guide.html @@ -0,0 +1,97 @@ + + + + + + vuepress-theme-reco | 斯人如彩虹 + + + + + + + + + + + +

vuepress-theme-reco

4/9/2019

vuepress leancloud-storage valine

介绍

  1. 这是一个vuepress主题,旨在添加博客所需的分类、TAB墙、分页、评论等能;
  2. 主题追求极简,根据 vuepress 的默认主题修改而成,官方的主题配置仍然适用;
  3. 你可以打开 午后南杂 (opens new window) 来查看效果。

# Use

Build

npm run build
+
+# or
+
+yarn build
+
1
2
3
4
5

Server

npm run dev
+
+# or
+
+yarn dev
+
1
2
3
4
5

# Play Together

# 0.x

vuepress-theme-reco@0.x 是基于 vuepress@0.x 的博客主题。

vuepress@0.x 功能比较简单,只适合书写简单的文档,但好在支持主题自定义,而个人又希望能够用它来书写博客,原因就是它足够的简洁,毫无疑问,这也符合很多程序员的观念,也就是在这种情况下,vuepress-theme-reco@0.x 的第一个版本经过一个通宵而产生。

主题开源不久,很多朋友通过各种联系方式,给到很多好的意见和建议,所以我个人也在积极地更新。

因为我是一名前端开发工程师,开发的过程中,总是想着能不能加入一些炫酷的效果,有很多次都是添加上又去掉,反反复复,最后都是被 简洁 的这个原则阻止掉,毕竟,现在我是将它当作一个产品来看待,并不是一个技术或者是技巧的尝试项目。

# 1.x

随着不断有用户过来询问:为什么 vuepress-theme-reco@0.x 不能在 vuepress@1.x 上使用?本来只是打算对 vuepress-theme-reco@0.x 进行简单的bug修复的我,终究还是忍不住,开始了 vuepress-theme-reco@1.x 的开发。又是在一个寂静的凌晨两点半(晚上就是出活快),我默默地开始了。

主题升级的关键也就是 @vuepress/plugin-blog 这款官方插件,它不需要再去麻烦地过滤数据,将分类和标签的相关信息直接存在 $categories$tags 这两个全局变量中。借助于 @vuepress/plugin-blog,分类和标签功能更容易实现,但也有了一些局限。接下来两三天的时间,都是在进行功能的迁移和一些bug的修复。

vuepress-theme-reco@0.x 的开发中,更加深刻地明白了模块化和组件化编程的重要性,如果当初没有把一些功能进行封装,而是直接简单的复制,这次升级也不会这么顺利。模块拆分的越细,使用就会越灵活。

# CLI

还是衷心地希望能有更多的朋友参与进来,更快地去完善它。接下来时间允许的情况下,我会开源一款自动生成博客的脚手架,略过配置步骤,直接书写优质内容,这也是我后来逐渐形成的一种信念,就是希望能让这款主题,功能越完善,使用越来越简单。

# License

MIT (opens new window)

+ + + diff --git a/blogs/other/markdowngrammar.html b/blogs/other/markdowngrammar.html new file mode 100644 index 0000000..cfe24fb --- /dev/null +++ b/blogs/other/markdowngrammar.html @@ -0,0 +1,100 @@ + + + + + + markdown语法 | 斯人如彩虹 + + + + + + + + + + + +

markdown语法

5/27/2022

# 一级标题

# 二级标题

# 三级标题

# 四级标题

# 五级标题
# 六级标题

斜体文字

斜体文字

粗体文字

粗体文字

粗斜体文字

粗斜体文字

分割线






删除线

baidu.com +sina.com +tencent.com

带下划线文本

[^要注明的文本]:

  • 第一项
  • 第二项
  • 第三项
  • 第一项
  • 第二项
  • 第三项
  • 第一项
  • 第二项
  • 第三项
  1. 第一项: +
    • 第一项嵌套的第一个元素
    • 第一项嵌套的第二个元素
  2. 第二项: +
    • 第二项嵌套的第一个元素
    • 第二项嵌套的第二个元素

最外层

第一层嵌套

第二层嵌套

'print()' 函数

代码区块

'''javascript +$(document).read(function(){ +alert('Markdown'); +}); +'''

链接名称 +或者 +<链接地址>

这是一个链接 新浪新闻 (opens new window) https://news.sina.com.cn/ (opens new window)

有问题上知乎 图标

表头1 表头2
单元格11 单元格12
单元格21 单元格22

使用Ctrl+Alt+Del重启电脑

文本加粗 +**正常显示星号**

$$ +\int_0^1 {x^2} ,{\rm d}x +$$

+ + + diff --git a/blogs/technology/redis/092101.html b/blogs/technology/redis/092101.html new file mode 100644 index 0000000..e100e18 --- /dev/null +++ b/blogs/technology/redis/092101.html @@ -0,0 +1,87 @@ + + + + + + second page in category1 | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/blogs/technology/redis/121501.html b/blogs/technology/redis/121501.html new file mode 100644 index 0000000..a63b87a --- /dev/null +++ b/blogs/technology/redis/121501.html @@ -0,0 +1,87 @@ + + + + + + first page in redis | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/blogs/technology/zmq/121501.html b/blogs/technology/zmq/121501.html new file mode 100644 index 0000000..7e32d7c --- /dev/null +++ b/blogs/technology/zmq/121501.html @@ -0,0 +1,87 @@ + + + + + + first page in zmq | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/blogs/work/ability.html b/blogs/work/ability.html new file mode 100644 index 0000000..765e8b8 --- /dev/null +++ b/blogs/work/ability.html @@ -0,0 +1,87 @@ + + + + + + T级职业等级标准 | 斯人如彩虹 + + + + + + + + + + + +

T级职业等级标准

1/3/2021 工作
知识点 能力范畴 职级/是否要求
初级 中级 高级
T1 T2 T3 T4 T5 T6 T7 T8(T2.3) T9(T3.1)
语言 开发环境搭建、运行第一个hello word 代码能力
运用基本数据类型、表达式与操作符进行简单开发 代码能力
字符串、向量和数组 代码能力
语句和函数 代码能力
分支控制、循环 代码能力
对象生命周期 & 垃圾回收 代码能力
错误和异常处理 代码能力
标准库使用 代码能力
日志分析、断点调试等简单代码调试方法 代码能力
面向对象设计原则 代码能力
单例模式、工厂模式等简单的设计模式 代码能力
gdb高级调试技巧和常用系统分析工具使用 代码能力
适配器模式、代理模式等常见设计模式 代码能力
创建型、结构型、行为型设计模式的应用技巧 代码能力
代码耦合的产生原因和规避方法 代码能力
数据结构和算法 初识数据结构和算法 - 冒泡排序 代码能力
数组、列表、栈,队列等基本线性数据结构 代码能力
递归、排序、二分查找算法 代码能力
跳表、散列表、hash算法 代码能力
二叉树、红黑树 代码能力
堆排序、归并排序、二分查找等高阶算法 代码能力
字符串匹配、KMP算法 代码能力
熟悉图论算法:dijkstra算法、最小生成树、深度优先搜索等 代码能力
贪心算法、动态规划 代码能力
能够分析算法的执行效率和资源消耗、时间和空间复杂度分析 代码能力
能够根据实际场景,选用合适的数据结构和算法进行程序设计 代码能力
数据库 MySQL服务器的安装与配置 代码能力
数据表的新建、查询和删除操作 代码能力
标准语言SQL和CURD能力 代码能力
表、主键、索引、视图 代码能力
表结构设计规范 代码能力
事务的使用以及其ACID特性 架构能力
不同存储引擎的区别 架构能力
事务的隔离级别和实践原理 架构能力
数据库的连接池管理 架构能力
数据库的权限管理 安全能力
SQL注入、web shell攻击的危害和规避方法 安全能力
数据库的集群和高可用 架构能力
SQL语句优化、索引和参数调优 运营能力
运用Redis进行数据缓存处理,提高系统性能 架构能力
redis内存模型 架构能力
redis的持久化、主从同步以及集群 架构能力
网络原理 利用ping、ifconfig、telnet等命令查看计算机网络状况 代码能力
网络体系中每一层的作用和基本协议 代码能力
TCP和UDP的基本原理 代码能力
http协议基础与应用 代码能力
TCP协议的可靠传输机制 代码能力
TCP协议的流量控制和拥塞控制 代码能力
Session、Cookie 与 Application 代码能力
网络安全的加密算法与数字签名 安全能力
https协议的基本原理 安全能力
http2.0与http3.0特性 架构能力
XSS攻击的危害和规避方法 安全能力
Wireshark、tcpdump等网络抓包工具使用和结果分析 代码能力
网络故障分析与问题解决 运营能力
操作系统 常用的文件、目录操作命令使用 代码能力
程序的编译与运行 代码能力
shell脚本与vi使用 代码能力
linux系统性能监控命令的使用 代码能力
线程、进程的概念、创建与调度 代码能力
用户态和内核态的基本概念、区别 代码能力
CPU的上下文切换、中断处理与系统调度 代码能力
磁盘文件系统、虚拟文件系统与文件缓存 代码能力
物理内存和虚拟内存 代码能力
进程间通信机制 代码能力
死锁的危害、出现原因、解决方法 安全能力
内存溢出、内存泄漏的原因与解决 安全能力
如何高效利用CPU缓存 架构能力
内存问题分析与性能优化 架构能力
磁盘 I/O 性能优化 架构能力
系统网络性能评估与优化 架构能力
网络编程 利用socket编程编写简单客户/服务器程序 代码能力
基本TCP/UDP套接字编程 代码能力
五种常见I/O模型 代码能力
I/O多路复用技术 代码能力
time_wait、close_wait状态产生的原因、危害与避免方法 安全能力
熟练掌握各种I/O模型的运用场景 代码能力
掌握C10k问题的基本解决方案 架构能力
网络框架学习 架构能力
分布式架构 简单rpc协议设计和框架搭建 架构能力
rpc的服务寻址、数据流的序列化与反序列化和网路传输 架构能力
分布式事务的学习 架构能力
一致性算法 架构能力
分布式锁的设计与实现 架构能力
主流的微服务rpc框架 架构能力
服务注册、服务发现 架构能力
分布式trace、监控告警 运营能力
负载均衡 架构能力
主流分布式系统架构设计,比如分布式缓存、API网关、分布式消息组件 架构能力
分布式系统的缓存设计、缓存雪崩、缓存击穿等现象 架构能力
容灾保护、降级熔断、流量控制、故障隔离、故障恢复 架构能力
分布式架构的高并发、高可用、可扩展 架构能力
云原生 Docker原理与搭建 架构能力
Kubernetes 架构能力
容器编排、容器网络 架构能力
集成构建 架构能力
云上常见的SaaS服务和组件 架构能力
弹性扩缩容 架构能力
服务网格Istio和Serverless 架构能力
软技能 需求分析 工程素养
项目设计方法 工程素养
项目流程管理 工程素养
项目风险控制 工程素养
跨部门合作 工程素养
沟通技巧 工程素养
组织协调 工程素养
目标管理 工程素养
+ + + diff --git a/blogs/work/ability1.html b/blogs/work/ability1.html new file mode 100644 index 0000000..c1b58b1 --- /dev/null +++ b/blogs/work/ability1.html @@ -0,0 +1,87 @@ + + + + + + T级职业等级标准1 | 斯人如彩虹 + + + + + + + + + + + +

T级职业等级标准1

1/3/2021 工作
能力范畴 能力描述 初级 中级 高级
一般外包开发公司 月薪8000左右 创业公司、一线互联网企业 月薪 20000 左右 一线互联网企业、BAT 月薪 30000 以上
T1 T2 T3 T4 T5 T6 T7 T8 T9
代码能力 创造高质量合规代码(具备低耦合,高扩展性,高性能,安全性等特征)及相关工具的能力。 掌握一门语言的常用特性,并能完成简单的功能开发。 熟练使用一门语言的常用特性,可以独立完成小型项目的编码任务。 熟练使用简单的设计模式,并且能够进行完整的单元测试,可参与大型项目的代码编写。 熟练使用简单的设计模式,并且能够进行完整的单元测试,可参与大型项目的代码编写。 具备复杂问题的分析与代码调试能力,写出安全合规的代码。 熟练使用常见的设计模式,输出高质量的代码,并且有基本的性能考量。 熟练使用高级的设计模式,并且能够使用相关工具对模块进行性能测试和分析,优化服务的性能瓶颈。 精通一门语言的使用,能进行模块化代码设计和编码,并且能够写出高性能的代码。 精通设计模式及OOP原则,输出逻辑耦合低,可维护性强,可扩展性高的代码。
运营能力 灵活应用运营数据,大数据分析等手段, 从成本,质量,效率等维度剖析系统运营状况,优化服务,达成用户体验好,运营效率高,资源合理使用等目标的能力。 熟悉操作系统的常用命令,能完成服务的搭建,并具备日志分析和常规问题的解决能力。 掌握批处理脚本的编写,自动化的完成服务的搭建,并能使用常用的系统工具定位复杂问题。 熟练使用监控、告警等基础设施,基于相关运营工具及运营系统处理线上问题。 熟练使用监控、告警等基础设施,基于相关运营工具及运营系统处理线上问题。 熟练使用监控、告警等基础设施,基于相关运营工具及运营系统处理线上问题。 熟练使用监控、告警等基础设施,基于相关运营工具及运营系统处理线上问题。 熟练使用监控、告警等基础设施,基于相关运营工具及运营系统处理线上问题。 能总结共性的运营问题,开发诊断和处理的工具,提升团队研发效能。 能从资源视角,对服务运营的部署架构,模块性能进行分析,构建容量模型,优化资源使用效率。
安全能力 掌握系统设计与实现过程中的安全漏洞风险,提升系统的可用性和安全性,保障业务和数据不受侵害。 不要求 不要求 了解导致后台系统被入侵的安全漏洞,在日常开发中理解并按规范避免这些漏洞。 了解导致后台系统被入侵的安全漏洞,在日常开发中理解并按规范避免这些漏洞。 了解导致后台系统被入侵的安全漏洞,在日常开发中理解并按规范避免这些漏洞。 了解导致后台系统被入侵的安全漏洞,在日常开发中理解并按规范避免这些漏洞。 了解导致后台系统被入侵的安全漏洞,在日常开发中理解并按规范避免这些漏洞。 了解导致后台系统被入侵的安全漏洞,在日常开发中理解并按规范避免这些漏洞。 熟悉相关的安全技术,深入理解各种常见安全漏洞的原理,并在系统设计与实现中合理应用。
架构能力 灵活应用底层基础设施,设计和构建高质量分布式服务(具备高可用,伸缩能力强,数据可靠性和安全性高,运营可控性强等特征)的能力。 不要求 不要求 不要求 不要求 了解主流的分布式架构,能参与到分布式服务的协同开发。 了解云上常见的基础服务和组件,并且在项目中应用。 可以应用主流的分布式架构,主导设计和开发无状态简单分布式服务。 熟悉主流的分布式架构,主导设计和开发复杂的分布式服务。 熟练从容量和容错等维度剖析系统架构,发现并优化系统在可伸缩,高可用等方面存在的问题和风险。
工程素养 把握工程项目中的主要矛盾,核心挑战和关键技术难点,组织和协调资源,达成目标的能力。 不要求 不要求 不要求 不要求 不要求 不要求 不要求 不要求 能承担项目owner的角色,协助项目经理和leader进行项目管理,关注工程项目中的主要矛盾、核心挑战和关键技术难点,帮助团队达成目标。
+ + + diff --git a/blogs/work/resume.html b/blogs/work/resume.html new file mode 100644 index 0000000..dac96f3 --- /dev/null +++ b/blogs/work/resume.html @@ -0,0 +1,115 @@ + + + + + + 我的简历 | 斯人如彩虹 + + + + + + + + + + + +

我的简历

1/3/2021 工作

# 罗子文

男 | 25 岁 (1997/10/10) | 现居住武汉 |两年 linux c开发经验 +手机:188 2734 1204 邮箱:191658428@qq.com

学校:	湖北理工学院	学历/学位:	本科
+

专业: 网络工程 职能/职位:  软件工程师  c/c++开发工程师

# 工作及教育经历

2016/9-2020/7 湖北理工学院  +本科 | 网络工程 +专业描述: 主要课程:C/C++程序设计,数据结构,计算机网络,操作系统原理,计算机组成原理, linux服务器搭建。

2019/12-至今 武汉天融信创新科技有限公司  +网络准入控制产品部 | linux c开发工程师 +详细描述: 参与网络准入控制系统开发与维护。

# 项目经验

2019/12-至今 网络准入系统 Linux + Windows + C +Python + freeradius +Nginx + redis + dpdk +项目描述: 一款用于局域网内控制终端接入的系统,在交换机上配置策略,由服务端认证,认证主要模式分为ip层和mac层两种准入,基于freeradius的802.1X认证和基于dpdk的端口镜像模式。802.1X模式由freeradius做认证交换机端口授权,端口镜像基于dpdk做流量控制,后端架构由基于ZeroMQ实现进程间通信消息服务、onlineserver用户上下线服务、agserver用户保活认证等,另外通过webserver实现对用户和策略的管理。

使用技术: Nginx:反向代理将相应的请求转发到对应端口;freeradius:802.1X认证;sqlite:维护用户资产指纹信息;redis:作为缓存在线信息等,加快sqlite读写能力;keepalived:高可用性双机热备;ZeroMQ:进程间通信消息队列中间件;libevent网络库;线程池;reactor反应堆;openssl开源加密库;json格式传输数据;syslog日志系统;Makefile;libconfig配置文件读取等。 +项目负责: 1.将原有代码迁移并使用Makefile对项目进行一键编译生成ramdisk。 +2.实现平台适应自旋锁,CAS等; +3.使用fortify代码审计工具,对项目中危险函数,内存泄露,缓冲区溢出等问题进行修改; +4.编写启动脚本按模块加载程序; +5.添加基于freeradius的802.1x认证功能模块,在交换机eap协议基础上设计新的协议对用户数据封装,实现对于终端所在交换机acl、vlan切换和对于终端的健康检查,设备外联监控等策略下发。 +6.对共用认证逻辑包括密码解码,ldap认证,终端资产校验进行封装,独立出认证库 +7.实现基于dpdk的端口镜像模式,使用dpdk rtc多进程结构根据cpu个数对网卡RSS初始化,实现主从进程间的协调工作,对关键数据包引流,对dns请求进行欺骗,对httpget请求重定向,其他tcp包阻断等。 +8.实现redis连接池设计封装reids命令,实现数据持久化。 +9.实现消息分发服务msgserver使用ZeroMQ消息队列中push/pull,pub/sub模式和多消息段协调各服务间的数据通信,增加各进程间吞吐量。

# 专业能力

1 .熟悉C/C++ 能熟练使用面向对象方式编程,熟悉常用设计模式。 +2.熟悉linux/unix环境编程,操作系统,进程间通信,多线程编程,对内存/进程管理有一定了解。 +3.熟悉linux/unix环境常用操作命令与shell脚本,熟悉gcc编译、makefile、gdb。 +4.熟悉dpdk api,能熟练的使用dpdk对协议栈修改,对tcp/ip协议栈有一定了解。 +5.熟悉socket网络编程,熟悉 TCP/IP协议,熟悉select/epoll等多路复用模型。 +6.熟悉redis数据结构,mysql表操作命令,能在项目中熟练使用。 +7.熟悉常用数据结构,链表、栈、队列,二叉树、红黑树,与常用查找和排序算法。 +8.熟悉wireshark,tcpdump抓包工具,能对常见网络故障进行分析。 +9.熟悉svn、git代码管理工具,fortify代码审计工具使用。 +10.对python,lua,golang有了解和使用。

# 自我评价:

逻辑思维能力强,动手能力和执行力较高,有良好的编程习惯; +善于在工作中发现问题、分析问题、解决问题,并作出总结,做事积极性高; +喜欢阅读,apue、unp、linux高性能服务器等书; +喜欢技术,阅读源码redis、freeradius, 协程等源码;

+ + + diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..731bfc2 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,87 @@ + + + + + + Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/categories/redis/index.html b/categories/redis/index.html new file mode 100644 index 0000000..d879599 --- /dev/null +++ b/categories/redis/index.html @@ -0,0 +1,87 @@ + + + + + + redis Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/categories/zmq/index.html b/categories/zmq/index.html new file mode 100644 index 0000000..b4f0d66 --- /dev/null +++ b/categories/zmq/index.html @@ -0,0 +1,87 @@ + + + + + + zmq Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/categories/\345\267\245\344\275\234/index.html" "b/categories/\345\267\245\344\275\234/index.html" new file mode 100644 index 0000000..2ad1719 --- /dev/null +++ "b/categories/\345\267\245\344\275\234/index.html" @@ -0,0 +1,87 @@ + + + + + + 工作 Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/categories/\347\237\245\350\257\206/index.html" "b/categories/\347\237\245\350\257\206/index.html" new file mode 100644 index 0000000..4f4d3d7 --- /dev/null +++ "b/categories/\347\237\245\350\257\206/index.html" @@ -0,0 +1,87 @@ + + + + + + 知识 Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/categories/\350\201\212\345\244\251/index.html" "b/categories/\350\201\212\345\244\251/index.html" new file mode 100644 index 0000000..ea278c8 --- /dev/null +++ "b/categories/\350\201\212\345\244\251/index.html" @@ -0,0 +1,87 @@ + + + + + + 聊天 Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/categories/\351\235\242\347\273\217/index.html" "b/categories/\351\235\242\347\273\217/index.html" new file mode 100644 index 0000000..33d0d28 --- /dev/null +++ "b/categories/\351\235\242\347\273\217/index.html" @@ -0,0 +1,87 @@ + + + + + + 面经 Categories | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/docs/theme-reco/index.html b/docs/theme-reco/index.html new file mode 100644 index 0000000..24991c3 --- /dev/null +++ b/docs/theme-reco/index.html @@ -0,0 +1,87 @@ + + + + + + 可以打开文章最下面留下评论哦 | 斯人如彩虹 + + + + + + + + + + + +

可以打开文章最下面留下评论哦

11/12/2200

下面可以留下昵称、邮箱和评论哦

快留下你的意见或者建议,偷偷加QQ:191658428也行哦

Last Updated: 11/12/2023, 5:00:07 PM
+ + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fe46dfea62ca6c2e98c72993ca160cca80a4fe66 GIT binary patch literal 129362 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

;;=7`AdxF`%#2^lZ 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 F{~z(axVr!V literal 0 HcmV?d00001 diff --git a/favicon1.ico b/favicon1.ico new file mode 100644 index 0000000000000000000000000000000000000000..77e5c32e8f2f6ab4186d6d6cead005a78f1b062c GIT binary patch literal 4286 zcmchaTTE0}6oxlm(@U!Hp-&7m%zcI#24)nBU^OYUG03x0YM(>_gSNFuo7hSk5^pJ9 z8o;PkG2xO-9uOsJV1~f+N09mv5UT5$1t-bc; ztfN#6|1B0Jzp7!TQZFi{+!U(R0*dIhKR%oF+IKess$+Jg9XS3PrZFYNs%k51_@CT;F$6Fr_cu0@<_;_V9#m3NPh;o2_ z^v7GR|4APk5-k?Qqrm5&F8Y1miTF_d&l2jw2+N!i9YtJQXfGH2Ec&uDWCLmE|bRPl$^itCrn zINy94+%YzOWjlv5&Iet`GKC`j4Bww}U2F>@!iUkeg=H5dT5QcO_hu*0O`OB&(qcc# zp2TunwAo?yg(XZye?&s8-wJyk)fkW?XDW%JTrT%imU}7DW{$OA=WsZubMAh!2cpH7 zdn){{3gZlnvWuv@tLu4Z@lLgk^%Z8b8SD?n3*4w$TOT9OL?;}n>v}1Jp%CxqV1#b; zxiE`()*JNxGWMO45`0u%9?@U)uViMTw&5U7cAmk$nghtm$wH741d(@zGUw(9HaalEMscDr5cFZPpzLA15E zqxHLXtS>9W;Uh=T-E$s`=tEXk7J9E;!|@X>ICi`VKlJnepMCzM;dnB{2Vn`n`NRp>>A&dW;^MISt+(;#$OsNMevW0!S0H2F zJY;6Q3ZKu9ii!$!cXuN(F%eFu3$HC)2$$Q9U3+%pt8czF)8uKA*-BmOl_2 zmiMPVf6>*E-_+b}%wPDQR9558@4w;b7hmE^?{!>eOy6Jkfi|wDW$_+?$X*XrKO>?^gUedy^55S6bMJ+;BvX}dR`uG4h*26XeIZ94HetA zvtKVl+>hd?FeQKRCk02OE#mk4(Q*1TM*jW_UmrWh{j-Js)M~bO@7aT)Ter~C+J!ahKVHCRjg2T?wHhZoI#9H7CAhCqSzU#Jp+Rlm4Bfts4I4KYa}}O1 zF?pDK;IjB4ZLim>ja`*ku~aZZ(0m0D~wx$ktpv$L~t&E?~+nj(>n1y@~CNK{D6Tma#B`h-gcwRkr zyJI@r2Pc|OUQL28aSBUCk(@+w#Rwmx*cO(N2U*PKNj#$!QRGF;OIXaywfsYpAjySX z9oR$2Gtccu~Tzws)nSb_@Be|Ba48ByP?eY2)@2wpA77ZW7=As9&bw_-G zWCcJmFG}SaonhaIb$i10J&rp?G4`9zdr-NwXq}oh<5?x&OdKP5>i@}0?{K_)!^yYY zxR^hPuj`~g-+z$V@KOiiD! z=4a(h;U~3+`?kR0a@W!RMZUZKkoTwL4}qZe{e6)>N={qIedL`xFLO$0PTC_;D2u^8 qrPlwe)cj$kW{C7FHN9P_$z@8#h^Qz0)5o{dRzGd(_Jt)(VgCowj8m}y literal 0 HcmV?d00001 diff --git a/hero.png b/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..458c223b0fb4c67e31c0095cb85b366f7802e54f GIT binary patch literal 15414 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 O!2>I)E0)T?4Ei7JS)3FA literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..ef2b079 --- /dev/null +++ b/index.html @@ -0,0 +1,103 @@ + + + + + + 斯人如彩虹 + + + + + + + + + + + +

+ 斯人如彩虹 遇上方知有 +

+ But every once in a while you find someone who's iridescent, and when you do, nothing will ever compare. +

6/12/2024 知识
7/24/2022 知识
6/19/2022 知识
6/4/2022 知识
5/27/2022
123 Next Jump To Go
author-avatar

+ lzwtty +

23

Articles

6

Tags

Categories


Tags

All知识聊天面经rediszmq工作

Friend Links

+ + + diff --git a/js/MouseClickEffect.js b/js/MouseClickEffect.js new file mode 100644 index 0000000..788fe46 --- /dev/null +++ b/js/MouseClickEffect.js @@ -0,0 +1,34 @@ +var a_idx = 0; + +function getRandom(max, min) { + return Math.floor(Math.random() * (max - min + 1) + min); +} +jQuery(document).ready(function ($) { + $("body").click(function (e) { + // var a = new Array("富强", "民主", "文明", "和谐", "自由", "平等", "公正", "法治", "爱国", "敬业", "诚信", "友善"); + var a = new Array("我", "喜", "欢", "婷", "宝", "婷", "宝", "最", "好", "了"); + var $i = $("").text(a[a_idx]); + a_idx = (a_idx + 1) % a.length; + var x = e.pageX, + y = e.pageY; + $i.css({ + "z-index": 999999999999999999999999999999999999999999999999999999999999999999999, + "top": y - 20, + "left": x, + "position": "absolute", + "font-weight": "bold", + "color": `rgb(${getRandom(255,0)},${getRandom(255,0)},${getRandom(255,0)})`, + "user-select": 'none', + "cursor": 'default' + }); + $("body").append($i); + $i.animate({ + "top": y - 180, + "opacity": 0 + }, + 1500, + function () { + $i.remove(); + }); + }); +}); \ No newline at end of file diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd377fb2a9634d915f10b6ab457564849201f5b GIT binary patch literal 26287 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�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 literal 0 HcmV?d00001 diff --git a/tag/index.html b/tag/index.html new file mode 100644 index 0000000..cfdef2e --- /dev/null +++ b/tag/index.html @@ -0,0 +1,87 @@ + + + + + + Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/tag/redis/index.html b/tag/redis/index.html new file mode 100644 index 0000000..afcfe9f --- /dev/null +++ b/tag/redis/index.html @@ -0,0 +1,87 @@ + + + + + + redis Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/tag/zmq/index.html b/tag/zmq/index.html new file mode 100644 index 0000000..1791e30 --- /dev/null +++ b/tag/zmq/index.html @@ -0,0 +1,87 @@ + + + + + + zmq Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/tag/\345\267\245\344\275\234/index.html" "b/tag/\345\267\245\344\275\234/index.html" new file mode 100644 index 0000000..2482201 --- /dev/null +++ "b/tag/\345\267\245\344\275\234/index.html" @@ -0,0 +1,87 @@ + + + + + + 工作 Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/tag/\347\237\245\350\257\206/index.html" "b/tag/\347\237\245\350\257\206/index.html" new file mode 100644 index 0000000..ff54963 --- /dev/null +++ "b/tag/\347\237\245\350\257\206/index.html" @@ -0,0 +1,87 @@ + + + + + + 知识 Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/tag/\350\201\212\345\244\251/index.html" "b/tag/\350\201\212\345\244\251/index.html" new file mode 100644 index 0000000..9de6be4 --- /dev/null +++ "b/tag/\350\201\212\345\244\251/index.html" @@ -0,0 +1,87 @@ + + + + + + 聊天 Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git "a/tag/\351\235\242\347\273\217/index.html" "b/tag/\351\235\242\347\273\217/index.html" new file mode 100644 index 0000000..c9c3684 --- /dev/null +++ "b/tag/\351\235\242\347\273\217/index.html" @@ -0,0 +1,87 @@ + + + + + + 面经 Tags | 斯人如彩虹 + + + + + + + + + + + + + + + diff --git a/timeline/index.html b/timeline/index.html new file mode 100644 index 0000000..168fc7b --- /dev/null +++ b/timeline/index.html @@ -0,0 +1,87 @@ + + + + + + Timeline | 斯人如彩虹 + + + + + + + + + + + +
  • 2200

    • 11-12 可以打开文章最下面留下评论哦
  • 2024

    • 6-12 有用的知识网站
  • 2022

    • 7-24 perf工具和火焰图简介
    • 7-11 C/C++/MySQL/Redis/操作系统/八股文/Leetcode
    • 6-26 gdb查看堆内存以及内存泄漏的一种定位方法
    • 6-19 c1000k,单机百万并发测试
    • 6-12 mutex、读写锁、自旋锁、信号量以及RCU的性能测试
    • 6-4 GDB调试手册
    • 6-4 相处阶段-亚瑟·阿伦三十六问
    • 5-27 markdown语法
    • 5-22 相处阶段-熟悉 (二)
    • 5-22 相处阶段-吸引 (三)
    • 5-22 相处阶段-认识 (一)
    • 5-22 相处阶段-约会
  • 2021

    • 1-3 T级职业等级标准
    • 1-3 T级职业等级标准1
    • 1-3 我的简历
  • 2020

    • 12-15 多益网络面经
    • 12-15 深信服面经
  • 2019

    • 9-21 second page in category1
    • 4-9 vuepress-theme-reco
  • 2018

    • 12-15 first page in redis
  • 2016

    • 12-15 first page in zmq
+ + +

A(K@umAIZ{~!Io^!4i%Q}p+lXd`U) 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�CMq9;F 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%0A^R&ui5xbH9lyM}>%Qw1(g{N%DN-cQp=% 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