this post was submitted on 20 Jul 2024
4 points (83.3% liked)

The Go Programming Language

127 readers
1 users here now

The Go programming language is an open source project to make programmers more productive.

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

founded 1 year ago
MODERATORS
 

I made some Go scripts that require user input fmt.Scanln(&fileName) during the execution. When I use the Go debugger built into VSCode which is the launch type, it works but there is no way to enter any prompts when your exeuctable asks for a input. With other programming languages like NodeJS and PHP, there is way to run the scripts in "debugging mode" where it will run the code but before it executes the code, it will wait to attach to a debugger on your system and then execute the code. This has always allowed me to use the terminal for inputs in the executable.

For example to do this in NodeJS, you will use node --inspect-brk=0.0.0.0 main.js instead of node main.js and then run the debugger in VSCode to attach it to the executing script. Is there a way to do this with Go? Do I need to set something up to achieve this?

I am on Linux Mint and cannot find any commands to run go run . but to wait for a debugger to attach to the executable before executing.

top 1 comments
sorted by: hot top controversial new old
[–] h0bbl3s@lemmy.world 1 points 4 months ago* (last edited 4 months ago)

I was actually working on this earlier. Look at this

https://www.digitalocean.com/community/tutorials/debugging-go-code-with-visual-studio-code

Edit: I went through the tutorial later, showed me exactly what I was looking for. Worked perfectly.