STATE_PTRACED,
STATE_ZOMBIE,
STATE_DEAD,
+ STATE_DISK_SLEEP,
STATE_LAST
};
{
switch (state)
{
- case STATE_INSTABLE: return "STATE_INSTABLE";
- case STATE_ENOENT: return "STATE_ENOENT";
- case STATE_SLEEPING: return "STATE_SLEEPING";
- case STATE_RUNNING: return "STATE_RUNNING";
- case STATE_STOPPED: return "STATE_STOPPED";
- case STATE_PTRACED: return "STATE_PTRACED";
- case STATE_ZOMBIE: return "STATE_ZOMBIE";
- case STATE_DEAD: return "STATE_DEAD";
+ case STATE_INSTABLE: return "STATE_INSTABLE";
+ case STATE_ENOENT: return "STATE_ENOENT";
+ case STATE_SLEEPING: return "STATE_SLEEPING";
+ case STATE_RUNNING: return "STATE_RUNNING";
+ case STATE_STOPPED: return "STATE_STOPPED";
+ case STATE_PTRACED: return "STATE_PTRACED";
+ case STATE_ZOMBIE: return "STATE_ZOMBIE";
+ case STATE_DEAD: return "STATE_DEAD";
+ case STATE_DISK_SLEEP: return "STATE_DISK_SLEEP";
default: crash ();
}
/* NOTREACHED */
/* FIXME: What does it mean? */
else if (strcmp (line + length, "X (dead)\n") == 0)
found = STATE_DEAD;
+ else if (strcmp (line + length, "D (disk sleep)\n") == 0)
+ found = STATE_DISK_SLEEP;
else
{
fprintf (stderr, "Found an unknown state: %s", line + length);
fprintf (stderr, "err = %d\n", err);
abort ();
}
- assert (attach_state->threads_count > 0);
+ /* Do not: assert (attach_state->threads_count > 0);
+ as during early initialization we really may get 0. */
}
struct attach_state_struct *attach (pid_t pid)