Skip to content

Commit 5867352

Browse files
committed
Deploying to gh-pages from @ aa43afa 🚀
1 parent ffe51d8 commit 5867352

File tree

4 files changed

+112
-110
lines changed

4 files changed

+112
-110
lines changed

2024/11/12/在-VS-Code-中调试和运行-Go-程序/index.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备
1010
<p>GoLand 打开项目时会自动初始化 <code>go mod tidy</code>,VS Code 不会,需要手动执行一下。</p>
1111
<h2 id="launch-json-文件配置"><a href="#launch-json-文件配置" class="headerlink" title="launch.json 文件配置"></a>launch.json 文件配置</h2><p>在工程根目录下新建这个文件:<code>.vscode\launch.json</code>,VS Code 读取此配置来运行和调试 Go 程序。文件的详细文档在<a target="_blank" rel="noopener" href="https://go.microsoft.com/fwlink/?linkid=830387">这里</a>,这里说一下详细的配置。</p>
1212
<p>调试程序:</p>
13-
<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 注意,这份配置应该位于 launch.json 的 configurations 字段下</span></span><br><span class="line">&#123;</span><br><span class="line"> <span class="attr">&quot;name&quot;</span>: <span class="string">&quot;Launch File&quot;</span>, <span class="comment">// 会显示在 VS Code 界面的人类可读的名字</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span>: <span class="string">&quot;go&quot;</span>, <span class="comment">// 声明为 go 语言的配置</span></span><br><span class="line"> <span class="attr">&quot;request&quot;</span>: <span class="string">&quot;launch&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;mode&quot;</span>: <span class="string">&quot;debug&quot;</span>, <span class="comment">// 支持断点调试</span></span><br><span class="line"> <span class="attr">&quot;program&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\cmd\\main.go&quot;</span>, <span class="comment">// 你的 main.go 的位置</span></span><br><span class="line"> <span class="attr">&quot;env&quot;</span>: &#123;&#125;,</span><br><span class="line"> <span class="attr">&quot;output&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\debug\\vscode_launch_file.exe&quot;</span>, <span class="comment">// 预期输出编译后可执行文件的位置</span></span><br><span class="line"> <span class="attr">&quot;cwd&quot;</span>: <span class="string">&quot;&quot;</span>, <span class="comment">// 可执行文件的工作目录(working directory)</span></span><br><span class="line"> <span class="attr">&quot;args&quot;</span>: [] <span class="comment">// 可执行文件的参数</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
13+
<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 注意,这份配置应该位于 launch.json 的 configurations 字段下</span></span><br><span class="line">&#123;</span><br><span class="line"> <span class="attr">&quot;name&quot;</span>: <span class="string">&quot;Launch File&quot;</span>, <span class="comment">// 会显示在 VS Code debug 界面的人类可读的名字</span></span><br><span class="line"> <span class="attr">&quot;type&quot;</span>: <span class="string">&quot;go&quot;</span>, <span class="comment">// 声明为 go 语言的配置</span></span><br><span class="line"> <span class="attr">&quot;request&quot;</span>: <span class="string">&quot;launch&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;mode&quot;</span>: <span class="string">&quot;debug&quot;</span>, <span class="comment">// 支持断点调试</span></span><br><span class="line"> <span class="attr">&quot;program&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\cmd\\main.go&quot;</span>, <span class="comment">// 你的 main.go 的位置</span></span><br><span class="line"> <span class="attr">&quot;env&quot;</span>: &#123;&#125;,</span><br><span class="line"> <span class="attr">&quot;output&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\debug\\vscode_launch_file.exe&quot;</span>, <span class="comment">// 预期输出编译后可执行文件的位置</span></span><br><span class="line"> <span class="attr">&quot;cwd&quot;</span>: <span class="string">&quot;&quot;</span>, <span class="comment">// 可执行文件的工作目录(working directory)</span></span><br><span class="line"> <span class="attr">&quot;args&quot;</span>: [] <span class="comment">// 可执行文件的参数</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
1414

