+ /* Disable interrupts. This is to avoid that the child
+ * intervenes before it is properly setup for tracing. It is
+ * safer to disable all signals, because then we know we are not
+ * breaking anything by restoring the original mask.
+ */
+
+ /* FIXME:
+ - only do this if tracing is active
+ */
+
+ /* Disable signals */
+ sigfillset(&all_sigs);
+ result = sigprocmask(SIG_BLOCK, &all_sigs, &orig_sigs);
+ if(result == -1) {
+ PERROR("sigprocmask");
+ return -1;
+ }
+
+ /* Do the real fork */