[lldb-dev] Can Process hold a TargetSP instead of a Target&?

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Fri Aug 28 11:34:45 PDT 2015

We've been seeing races during shutdown of inferiors for months, and I
finally tracked it down to the fact that Process holds a Target&.  When an
inferior is exiting on Windows, we will get a notification of this and we
try to do various cleanup related with the target.  But there are times
where the Target gets deleted even when the Process is still around, due to
some interactions between our debug loop and the timing of when certain
debug events that get sent by the operating system.

As a result, the race leads to us getting one of the notifications from the
OS and us trying to access the target, which is stored by reference leading
to a crash.

It seems like a purely mechanical change to make Process hold a TargetSP
instead of a Target&.  I've already started down this patch locally, but I
want to make sure there are no objections or concerns before I continue
down this path, since it's kind of mundane work.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150828/cb7d7f27/attachment-0001.html>

More information about the lldb-dev mailing list