public XamarinStackFrame(XamarinEngine engine, XamarinThread thread, Mono.Debugging.Client.StackFrame stackFrame) { _engine = engine; _thread = thread; _stackFrame = stackFrame; _parameters = _stackFrame.GetParameters(); _locals = _stackFrame.GetLocalVariables(); _thisObject = _stackFrame.GetThisReference(); }
private void CreateAndRegisterXamarinThread(Client.ThreadInfo threadInfo) { XamarinThread thread = new XamarinThread(this, threadInfo.Id, threadInfo.Name, threadInfo.Location, _session); uint attributes; Guid riidEvent = new Guid(XamarinThreadCreateEvent.IID); IDebugThreadCreateEvent2 evnt = new XamarinThreadCreateEvent(); IDebugEvent2 eventObject = evnt as IDebugEvent2; if (eventObject.GetAttributes(out attributes) != VisualStudioExtensionConstants.S_OK) { throw new InvalidOperationException("Failed to create and register a thread. The event object failed to get its attributes"); } if (_eventCallback.Event(_engine, null, _activeProgram, thread, eventObject, ref riidEvent, attributes) != VisualStudioExtensionConstants.S_OK) { throw new InvalidOperationException("Failed to create and register a thread. The event has not been sent succesfully"); } }