IIRC, Valgrind must run the application because it changes read-only characters to replace common library functions such as mallocetc.
This means that you cannot attach memcheck to an already running process, because it cannot change this section of the program in memory (and this would probably ruin the current state).
, . A Google , memcheck . , bash script, . , myprog newprog, :
]$ mv /path/to/myprog /path/to/newprog
#!/bin/bash
valgrind (options) /path/to/newprog $@
myprog, $@ . , , myprog -a b -c d, valgrind.
C-, execve() , .
, :)