mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-06-16 02:35:58 +00: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. Conflicts: src/core/main.c
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
parent
b48d4e5832
commit
b07c5b16a5
+1
-1
@@ -704,7 +704,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
|
||||
|
||||
@@ -34,6 +34,10 @@
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/mount.h>
|
||||
|
||||
#ifdef HAVE_VALGRIND_VALGRIND_H
|
||||
#include <valgrind/valgrind.h>
|
||||
#endif
|
||||
|
||||
#include "manager.h"
|
||||
#include "log.h"
|
||||
#include "load-fragment.h"
|
||||
@@ -1920,6 +1924,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,
|
||||
|
||||
Reference in New Issue
Block a user