summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2010-10-07 04:19:01 +0000
committerGreg Clayton <gclayton@apple.com>2010-10-07 04:19:01 +0000
commit05faeb71350f65bbe8e41b68b22345e992e9a497 (patch)
treee01f0087d0afd0f1050c255be597fcbdcbfe7c49 /lldb/source/Target/Process.cpp
parent1b468683c273ca438345381fa89d52355bb04a80 (diff)
downloadbcm5719-llvm-05faeb71350f65bbe8e41b68b22345e992e9a497.tar.gz
bcm5719-llvm-05faeb71350f65bbe8e41b68b22345e992e9a497.zip
Cleaned up the SWIG stuff so all includes happen as they should, no pulling
tricks to get types to resolve. I did this by correctly including the correct files: stdint.h and all lldb-*.h files first before including the API files. This allowed me to remove all of the hacks that were in the lldb.swig file and it also allows all of the #defines in lldb-defines.h and enumerations in lldb-enumerations.h to appear in the lldb.py module. This will make the python script code a lot more readable. Cleaned up the "process launch" command to not execute a "process continue" command, it now just does what it should have with the internal API calls instead of executing another command line command. Made the lldb_private::Process set the state to launching and attaching if WillLaunch/WillAttach return no error respectively. llvm-svn: 115902
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r--lldb/source/Target/Process.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 3a65c5235e0..7f67a87243f 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -198,9 +198,14 @@ Process::WaitForState
{
EventSP event_sp;
uint32_t i;
- StateType state = eStateUnloaded;
+ StateType state = GetState();
while (state != eStateInvalid)
{
+ // If we are exited or detached, we won't ever get back to any
+ // other valid state...
+ if (state == eStateDetached || state == eStateExited)
+ return state;
+
state = WaitForStateChangedEvents (timeout, event_sp);
for (i=0; i<num_match_states; ++i)
@@ -1006,6 +1011,7 @@ Process::Launch
error = WillLaunch (exe_module);
if (error.Success())
{
+ SetPublicState (eStateLaunching);
// The args coming in should not contain the application name, the
// lldb_private::Process class will add this in case the executable
// gets resolved to a different file than was given on the command
@@ -1147,6 +1153,8 @@ Process::Attach (lldb::pid_t attach_pid)
Error error (WillAttachToProcessWithID(attach_pid));
if (error.Success())
{
+ SetPublicState (eStateAttaching);
+
error = DoAttachToProcessWithID (attach_pid);
if (error.Success())
{
@@ -1190,6 +1198,7 @@ Process::Attach (const char *process_name, bool wait_for_launch)
Error error (WillAttachToProcessWithName(process_name, wait_for_launch));
if (error.Success())
{
+ SetPublicState (eStateAttaching);
StartPrivateStateThread();
error = DoAttachToProcessWithName (process_name, wait_for_launch);
if (error.Fail())
OpenPOWER on IntegriCloud