• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            戰魂小筑

            討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

            Google官方為Golang的調試例子默認使用了gdb

            然而, 使用gdb調試go程序會遇到goroutine的各類問題, 因為gdb不懂go

            因此, 這里使用delve黑科技來進行Golang的程序調試

            純命令行調試方法在網上很容易搜索到, 本文主要以LiteIDE來進行程序調試

            關閉編譯器優化

            正常go build/install出的go程序是完全優化過的, 強行使用調試器掛接調試時, 某些local變量/lamda表達式捕獲的變量會直接進入寄存器, 無法使用調試器查看

            刪掉所有的pkg, 為build或install參數加入關閉編譯器優化的參數 -gcflags "-N -l"

            例如:

            1. go install -gcflags "-N -l" svc\gamesvc

            delve調試器安裝方法

            LiteIDE自帶了gdb, 但是沒有delve調試器, 需要自行安裝, 命令如下

            1. go get github.com/derekparker/delve/cmd/dlv

            delve調試器會被放到你的GOPATH/bin下

            LiteIDE中的delve調試器配置

            選擇調試器

            在LiteIDE菜單中選擇 調試->debugger/delve

            delve環境變量設置

            這個時候, LiteIDE依然找不到delve, 因為它不在環境變量PATH中, 這里無需修改環境變量, 只需要LiteIDE的環境配置

            在LiteIDE菜單中選擇 查看->編輯當前環境, 在彈出的文檔中修改

            1. PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH%;c:\your\path\to\delve

            去掉PATH前的注釋#, 在%PATH%添加分號, 然后和你到delve調試器的路徑

            開始調試

            選擇你的工程, 點擊F5, 進入調試模式

            調試器顯示變量值

            LiteIDE使用delve調試時, 無法在 變量 監視等窗口中正確捕捉delve調試返回數據(因為格式太復雜了…)

            沒關系, 我們使用命令行配合顯示即可

            LiteIDE控制臺或調試輸出窗口在delve調試時, 實際上是一個標準命令行 
            命令如下

            • p 變量名可以查看變量值

            • locals查看局部變量

            • ls可查看當前文件

            • stack查看棧

            • help可以查看各種幫助

            調試外部程序

            如果你的程序是外部程序, 或者使用go install安裝到GOPATH/bin目錄的程序, 那么使用delve調試器啟動程序時, 可能會碰到啟動路徑錯誤的問題

            使用LiteIDE菜單 調試->調試其他應用程序… 填入你要調試程序的路徑以及工作目錄, 可以解決這個問題

            posted on 2016-09-03 18:12 戰魂小筑 閱讀(5583) 評論(0)  編輯 收藏 引用 所屬分類: 程序調試技術 、Golang
            久久久青草久久久青草| 99久久国产热无码精品免费| 国产精品久久久久乳精品爆 | 精品久久久久久无码中文字幕| 99久久成人18免费网站| 亚洲七七久久精品中文国产| 人妻无码αv中文字幕久久| 狠狠久久综合伊人不卡| 日韩精品久久久肉伦网站| 国产综合精品久久亚洲| 国产精品久久午夜夜伦鲁鲁| 亚洲国产成人精品91久久久| 国产91色综合久久免费| 成人综合久久精品色婷婷| 久久国产精品免费一区| 久久亚洲精品无码AV红樱桃| 一本一道久久a久久精品综合| 亚洲天堂久久精品| 国产成人精品久久一区二区三区| 久久亚洲sm情趣捆绑调教| 激情五月综合综合久久69| 国产一区二区三区久久| 久久久久久九九99精品| 无码人妻久久一区二区三区免费| 亚洲精品高清一二区久久| 国内精品伊人久久久久影院对白| 99久久久精品免费观看国产| 国内精品久久久久影院一蜜桃| 中文成人无码精品久久久不卡| 国产精品成人无码久久久久久| 久久99国产精一区二区三区| 成人妇女免费播放久久久| 久久天天躁狠狠躁夜夜躁2O2O| 国产欧美久久久精品影院| 偷窥少妇久久久久久久久| 天天综合久久一二三区| 日本精品久久久久久久久免费| 亚洲精品成人网久久久久久| 国产欧美久久久精品影院| 国内精品人妻无码久久久影院导航| 久久久久免费精品国产|