aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-07-31 11:29:03 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-08-02 13:52:49 +0200
commit5c823cc899aa48e6f7747181af593bb9c57a7b80 (patch)
treeccfab979186c331187c7cedcf00f8b748a9fc8f8
parent444bae110b04dce8d3e05a392716179f4a291a5e (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.c6
-rw-r--r--src/main.c7
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);
diff --git a/src/main.c b/src/main.c
index a989a702..77392f83 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;