go test
komenda posiada wsparcie dla flagi -c
, opisane w następujący sposób:Jak poprawnie debugować plik binarny wygenerowany przez `go test -c` używając 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.)
O ile mi zrozumieć, generując plik binarny jak to jest sposób, aby go uruchomić interaktywnie za pomocą GDB. Jednakże, ponieważ binarny test jest tworzone poprzez łączenie plików źródłowych i testów tymczasowo w jakiś/tmp/katalogu, to jest to, co się dzieje, gdy biegnę list
w gdb:
Loading Go Runtime support.
(gdb) list
42 github.com/<username>/<project>/_test/_testmain.go: No such file or directory.
Oznacza to, że nie może szczęśliwie skontrolować źródło Go kod w GDB jak jestem przyzwyczajony. Wiem, że możliwe jest wymuszenie pozostania katalogu tymczasowego przez przekazanie flagi -work
komendzie go test
, ale nadal jest to ogromna trudność, ponieważ plik binarny nie jest tworzony w tym katalogu i tym podobne. Zastanawiałem się, czy ktoś znalazł czyste rozwiązanie tego problemu.