mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 01:55:22 +03:00
valgrind: make running PID 1 in valgrind useful
Since valgrind only generates useful output on exit() (rather than exec()) we need to explicitly exit when valgrind is detected.
This commit is contained in:
parent
420c7379fb
commit
54b434b1b5
@ -838,7 +838,7 @@ AC_DEFINE_UNQUOTED(TELINIT, ["$TELINIT"], [Path to telinit])
|
||||
|
||||
AC_SUBST(TELINIT)
|
||||
|
||||
AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
|
||||
AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
have_myhostname=no
|
||||
|
@ -32,6 +32,10 @@
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/mount.h>
|
||||
|
||||
#ifdef HAVE_VALGRIND_VALGRIND_H
|
||||
#include <valgrind/valgrind.h>
|
||||
#endif
|
||||
|
||||
#include "sd-daemon.h"
|
||||
#include "sd-messages.h"
|
||||
#include "sd-bus.h"
|
||||
@ -1830,6 +1834,15 @@ finish:
|
||||
if (fds)
|
||||
fdset_free(fds);
|
||||
|
||||
#ifdef HAVE_VALGRIND_VALGRIND_H
|
||||
/* If we are PID 1 and running under valgrind, then let's exit
|
||||
* here explicitly. valgrind will only generate nice output on
|
||||
* exit(), not on exec(), hence let's do the former not the
|
||||
* latter here. */
|
||||
if (getpid() == 1 && RUNNING_ON_VALGRIND)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
if (shutdown_verb) {
|
||||
const char * command_line[] = {
|
||||
SYSTEMD_SHUTDOWN_BINARY_PATH,
|
||||
|
Loading…
Reference in New Issue
Block a user