1. Causa
A veces hay muchos proyectos se basan en el servidor, algunos pueden depender, por cualquier razón sólo puede ejecutarse en entorno Linux, o demasiados paquetes dependen, en definitiva, no es conveniente ejecutar proyectos a nivel local, sólo puede depurar de forma remota.
2. Instalar delve
Este comando está instalado en un servidor que ejecuta delve
go get -u github.com/go-delve/delve/cmd/dlv
3. Compilar el proyecto
Recuerde añadir -gcflags='all=-N -l
aquí asumir que el compilador es main.go
go build -gcflags="all=-N -l" ./main.go
4. Iniciar el modo de depuración programa servidor
Una forma: código de depuración intrusiva
Es en el proceso de puesta en servicio del
supuesto de que el programa main
se está ejecutando en la
primera ps -aux | grep main
vista del programa principal PID
y luego iniciar la depuración invasión
dlv attach $PID --headless --api-version=2 --log --listen=:1234
Segunda manera: Iniciar el proceso de depuración
dlv --listen=:1234 --headless=true --api-version=2 --accept-multiclient exec ./main
5.Goland depuración
下面这几步很重要!!!!
GOPATH proyectos locales actuales designado
Añadir las estrategias de depuración remota
Host , es que se puede Unicom dirección IP de la máquina o el nombre de un servidor remoto, puerto , es sólo DLV especificado cuando la depuración inicia puerto de escucha
Editor de arriba a la derecha, seleccione el nombre de la política de depuración remota, lleva el nombre de la etapa anterior y, a continuación, haga clic en el bicho verde
La exitosa puesta en marcha
6. Fin de depuración
Después del final de la depuración local, si el programa quiere suspender el servidor, CTRL + C no es capaz de terminar el programa, por lo que es necesario forzar kill
a cabo el servicio
ps -aux | grep dlv
ps -aux | grep main
de retorno
root 27089 8.0 2.1 297472 39812 pts/1 Sl 12:34 0:00 dlv --listen=:8888 --headless=true --api-version=2 --accept-multiclient exec ./main
root 3157 0.0 0.4 148296 8496 pts/1 Sl 11:59 0:00 ./main
Luego matar separado
7. Por último, la nota
Después de completar el código para cambiar el servidor remoto debe volver a compilar local! ! ! De lo contrario el tiempo de depuración será el caso