[DynInst_API:] [dyninst/dyninst] f88802: proccontrol: scrub newly created threads that fail...


Date: Wed, 30 Nov 2016 14:54:29 -0800
From: Josh Stone <cuviper@xxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] f88802: proccontrol: scrub newly created threads that fail...
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: f88802f0737f4cf2a684cb2528f2c3ae0addc393
      https://github.com/dyninst/dyninst/commit/f88802f0737f4cf2a684cb2528f2c3ae0addc393
  Author: Josh Stone <jistone@xxxxxxxxxx>
  Date:   2016-11-16 (Wed, 16 Nov 2016)

  Changed paths:
    M proccontrol/src/process.C

  Log Message:
  -----------
  proccontrol: scrub newly created threads that fail to attach

If `int_thread::createThread` failed to actually attach to the thread,
it was leaving the thread object in the process in the `neonatal` state.
This failed assertions later when trying to stop all of the process's
threads, as it would have handler `stopped` and generator `neonatal`.

Now when a thread attach fails, it is set to `errorstate` and removed
from the active thread pools.  The assumption is that this thread simply
exited before we could attach, but we can't be sure of that without
having access to the ptrace return code (`ESRCH`).


  Commit: 6ccfab4766a02686dbf083b4c8dee1ac39a405cd
      https://github.com/dyninst/dyninst/commit/6ccfab4766a02686dbf083b4c8dee1ac39a405cd
  Author: Josh Stone <cuviper@xxxxxxxxx>
  Date:   2016-11-30 (Wed, 30 Nov 2016)

  Changed paths:
    M proccontrol/src/process.C

  Log Message:
  -----------
  Merge pull request #259 from cuviper/scrub-failed-createThread

proccontrol: scrub newly created threads that fail to attach


Compare: https://github.com/dyninst/dyninst/compare/d2f0f1051e5c...6ccfab4766a0
[← Prev in Thread] Current Thread [Next in Thread→]