我正在努力构建一个具有分析的应用程序,因为我需要堆栈跟踪。
$ 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