diff options
author | Greg Clayton <gclayton@apple.com> | 2011-01-22 07:12:45 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-01-22 07:12:45 +0000 |
commit | 6ed95945edea5f40fa5aedb3b049bb3d78dcce4e (patch) | |
tree | 0d4d4585b6dc65f10d66542ae0d5aa8ebab33344 /lldb/source/Target/Process.cpp | |
parent | 9c399a29fd5b57c7a200d1fd014f39684c78a0e1 (diff) | |
download | bcm5719-llvm-6ed95945edea5f40fa5aedb3b049bb3d78dcce4e.tar.gz bcm5719-llvm-6ed95945edea5f40fa5aedb3b049bb3d78dcce4e.zip |
Sped up the shutdown time on MacOSX by quite a bit by making sure any
threads that we spawn let us know when they are going away and that we
don't timeout waiting for a message from threads that have gone away.
We also now don't expect the "k" packet (kill) to send a response. This
greatly speeds up debugger shutdown performance. The test suite now runs
quite a bit faster.
Added a fix to the variable display code that fixes the display of
base classes. We were assuming the virtual or normal base class offsets
were being given in bit sizes, but they were being given as character
sizes, so we needed to multiply the offset by 8. This wasn't affecting
the expression parser, but it was affecting the correct display of C++
class base classes and all of their children.
llvm-svn: 124024
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 2903daddde9..dab34765ef5 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -407,7 +407,6 @@ Process::WaitForStateChangedEvents (const TimeValue *timeout, EventSP &event_sp) event_sp)) state = Process::ProcessEventData::GetStateFromEvent(event_sp.get()); - log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS); if (log) log->Printf ("Process::%s (timeout = %p, event_sp) => %s", __FUNCTION__, @@ -427,7 +426,6 @@ Process::PeekAtStateChangedEvents () Event *event_ptr; event_ptr = m_listener.PeekAtNextEventForBroadcasterWithType (this, eBroadcastBitStateChanged); - log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS); if (log) { if (event_ptr) @@ -463,7 +461,6 @@ Process::WaitForStateChangedEventsPrivate (const TimeValue *timeout, EventSP &ev // This is a bit of a hack, but when we wait here we could very well return // to the command-line, and that could disable the log, which would render the // log we got above invalid. - log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS); if (log) log->Printf ("Process::%s (timeout = %p, event_sp) => %s", __FUNCTION__, timeout, StateAsCString(state)); return state; @@ -2140,7 +2137,6 @@ Process::RunPrivateStateThread () break; } - log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS); if (log) log->Printf ("Process::%s (arg = %p, pid = %i) got a control event: %d", __FUNCTION__, this, GetID(), event_sp->GetType()); @@ -2160,7 +2156,6 @@ Process::RunPrivateStateThread () internal_state == eStateExited || internal_state == eStateDetached ) { - log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS); if (log) log->Printf ("Process::%s (arg = %p, pid = %i) about to exit with internal state %s...", __FUNCTION__, this, GetID(), StateAsCString(internal_state)); @@ -2169,10 +2164,11 @@ Process::RunPrivateStateThread () } // Verify log is still enabled before attempting to write to it... - log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_PROCESS); if (log) log->Printf ("Process::%s (arg = %p, pid = %i) thread exiting...", __FUNCTION__, this, GetID()); + m_private_state_control_wait.SetValue (true, eBroadcastAlways); + m_private_state_thread = LLDB_INVALID_HOST_THREAD; return NULL; } |