Il go test
comando ha il supporto per il flag -c
, descritto come segue:Come debugare correttamente un binario generato da `go test -c` usando GDB?
-c Compile the test binary to pkg.test but do not run it.
(Where pkg is the last element of the package's import path.)
Per quanto ho capito, generando un binario come questo è il modo per farlo funzionare in modo interattivo utilizzando GDB. Tuttavia, dal momento che il binario di prova viene creata combinando i file di origine e di test temporaneamente in qualche tmp/directory /, questo è ciò che accade quando corro list
in gdb:
Loading Go Runtime support.
(gdb) list
42 github.com/<username>/<project>/_test/_testmain.go: No such file or directory.
Questo significa che non posso felicemente ispezionare la fonte Go codice in GDB come sono abituato. So che è possibile forzare la directory temporanea a rimanere passando il flag -work
al comando go test
, ma in questo caso è ancora una seccatura enorme poiché il file binario non viene creato in tale directory e così via. Mi chiedevo se qualcuno avesse trovato una soluzione pulita a questo problema.