diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-07-31 11:29:03 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-08-02 13:52:49 +0200 |
commit | 5c823cc899aa48e6f7747181af593bb9c57a7b80 (patch) | |
tree | ccfab979186c331187c7cedcf00f8b748a9fc8f8 | |
parent | 444bae110b04dce8d3e05a392716179f4a291a5e (diff) |
debugging: add calls to 'personality'
Insertion of calls to personality for the only
pupose to be able to set breakpoint at some
strategic places.
The chosen places are:
- After the debug wait point. The intend is to
allow simulation of breakpoint after attaching
to the waiting process.
- Before starting the bindings but after loading
it. The intend is to allow loading of symbols and
setting of breakpoints in the debugged binding
without attaching to afb-daemon that comes without
debug symbols.
Change-Id: Ie3bfce0956c9844586c7a5f8bd820acb7f58772c
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | src/afb-debug.c | 6 | ||||
-rw-r--r-- | src/main.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/afb-debug.c b/src/afb-debug.c index e7a5c643..db403a6b 100644 --- a/src/afb-debug.c +++ b/src/afb-debug.c @@ -30,6 +30,9 @@ #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> +#if !defined(NO_CALL_PERSONALITY) +#include <sys/personality.h> +#endif #include "verbose.h" @@ -98,6 +101,9 @@ void afb_debug(const char *key) indicate(NULL); sigprocmask(SIG_SETMASK, &oss, NULL); NOTICE("DEBUG WAIT after %s", key); +#if !defined(NO_CALL_PERSONALITY) + personality((unsigned long)-1L); +#endif } if (has_key(key, secure_getenv(key_env_break))) { NOTICE("DEBUG BREAK before %s", key); @@ -29,6 +29,10 @@ #include <sys/stat.h> #include <sys/wait.h> +#if !defined(NO_CALL_PERSONALITY) +#include <sys/personality.h> +#endif + #include <json-c/json.h> #include <systemd/sd-daemon.h> @@ -598,6 +602,9 @@ static void start(int signum) /* start the services */ afb_debug("start-start"); +#if !defined(NO_CALL_PERSONALITY) + personality((unsigned long)-1L); +#endif if (afb_apiset_start_all_services(main_apiset, 1) < 0) goto error; |