douzi9430 2017-05-18 05:01
浏览 374
已采纳

调试go应用程序不会在断点处停止

I have latest IntelliJ Ultimate EAP and latest Gogland and the problem occurs on both under MacOS Sierra.

I'm trying to debug a go application by creating a debug profile for Go Application and the Run Kind is configured to Package, which contains the package name of the current project.

under Go tool arguments I have -ldflags="-linkmode internal" configured.

When I start a debug session while having some breakpoints, it would run but not stop at these breakpoints.

what am I missing?

thanks

update

ok I was able to reproduce the issue with the following project:

test1.go contains:

package main

const Numb uint64 = 5

test2.go contains:

package main

import "fmt"

func main() {
    fmt.Println(Numb);
}

I Created a Go Application run/debug configuration with the following parameters:

Run kind: package
Package: github.com/kfirufk/test
Working Directory: /usr/local/Cellar/go/1.8.1/src/github.com/kfirufk/test/

when I choose a breakpoint on test2.go line 6 (the first and only line of code in the main function) and I start a debug session, I see the following output:

"/Users/ufk/Library/Application Support/IntelliJIdea2017.1/Go/lib/dlv/mac/dlv" --listen=localhost:53111 --headless=true exec /private/var/folders/cn/n7rwdd_95_l54s3zdnbxvw040000gn/T/Unnamedgo --
GOROOT=/usr/local/Cellar/go/1.8.1/libexec
GOPATH=/usr/local/opt/go
/usr/local/Cellar/go/1.8.1/libexec/bin/go build -o /private/var/folders/cn/n7rwdd_95_l54s3zdnbxvw040000gn/T/Unnamedgo -gcflags "-N -l" github.com/kfirufk/test
API server listening at: 127.0.0.1:53111
5

I get the program's output properly but Intellij did not stop in the required breakpoint.

the problem is reproduced on Intellij 2017.1.3 with Go Lang Plugin 0.171.1928 on MacOS Sierra 10.12.4.

update

trying to play with intellij's delve to try to understand better what's going on:

/Users/ufk/Library/Application\ Support/IntelliJIdea2017.1/intellij-go/lib/dlv/mac/dlv exec ./test

then I executed:

(dlv) step

and received:

Command failed: could not find FDE for PC 0x78bc000

did I fail to understand how to use delve or is something doesn't work properly here ?

update

yeap.. with continue the debugger works properly with both versions of delve (installed from homebrew and the intellij's version). but still intellij works the same, doesn't stop at breakpoints. i create a breakpoint at test2.go at the line when I print the variable.

any ideas ?

  • 写回答

3条回答 默认 最新

  • douchuanghan1344 2017-05-28 22:56
    关注

    Ok.. I finally got it. I got mixed up with the GOROOT structure and GOPATH structure and I placed my project in GOROOT instead of GOPATH.

    this is what I did to resolve the issue

    I completely deleted go with brew uninstall --force go, then reinstalled go with the following environment variables:

    export GOPATH=$HOME/golang
    export GOROOT=/usr/local/opt/go/libexec
    export PATH=$PATH:$GOPATH/bin
    export PATH=$PATH:$GOROOT/bin
    

    then I placed my project at ~/golang/src/github.com/kfirufk/windy-server

    and I was finally able to properly debug go applications.

    thank you all for assisting me! :)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。