private void SetupBehavior(ReferenceTypeId refTypeId, bool stopOnThrow, bool stopUncaught, string signature) { // set the event DLog.Info(DContext.DebuggerLibDebugger, "requesting exception event {0}: stopOnThrow: {1} stopUncaught: {2}", signature, stopOnThrow, stopUncaught); var modifier = new ExceptionOnlyModifier(refTypeId, stopOnThrow, stopUncaught); var eventId = Debugger.EventRequest.SetAsync(Jdwp.EventKind.Exception, Jdwp.SuspendPolicy.All, modifier) .Await(DalvikProcess.VmTimeout); // remove previous event, if any. int?prevEventId = null; _eventRequests.AddOrUpdate(refTypeId, eventId, (key, prev) => { prevEventId = prev; return(eventId); }); if (prevEventId.HasValue) { Debugger.EventRequest.ClearAsync(Jdwp.EventKind.Exception, prevEventId.Value) .Await(DalvikProcess.VmTimeout); } }
private void SetupBehavior(ReferenceTypeId refTypeId, bool stopOnThrow, bool stopUncaught, string signature) { // set the event DLog.Info(DContext.DebuggerLibDebugger, "requesting exception event {0}: stopOnThrow: {1} stopUncaught: {2}", signature, stopOnThrow, stopUncaught); var modifier = new ExceptionOnlyModifier(refTypeId, stopOnThrow, stopUncaught); var eventId = Debugger.EventRequest.SetAsync(Jdwp.EventKind.Exception, Jdwp.SuspendPolicy.All, modifier) .Await(DalvikProcess.VmTimeout); // remove previous event, if any. int? prevEventId = null; _eventRequests.AddOrUpdate(refTypeId, eventId, (key, prev) => { prevEventId = prev; return eventId; }); if (prevEventId.HasValue) { Debugger.EventRequest.ClearAsync(Jdwp.EventKind.Exception, prevEventId.Value) .Await(DalvikProcess.VmTimeout); } }