[PATCH v4 2/7] Use printpid in decoders

Ákos Uzonyi uzonyi.akos at gmail.com
Fri Jul 31 09:34:30 UTC 2020


On Fri, 31 Jul 2020 at 00:32, Dmitry V. Levin <ldv at altlinux.org> wrote:
> On Mon, Jul 27, 2020 at 08:54:05PM +0200, Ákos Uzonyi wrote:
> [...]
> > @@ -74,6 +89,14 @@ print_fcntl(struct tcb *tcp)
> >               printflags(fdflags, tcp->u_arg[2], "FD_???");
> >               break;
> >       case F_SETOWN:
> > +             tprintf(", ");
> > +             const int pid = tcp->u_arg[2];
> > +             tprintf("%d", pid);
> > +             if (pid < 0)
> > +                     printpid_translation(tcp, -pid, PT_PGID);
> > +             else
> > +                     printpid_translation(tcp,  pid, PT_TGID);
> > +             break;
> >       case F_SETPIPE_SZ:
> >               tprintf(", %" PRI_kld, tcp->u_arg[2]);
> >               break;
> [...]
> > @@ -439,7 +439,14 @@ SYS_FUNC(sigprocmask)
> >  SYS_FUNC(kill)
> >  {
> >       /* pid */
> > -     tprintf("%d, ", (int) tcp->u_arg[0]);
> > +     int pid = (int) tcp->u_arg[0];
> > +     tprintf("%d", pid);
> > +     if (pid > 0)
> > +             printpid_translation(tcp, pid, PT_TGID);
> > +     else if (pid < -1)
> > +             printpid_translation(tcp, -pid, PT_PGID);
> > +
> > +     tprintf(", ");
> >       /* signal */
> >       printsignal(tcp->u_arg[1]);
> >
> [...]
> > @@ -86,8 +86,13 @@ printwaitn(struct tcb *const tcp,
> >                * for example, wait4(4294967295, ...) instead of -1
> >                * in strace. We have to use int here, not long.
> >                */
> > -             int pid = tcp->u_arg[0];
> > -             tprintf("%d, ", pid);
> > +             int pid = (int) tcp->u_arg[0];
> > +             tprintf("%d", pid);
> > +             if (pid > 0)
> > +                     printpid_translation(tcp, pid, PT_TGID);
> > +             else if (pid < -1)
> > +                     printpid_translation(tcp, -pid, PT_PGID);
> > +             tprintf(", ");
> >       } else {
> >               int status;
> >
>
> All these three cases have striking similarities which may warrant
> a common function.

Indeed, thanks.
It's a bit hard to come up with a good name for this function. Do you
think "printpid_tgid_pgid" will be OK?


More information about the Strace-devel mailing list