如何在堆栈中构建分析?



我正在努力构建一个具有分析的应用程序,因为我需要堆栈跟踪。

$ stack new prof 
$ cd prof
$ stack build --profile --executable-profiling --library-profiling 
$ stack exec prof-exe +RTS -p
stack: the flag -p requires the program to be built with -prof
$ stack --version
Version 2.7.1, Git revision 8afe0c2932716b0441cf4440d6942c59568b6b19 x86_64 hpack-0.34.4

ghc 8.10.7

Stack本身是用Haskell编写的,因此它也接受+RTS -p参数。要将+RTS -p传递给prof-exe,您应该使用--分隔符:

stack exec prof-exe -- +RTS -p

然而,我相信run命令应该用于运行可执行文件,我认为你也需要在那里添加--profile标志。对我来说有效的命令是:

stack run --profile prof-exe -- +RTS -p