hrev45549 adds 1 changeset to branch 'master' old head: 8b49cb7645fd49a9c599439889d83ec0ef356d03 new head: dd817ff93cd2a76942d942b826ea9ecae8c79d0d overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=dd817ff+%5E8b49cb7 ---------------------------------------------------------------------------- dd817ff: Handle team deletion debug event. When the target team exits, notify the user and shut down the debugger. [ Rene Gollent <anevilyak@xxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45549 Commit: dd817ff93cd2a76942d942b826ea9ecae8c79d0d URL: http://cgit.haiku-os.org/haiku/commit/?id=dd817ff Author: Rene Gollent <anevilyak@xxxxxxxxx> Date: Wed Apr 24 03:05:36 2013 UTC ---------------------------------------------------------------------------- 2 files changed, 21 insertions(+), 1 deletion(-) src/apps/debugger/controllers/TeamDebugger.cpp | 20 +++++++++++++++++++- src/apps/debugger/controllers/TeamDebugger.h | 2 ++ ---------------------------------------------------------------------------- diff --git a/src/apps/debugger/controllers/TeamDebugger.cpp b/src/apps/debugger/controllers/TeamDebugger.cpp index 433e8ef..25d66d5 100644 --- a/src/apps/debugger/controllers/TeamDebugger.cpp +++ b/src/apps/debugger/controllers/TeamDebugger.cpp @@ -1145,10 +1145,14 @@ TeamDebugger::_HandleDebuggerMessage(DebugEvent* event) //printf("B_DEBUGGER_MESSAGE_TEAM_CREATED: team: %ld\n", message.team_created.new_team); // break; case B_DEBUGGER_MESSAGE_TEAM_DELETED: - // TODO: Handle! + { TRACE_EVENTS("B_DEBUGGER_MESSAGE_TEAM_DELETED: team: %" B_PRId32 "\n", event->Team()); + TeamDeletedEvent* teamEvent + = dynamic_cast<TeamDeletedEvent*>(event); + handled = _HandleTeamDeleted(teamEvent); break; + } case B_DEBUGGER_MESSAGE_TEAM_EXEC: TRACE_EVENTS("B_DEBUGGER_MESSAGE_TEAM_EXEC: team: %" B_PRId32 "\n", event->Team()); @@ -1227,6 +1231,20 @@ TeamDebugger::_HandleDebuggerMessage(DebugEvent* event) bool +TeamDebugger::_HandleTeamDeleted(TeamDeletedEvent* event) +{ + char message[64]; + snprintf(message, sizeof(message), "Team %" B_PRId32 " has terminated.", + event->Team()); + fUserInterface->SynchronouslyAskUser("Quit Debugger", message, "Quit", + NULL, NULL); + PostMessage(B_QUIT_REQUESTED); + + return true; +} + + +bool TeamDebugger::_HandleThreadCreated(ThreadCreatedEvent* event) { AutoLocker< ::Team> locker(fTeam); diff --git a/src/apps/debugger/controllers/TeamDebugger.h b/src/apps/debugger/controllers/TeamDebugger.h index b8b4347..700c01a 100644 --- a/src/apps/debugger/controllers/TeamDebugger.h +++ b/src/apps/debugger/controllers/TeamDebugger.h @@ -116,6 +116,8 @@ private: void _HandleDebuggerMessage(DebugEvent* event); + bool _HandleTeamDeleted( + TeamDeletedEvent* event); bool _HandleThreadCreated( ThreadCreatedEvent* event); bool _HandleThreadRenamed(