Busque Go en VS Code Extensions e instálelo.
Necesitará instalar Delve para realizar la depuración (puntos de interrupción, paso a paso, etc.) en VS Code.
go install github.com/go-delve/delve/cmd/dlv@latest
Si usaste asdf para instalar Go, profundizar se ubicará en:
~/.asdf/shims/dlv
Es posible que desees ejecutar asdf reshim después de instalar un paquete go.
Dado que GoLang es un lenguaje compilado, el código se compilará en un único ejecutable. Durante el desarrollo, realizar cambios requerirá que recompilemos constantemente, lo que puede ser un proceso manual, especialmente en VS Code.
Usaremos https://github.com/air-verse/air para realizar recargas en vivo por nosotros.
Es una herramienta de línea de comandos que solo necesita ejecutarse una vez dentro de la carpeta de su proyecto para observar los cambios.
Instalar el paquete. Suponiendo que tenga la versión 1.22 o superior.
go install github.com/air-verse/air@latest
Si usaste asdf para instalar Go, el aire se ubicará en:
~/.asdf/shims/air
Inicializa un archivo de configuración air.toml en la raíz de tu proyecto
cd ~/myproject air init
Editar el comando air.toml [[go build]] a:
- todos: las banderas deben aplicarse a todos los paquetes en los paquetes de compilación
- -N: optimizaciones deshabilitadas para garantizar que el código generado se acerque más al código fuente para facilitar la depuración
- -l: deshabilita la optimización integrada donde las funciones pequeñas se expanden para reducir la sobrecarga de las llamadas a funciones, lo que facilita la depuración
- Razonamiento de Delve Reference
- cmd = "go build -o ./tmp/main ." cmd = 'CGO_ENABLED=0 go build -gcflags=all="-N -l"-o ./tmp/main .'"'
[!info]
air se ejecutará con las configuraciones predeterminadas si:
- El archivo air.toml no es válido
- ejecútelo en la carpeta de su proyecto ejecutando el comando air
No utilizará su archivo air.toml.
Edite air.toml full_bin para ejecutar el binario compilado con [[Delve]].
- full_bin = "" full_bin = "dlv exec ./tmp/main --listen=127.0.0.1:2345 --headless=true --api-version=2 --accept-multiclient --continue --log --"
Esto ejecutará Delve en el puerto 2345.
Ejecute air en la carpeta de su proyecto. Debería ver el siguiente resultado.
> cd ~/my-project > air __ _ ___ / /\ | | | |_) /_/--\ |_| |_| \_ v1.52.3, built with Go go1.22.5 mkdir ~/my-project/tmp watching . !exclude tmp building... running... API server listening at: 127.0.0.1:2345 2024-07-28T18:47:07 07:00 info layer=debugger launching process with args: [./tmp/main] 2024-07-28T18:47:09 07:00 debug layer=debugger entryPoint 0x1006e8000 machoOff 0x100000000 2024-07-28T18:47:09 07:00 warning layer=debugger debug_frame workaround not applied: function internal/abi.(*RegArgs).IntRegArgAddr (at 0x1006e9070) covered by 0x1006e9070-0x1006e9110 2024-07-28T18:47:09 07:00 debug layer=debugger Adding target 11503 "/Users/alaay/projects/scheduleasy/tmp/main" 2024-07-28T18:47:09 07:00 debug layer=debugger continuing 2024-07-28T18:47:09 07:00 debug layer=debugger ContinueOnce 2024/07/28 18:47:09 Starting server on :5602
En su archivo .vscode/launch.config, agregue lo siguiente:
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Attach to Air", "type": "go", "request": "attach", "mode": "remote", "port": 2345, "host": "127.0.0.1" } ] }
En VS Code Run and Debug (CMD SHIFT D), comience a depurar con Adjuntar al aire
[!info] VS Code no puede conectarse
Si VS Code no puede conectarse, lo más probable es que Delve no se esté ejecutando en el puerto 2345. Intente usar lsof -i :2345 para verificar si dlv se está ejecutando en ese puerto. Si se está ejecutando, deberías ver:$ lsof -i :2345 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dlv 15464 username 3u IPv4 0x201bff14586139e3 0t0 TCP localhost:dbm (LISTEN)
Go es un lenguaje compilado. Eso significa que el código se compila en un binario y luego se ejecuta. Siempre que realizamos cambios en el código en vscode:
Esto significa que vscode se desconectará y deberá volver a conectar vscode para profundizar.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3