1515
<p>单元测试,以 Go 语言内置的单元测试框架 <code>go test</code> 为例:</p>
1616
<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line"> <span class="attr">&quot;name&quot;</span>: <span class="string">&quot;Unite Test&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;type&quot;</span>: <span class="string">&quot;go&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;request&quot;</span>: <span class="string">&quot;launch&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;mode&quot;</span>: <span class="string">&quot;test&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;program&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\unittest&quot;</span>, <span class="comment">// 你的单元测试目录的位置</span></span><br><span class="line"> <span class="attr">&quot;cwd&quot;</span>: <span class="string">&quot;&quot;</span>, <span class="comment">// 可执行文件的工作目录(working directory)</span></span><br><span class="line"> <span class="attr">&quot;output&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\unittest&quot;</span>, <span class="comment">// 编译出的单元测试可执行文件的位置</span></span><br><span class="line"> <span class="attr">&quot;buildFlags&quot;</span>: [], <span class="comment">// 编译单元测试可执行文件时的参数,也就是 go test -c 的其他参数</span></span><br><span class="line"> <span class="attr">&quot;args&quot;</span>: [] <span class="comment">// 执行单元测试可执行文件的参数</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
@@ -43,4 +43,6 @@ <h2 id="需要标准输入?"><a href="#需要标准输入?" class="headerlin
4343
<figure class="highlight diff"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line"> &quot;type&quot;: &quot;go&quot;,</span><br><span class="line"> &quot;request&quot;: &quot;launch&quot;,</span><br><span class="line"> &quot;mode&quot;: &quot;debug&quot;,</span><br><span class="line"><span class="addition">++ &quot;console&quot;: &quot;internalConsole&quot;</span></span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
4444

4545
<p>参考 <a target="_blank" rel="noopener" href="https://stackoverflow.com/questions/64786161/use-input-stdin-in-debug-console-vscode">Stack Overflow</a>,也可以在 args 中配置标准输入重定向。</p>
46+
<h2 id="Benchmark"><a href="#Benchmark" class="headerlink" title="Benchmark"></a>Benchmark</h2><p>除了基础的单元测试,也支持配置 go 内置的 benchmark。<br>假设基准测试代码都在 <code>benchmark</code> 目录下。本质上也是 <code>go test -c</code> 然后执行构建的可执行文件。</p>
47+
<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">&#123;</span><br><span class="line"> <span class="attr">&quot;name&quot;</span>: <span class="string">&quot;Benchmark&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;type&quot;</span>: <span class="string">&quot;go&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;request&quot;</span>: <span class="string">&quot;launch&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;mode&quot;</span>: <span class="string">&quot;test&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;program&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\benchmark&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;output&quot;</span>: <span class="string">&quot;$&#123;workspaceFolder&#125;\\benchmark\\benchmark&quot;</span>,</span><br><span class="line"> <span class="attr">&quot;args&quot;</span>: [</span><br><span class="line"> <span class="string">&quot;-test.bench=^Benchmark&quot;</span>, <span class="comment">// 只关注 Benchmark 开头的函数</span></span><br><span class="line"> <span class="string">&quot;-test.v&quot;</span>,</span><br><span class="line"> <span class="string">&quot;-test.run=^$&quot;</span>,</span><br><span class="line"> <span class="string">&quot;-test.benchmem&quot;</span> <span class="comment">// 查看内存分配信息</span></span><br><span class="line"> ]</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
4648
</div><div class="tags"><a href="/blog/tags/Go/"><i class="fa fa-tag"></i>Go</a><a href="/blog/tags/VS-Code/"><i class="fa fa-tag"></i>VS Code</a><a href="/blog/tags/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/"><i class="fa fa-tag"></i>单元测试</a></div><div class="post-nav"><a class="pre" href="/blog/2024/12/31/LSP2/">LSP 与 VS Code 插件开发(二)语义构建</a><a class="next" href="/blog/2024/10/29/VS-Code-Thankyou/">我为 VS Code 贡献了代码</a></div><div class="giscus"></div><script src="https://giscus.app/client.js" data-repo="imbant/blog" data-repo-id="MDEwOlJlcG9zaXRvcnkyNDkzOTc0NDM=" data-category="General" data-category-id="DIC_kwDODt2Aw84Ch79K" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="preferred_color_scheme" data-lang="zh-CN" crossorigin="anonymous" async></script></div></div></div><div class="pure-u-1-4 hidden_mid_and_down"><div id="sidebar"><div class="widget"><form class="search-form" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank"><input type="text" name="q" maxlength="20" placeholder="Search"/><input type="hidden" name="sitesearch" value="https://imbant.github.io/blog"/></form></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer"><span id="footer-copyright">Copyright © </span><a href="/blog/." rel="nofollow">imbAnt's blog.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a><script>const tag = document.getElementById('footer-copyright');const year = new Date().getFullYear();tag.innerText += year + ' ';</script></div></div></div><a class="show" id="rocket" href="#top"></a><script type="text/javascript" src="/blog/js/totop.js?v=1.0.0" async></script><script type="text/javascript" src="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.js" async></script><script type="text/javascript" src="/blog/js/fancybox.js?v=1.0.0" async></script><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.css"><script type="text/javascript" src="/blog/js/codeblock-resizer.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/smartresize.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/gifFavIcon.js"></script></div></body></html>

