nvim-dap-go icon indicating copy to clipboard operation
nvim-dap-go copied to clipboard

debug project with custom structure

Open amirphl opened this issue 1 year ago • 3 comments

I have a project with such a structure: project/ |-- cmd/ | |-- main.go |-- service/ | |-- company/ | |-- service.go |-- repo/

I normally run the project using this command: go run ./cmd serve Here. serve is just an argument.

Problematic Scenarios When placing a breakpoint in a function in service.go, the debugging process fails because the build command is incorrect: go build -o <path-to-executable> -gcflags all=-N -l <path-to>/service/company/service.go This command is invalid as it attempts to compile a file that does not contain the main function.

Conversely, when navigating to main.go and attempting to debug, the generated build command is also incorrect: go build -o <path-to-executable> -gcflags all=-N -l <path-to>/cmd/main.go It should instead execute: go build -o <path-to-executable> -gcflags all=-N -l <path-to>/cmd serve

I appreciate any help to fix the problem.

amirphl avatar Dec 12 '23 07:12 amirphl

Current Solution I have successfully resolved my debugging issue by temporarily injecting the serve keyword into os.Args. Subsequently, I run "Debug Package" from the main.go file, which works as a temporary workaround.

Desired Enhancement I am seeking a more flexible solution that allows me to run "Debug Package" from any source file, not just restricted to main.go. For instance, I am unable to initiate "Debug Package" from my service.go.

amirphl avatar Dec 12 '23 10:12 amirphl

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jun 09 '24 22:06 stale[bot]

@amirphl please check if delve.build_flags configuration addresses your use-case. If it doesn't, I currently don't have the time to implement it but feel free to push a PR in the repo.

leoluz avatar Jul 04 '24 20:07 leoluz