Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Dec 2003 15:35:31 +0300 (MSK)
From:      Maxim Konovalov <maxim@macomnet.ru>
To:        Alexander Nedotsukov <bland@mail.ru>
Cc:        current@freebsd.org
Subject:   Re: truss issue
Message-ID:  <20031215151613.E7304@news1.macomnet.ru>
In-Reply-To: <3EEDD6E2.6040505@mail.ru>
References:  <3EEDD6E2.6040505@mail.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

On Mon, 16 Jun 2003, 23:40+0900, Alexander Nedotsukov wrote:

> All,
>
> I found current truss behaviour a bit strange. It coredumps always if
> trussed process do without any significant reason for my understanding.
> I also confused with comment for commit originally introduced this
> functionality
> http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/truss/main.c.diff?r1=1.9&r2=1.10.
> I propose patch attached to make truss always return result of trussed
> process and do not kill() itself. What do you think about it?

As a matter of fact, bin/58970 is a backout of rev.1.10 truss/main.c:

----------------------------
revision 1.10
date: 1998/08/24 10:17:20;  author: cracauer;  state: Exp;  lines: +9 -1
When exiting on SIGINT, exit with signal status
=============================================================================

But a code does not match the comment and does something funny:

@@ -216,6 +217,7 @@
        break;
       case S_SIG:
        fprintf(outfile, "SIGNAL %lu\n", pfs.val);
+       sigexit = pfs.val;
        break;
       case S_EXIT:
        fprintf (outfile, "process exit, rval = %lu\n", pfs.val);
@@ -232,5 +234,11 @@
     if (ioctl(Procfd, PIOCCONT, val) == -1)
       warn("PIOCCONT");
   } while (pfs.why != S_EXIT);
+  if (sigexit) {
+    if (sigexit == SIGQUIT)
+      exit(sigexit);
+    (void) signal(sigexit, SIG_DFL);
+    (void) kill(getpid(), sigexit);
+  }
   return 0;
 }

Gentlemen, does anobody know what is going on there?

-- 
Maxim Konovalov, maxim@macomnet.ru, maxim@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031215151613.E7304>