about/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<p>我在各个平台的昵称为:imbAnt,前缀取自 imbalance,在游戏领域意为 awesome。后缀取自高中绰号「蚂蚁」。</p>
1313
<p>即刻:<a target="_blank" rel="noopener" href="https://okjk.co/OUqto1">imbant</a></p>
1414
<p>GitHub: <a target="_blank" rel="noopener" href="https://github.com/imbant">@imbant</a></p>
15-
<p>Email: <a href="mailto:&#49;&#x33;&#x36;&#x33;&#x34;&#x37;&#51;&#x31;&#48;&#x31;&#53;&#x40;&#x73;&#x69;&#110;&#x61;&#46;&#x63;&#110;">&#49;&#x33;&#x36;&#x33;&#x34;&#x37;&#51;&#x31;&#48;&#x31;&#53;&#x40;&#x73;&#x69;&#110;&#x61;&#46;&#x63;&#110;</a></p>
15+
<p>Email: <a href="mailto:&#x31;&#51;&#54;&#51;&#x34;&#55;&#51;&#49;&#x30;&#x31;&#x35;&#x40;&#x73;&#x69;&#110;&#97;&#x2e;&#99;&#110;">&#x31;&#51;&#54;&#51;&#x34;&#55;&#51;&#49;&#x30;&#x31;&#x35;&#x40;&#x73;&#x69;&#110;&#97;&#x2e;&#99;&#110;</a></p>
1616
<p>灰机 Wiki:<a target="_blank" rel="noopener" href="https://warcraft.huijiwiki.com/wiki/%E7%94%A8%E6%88%B7:Imbant">@Imbant</a></p>
1717
<!-- LinkedIn: [查看](https://www.linkedin.com/in/%E6%98%8E%E5%AE%87-%E8%AE%B8-7b2181194/) -->
1818
</div></div></div></div><div class="pure-u-1-4 hidden_mid_and_down"><div id="sidebar"><div class="widget"><form class="search-form" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank"><input type="text" name="q" maxlength="20" placeholder="Search"/><input type="hidden" name="sitesearch" value="https://imbant.github.io/blog"/></form></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer"><span id="footer-copyright">Copyright © </span><a href="/blog/." rel="nofollow">imbAnt's blog.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a><script>const tag = document.getElementById('footer-copyright');const year = new Date().getFullYear();tag.innerText += year + ' ';</script></div></div></div><a class="show" id="rocket" href="#top"></a><script type="text/javascript" src="/blog/js/totop.js?v=1.0.0" async></script><script type="text/javascript" src="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.js" async></script><script type="text/javascript" src="/blog/js/fancybox.js?v=1.0.0" async></script><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.css"><script type="text/javascript" src="/blog/js/codeblock-resizer.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/smartresize.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/gifFavIcon.js"></script></div></body></html>

sitemap.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
https://imbant.github.io/blog/2019/10/10/%E5%85%B3%E4%BA%8E-js-%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0/
22
https://imbant.github.io/blog/2021/09/28/%E5%89%8D%E7%AB%AF%E6%80%A7%E8%83%BD%E7%9B%91%E6%8E%A7%E6%8C%87%E6%A0%87%E4%B8%8E%E5%AE%9E%E7%8E%B0/
3-
https://imbant.github.io/blog/2021/10/22/%E5%90%8C%E6%BA%90%E7%AD%96%E7%95%A5%E4%B8%8E%E8%B7%A8%E5%9F%9F/
43
https://imbant.github.io/blog/2020/05/08/%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%80%89%E9%A1%B9%E6%A0%87%E5%87%86/
4+
https://imbant.github.io/blog/2021/10/22/%E5%90%8C%E6%BA%90%E7%AD%96%E7%95%A5%E4%B8%8E%E8%B7%A8%E5%9F%9F/
55
https://imbant.github.io/blog/2024/11/12/%E5%9C%A8-VS-Code-%E4%B8%AD%E8%B0%83%E8%AF%95%E5%92%8C%E8%BF%90%E8%A1%8C-Go-%E7%A8%8B%E5%BA%8F/
66
https://imbant.github.io/blog/2023/03/16/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E%E7%BC%96%E8%BE%91-mdn-%E4%B8%AD%E6%96%87%E9%A1%B5%E9%9D%A2/
77
https://imbant.github.io/blog/2019/12/11/%E5%AE%89%E5%8D%93%E5%BE%AE%E4%BF%A1-%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE-%E7%9B%B8%E5%85%B3%E8%B8%A9%E5%9D%91/
88
https://imbant.github.io/blog/2021/07/20/%E5%B0%8F%E7%A8%8B%E5%BA%8F%E8%B7%A8%E5%88%86%E5%8C%85%E5%A4%8D%E7%94%A8%E4%BB%A3%E7%A0%81%E6%96%B9%E6%A1%88/
9-
https://imbant.github.io/blog/2019/08/11/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/
109
https://imbant.github.io/blog/2023/03/30/%E6%80%8E%E4%B9%88%E8%AE%A9-favicon-%E5%8A%A8%E8%B5%B7%E6%9D%A5/
1110
https://imbant.github.io/blog/2025/02/08/%E6%8F%90%E9%AB%98-ANTLR-parser-%E6%80%A7%E8%83%BD/
11+
https://imbant.github.io/blog/2019/08/11/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/
1212
https://imbant.github.io/blog/1970/01/01/%E6%9A%82%E5%AD%98%E5%8C%BA/
13-
https://imbant.github.io/blog/2022/04/15/%E6%BC%AB%E8%B0%88%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/
1413
https://imbant.github.io/blog/2021/05/01/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/
14+
https://imbant.github.io/blog/2022/04/15/%E6%BC%AB%E8%B0%88%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/
1515
https://imbant.github.io/blog/2023/01/17/%E9%A1%B5%E9%9D%A2%E6%BB%9A%E5%8A%A8%E6%97%B6%E4%B8%BA%E4%BB%80%E4%B9%88%E6%B2%A1%E6%9C%89%E8%A7%A6%E5%8F%91%20mouseleave%20%E4%BA%8B%E4%BB%B6/
1616
https://imbant.github.io/blog/about/index.html
17+
https://imbant.github.io/blog/2024/08/24/LSP1/
1718
https://imbant.github.io/blog/2019/08/09/Node-require-%E6%89%A7%E8%A1%8C%E7%BB%86%E8%8A%82/
1819
https://imbant.github.io/blog/2020/04/10/Promise-%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A/
1920
https://imbant.github.io/blog/2020/03/13/React-Diffing-%E7%AE%97%E6%B3%95/
@@ -41,7 +42,6 @@ https://imbant.github.io/blog/2020/04/13/JS-%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF
4142
https://imbant.github.io/blog/2020/04/20/JS-%E5%8E%9F%E5%9E%8B%E9%93%BE/
4243
https://imbant.github.io/blog/2022/08/12/JS-%E5%AF%B9%E8%B1%A1%E5%88%B0%E5%8E%9F%E5%A7%8B%E5%80%BC%E7%9A%84%E8%BD%AC%E6%8D%A2/
4344
https://imbant.github.io/blog/2022/04/30/JS-%E7%9A%84%E7%B1%BB%E5%9E%8B%E5%88%A4%E6%96%AD/
44-
https://imbant.github.io/blog/2024/08/24/LSP1/
4545
https://imbant.github.io/blog
4646
https://imbant.github.io/blog/tags/Go/
4747
https://imbant.github.io/blog/tags/LSP/
@@ -69,12 +69,12 @@ https://imbant.github.io/blog/tags/linux/
6969
https://imbant.github.io/blog/tags/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/
7070
https://imbant.github.io/blog/tags/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E8%A7%86%E9%A2%91/
7171
https://imbant.github.io/blog/tags/%E5%B0%8F%E7%A8%8B%E5%BA%8F/
72-
https://imbant.github.io/blog/tags/Devops/
7372
https://imbant.github.io/blog/tags/html/
7473
https://imbant.github.io/blog/tags/antlr4/
7574
https://imbant.github.io/blog/tags/antlr/
7675
https://imbant.github.io/blog/tags/compiler/
77-
https://imbant.github.io/blog/tags/%E7%A7%BB%E5%8A%A8%E7%AB%AF/
76+
https://imbant.github.io/blog/tags/Devops/
7877
https://imbant.github.io/blog/tags/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/
78+
https://imbant.github.io/blog/tags/%E7%A7%BB%E5%8A%A8%E7%AB%AF/
7979
https://imbant.github.io/blog/tags/js/
8080
https://imbant.github.io/blog/tags/TCP/

0 commit comments

Comments
 (0)