diff options
| author | Greg Clayton <gclayton@apple.com> | 2010-10-16 18:11:41 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2010-10-16 18:11:41 +0000 |
| commit | 556658c79e34ce1fe126e2634d47b80e8b3e78fd (patch) | |
| tree | 6d6ff145a0e6e809373b6b08d4c18a6916b0ca0d | |
| parent | cd86570b93e75660fae2e241b662d5e4b55c1085 (diff) | |
| download | bcm5719-llvm-556658c79e34ce1fe126e2634d47b80e8b3e78fd.tar.gz bcm5719-llvm-556658c79e34ce1fe126e2634d47b80e8b3e78fd.zip | |
Fixed an issue with MachTask::TaskResume () where if the task was already
suspended, we would call "int ::task_resume (task_t task);" as many times as
it took to resume the task which isn't what we want to do.
llvm-svn: 116674
| -rw-r--r-- | lldb/tools/debugserver/source/MacOSX/MachTask.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lldb/tools/debugserver/source/MacOSX/MachTask.cpp b/lldb/tools/debugserver/source/MacOSX/MachTask.cpp index 61ace434ec5..62ebac294b6 100644 --- a/lldb/tools/debugserver/source/MacOSX/MachTask.cpp +++ b/lldb/tools/debugserver/source/MacOSX/MachTask.cpp @@ -86,14 +86,18 @@ MachTask::Resume() { struct task_basic_info task_info; task_t task = TaskPort(); + if (task == TASK_NULL) + return KERN_INVALID_ARGUMENT; DNBError err; err = BasicInfo(task, &task_info); if (err.Success()) { - integer_t i; - for (i=0; i<task_info.suspend_count; i++) + // task_resume isn't counted like task_suspend calls are, are, so if the + // task is not suspended, don't try and resume it since it is already + // running + if (task_info.suspend_count > 0) { err = ::task_resume (task); if (DNBLogCheckLogBit(LOG_TASK) || err.Fail()) |

