我正在尝试使用名为dlv
的Go调试器来学习Hugo。我很困惑。后:
go get -v github.com/gohugoio/hugo
cd $GOPATH/src/github.com/gohugoio/hugo
go build -gcflags="-N -l"
dlv exec ./hugo -- -s /path/to/the/projectdir
这就挂了。按Ctrl + C正常运行hugo
。据我所知,dlv debug
不仅产生相同的行为,而且完全相同:生成的二进制文件debug
与我用{{1}构建的hugo
完全相同}。
dlv启动了一些子进程,这些进程会在一段时间后消失。 go build -gcflags="-N -l"
进程可通过hugo
和ps
查看,但pidof hugo
pidof hugo``报告strace -p
。检查之后,它仍然在ps列表中,相同的pid。我猜是因为它处于strace: attach: ptrace(PTRACE_ATTACH, ...): No such proce
状态,因为它正在被跟踪。
我怎么能看到雨果跑?
答案 0 :(得分:2)
Aaaaand它是适用于Windows的Linux子系统!我从来没有想过这会有所作为,但遵循Jonah B的回答“我在Fedora上”我在Debian盒子上尝试过它并且它有效。我很惊讶因为strace在WSL上工作正常(实际上github关于提交报告的说明包括strace)。我提交了bug。
答案 1 :(得分:1)
$ dlv exec ./hugo -- --cleanDestinationDir -s /path/to/blog/root/
Type 'help' for list of commands.
(dlv) c
| EN
+------------------+----+
Pages | 25
Paginator pages | 0
Non-page files | 0
Static files | 11
Processed images | 0
Aliases | 0
Sitemaps | 1
Cleaned | 0
Total in 46 ms
Process 41032 has exited with status 0
$
答案 2 :(得分:0)
这里的经历相同。但是它没有挂起,只需要很长时间才能达到dlv提示符。
检查内存的使用情况(例如,如果你在Linux上,请使用mpstat或vmstat)。我有16G主内存和16G交换。在达到dlv提示之前,几乎所有的内存和大量的交换都被消耗掉了。在启动期间,任何正在播放的视频或音乐断断续续,PC几乎无法使用,直到dlv准备就绪。
在这方面,雨果是相当大的应用程序。