3

我使用 start-stop-daemon 来启动程序,并希望将它与 Valgrind 一起使用。

这就是我使用 start-stop-daemon 的方式:

start-stop-daemon --start --background --exec ${BINPATH}/myPgm -- myPgm

这就是我在独立应用程序(垃圾)上使用 Valgrind 的方式:

valgrind --tool=memcheck --leak-check=yes ./junk

那行得通。

我想做类似的事情:

start-stop-daemon --start --background --exec valgrind --tool=memcheck --leak-check=yes --log-file=/usr/magnus/logFile ${BINPATH}/myPgm -- myPgm

似乎 start-stop-daemon 接受 valgrind (如果我只有 valgrind 没有它的标志--tool=memcheck --leak-check=yes --log-file=/usr/magnus/logFile,它似乎被接受)但 start-stop-daemon 不会接受它。

我得到 start-stop-daemon:unrecognized option '--tool=memcheck'用于 valgrind 标志。

有谁知道如何做到这一点?

4

1 回答 1

7

那里的“--”用于将 start-stop-daemon 的参数与传递给可执行文件的参数分开。因此,“--”之后的 myPgm 实际上是作为 myPgm 可执行文件的参数提供的。我认为在您的第一个示例中这是无关紧要的。

您需要使用“--”来拆分 valgrind 的 args,如下所示:

start-stop-daemon --start --background --exec valgrind -- --tool=memcheck --leak-check=yes --log-file=/usr/magnus/logFile ${BINPATH}/myPgm
于 2012-11-21T16:32:37.860 回答