我正在尝试使用一个名为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的二进制文件与我用go build -gcflags="-N -l"构建的hugo完全相同。
dlv会启动一些子进程,这些子进程会在一段时间后消失。通过ps和pidof hugo可以看到hugo过程,但strace -ppidof hugo报告了strace: attach: ptrace(PTRACE_ATTACH, ...): No such proce。检查后,它仍然在ps列表中,相同的pid。我猜是因为它在被跟踪时处于t状态。
我怎么能看着Hugo跑步呢?
发布于 2018-02-24 23:58:14
嗯,不会发生在我身上。dlv提示符立即出现。我戴着软呢帽,在过去一周左右的时间里一直在定期使用hugo。
$ 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
$发布于 2018-02-25 10:29:50
for,它是Windows的Linux子系统!我从来没有想过这会有什么不同,但是按照Jonah B的回答“我在戴软呢帽”,我在Debian机器上试了试,它起作用了。我很惊讶,因为strace在WSL上工作得很好(实际上,github关于提交报告的说明包括strace)。我把这个bug归档了。
发布于 2018-02-24 18:43:04
这里也有同样的体验。但是,它不会挂起,只是需要相当长的时间才能到达dlv提示。
检查内存的使用情况(例如,使用mpstat或vmstat,如果您使用的是Linux)。我有16G的主内存和16G的交换内存。在到达dlv提示符之前,几乎所有的内存和大量的交换空间都会被占用。在启动期间,任何正在播放的视频或音乐都会卡顿,在dlv准备就绪之前,PC实际上是不可用的。
在这方面,Hugo是一个相当大的应用。
https://stackoverflow.com/questions/48961399
复制相似问题