[Crash-utility] [PATCH] fix a mistake of output for task's state

Dave Anderson anderson at redhat.com
Wed Sep 12 13:18:18 UTC 2012



----- Original Message -----
> Hello Dave,
> 
> Please refer to the attachment. I think the string of state is not
> correct.
> 
> --
> --
> Regards
> Qiao Nuohan
>
>
>   --- a/task.c
>   +++ b/task.c
>   @@ -4633,7 +4633,7 @@ task_state_string(ulong task, char *buf, int verbose)
>
>       if (valid_task_state(_TRACING_STOPPED_) &&
>           (state & _TRACING_STOPPED_)) {
>   -           sprintf(buf, "ST");
>   +           sprintf(buf, "TS");
>               valid++;
>               set++;
>       }
~      

Actually it is shown as "ST" on purpose, because it goes back to 
older kernels where there was no separate "traced" state, and both
"stopped" and "traced" states were essentially the same.  The flag
bits keep changing over time, but the original list of states shown
by "ps" has always been: 

   crash> help ps
   ...
      5. the task state (RU, IN, UN, ZO, ST, DE, SW).
   ...

However I agree with you that for clarity's sake the traced state should
be differentiated.  But I think it would be better to change it to "TR" 
instead of your "TS" suggestion -- note that the verbose translation
used by the "set" command shows "TASK_TRACED":

        if (state & _TRACING_STOPPED_)
                sprintf(&buf[strlen(buf)], "%sTASK_TRACED",
                        count++ ? "|" : "");

I'll update the "ps" help page with the new "TR" identifier.

Thanks,
  Dave




More information about the Crash-utility mailing list