Some simplifications. Also tried to get rid of the ostensible error
condition when the traced team exits, but this seems to be a inherent problem. The thread that calls _kern_exit_team() apparently still manages to send the post-syscall message, but when the debugger tries to continue it, it is already gone. Not really harmful. We'll probably find a remedy later. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11706 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -508,11 +508,9 @@ main(int argc, const char *const *argv)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
thread_id concernedThread = -1;
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case B_DEBUGGER_MESSAGE_POST_SYSCALL:
|
case B_DEBUGGER_MESSAGE_POST_SYSCALL:
|
||||||
{
|
{
|
||||||
concernedThread = message.origin.thread;
|
|
||||||
print_syscall(message.post_syscall, memoryReader,
|
print_syscall(message.post_syscall, memoryReader,
|
||||||
printArguments, !fastMode, printReturnValues, colorize);
|
printArguments, !fastMode, printReturnValues, colorize);
|
||||||
|
|
||||||
@@ -522,11 +520,11 @@ main(int argc, const char *const *argv)
|
|||||||
case B_DEBUGGER_MESSAGE_THREAD_STOPPED:
|
case B_DEBUGGER_MESSAGE_THREAD_STOPPED:
|
||||||
case B_DEBUGGER_MESSAGE_PRE_SYSCALL:
|
case B_DEBUGGER_MESSAGE_PRE_SYSCALL:
|
||||||
case B_DEBUGGER_MESSAGE_SIGNAL_RECEIVED:
|
case B_DEBUGGER_MESSAGE_SIGNAL_RECEIVED:
|
||||||
|
case B_DEBUGGER_MESSAGE_EXCEPTION_OCCURRED:
|
||||||
case B_DEBUGGER_MESSAGE_TEAM_CREATED:
|
case B_DEBUGGER_MESSAGE_TEAM_CREATED:
|
||||||
case B_DEBUGGER_MESSAGE_THREAD_CREATED:
|
case B_DEBUGGER_MESSAGE_THREAD_CREATED:
|
||||||
case B_DEBUGGER_MESSAGE_IMAGE_CREATED:
|
case B_DEBUGGER_MESSAGE_IMAGE_CREATED:
|
||||||
case B_DEBUGGER_MESSAGE_IMAGE_DELETED:
|
case B_DEBUGGER_MESSAGE_IMAGE_DELETED:
|
||||||
concernedThread = message.origin.thread;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_DEBUGGER_MESSAGE_THREAD_DELETED:
|
case B_DEBUGGER_MESSAGE_THREAD_DELETED:
|
||||||
@@ -538,10 +536,10 @@ main(int argc, const char *const *argv)
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// tell the thread to continue
|
// tell the thread to continue (only when there is a thread and the
|
||||||
if (concernedThread >= 0) {
|
// message was synchronous)
|
||||||
run_thread(nubPort, concernedThread);
|
if (message.origin.thread >= 0 && message.origin.nub_port >= 0)
|
||||||
}
|
run_thread(message.origin.nub_port, message.origin.thread);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user