protected override void ProcessRecord() { base.ProcessRecord(); try { if (Increment) { var ctx = Debugger.GetCurrentDbgEngContext(); _Worker(ctx.FrameIndex + 1, "CannotIncrementPastTopOfStack"); DbgProvider.SetAutoRepeatCommand(".f+"); } else if (Decrement) { var ctx = Debugger.GetCurrentDbgEngContext(); _Worker(ctx.FrameIndex - 1, "CannotDecrementPastBottomOfStack"); DbgProvider.SetAutoRepeatCommand(".f-"); } else { _Worker(FrameNumber, "StackFrameOutsideOfActualStack"); } } catch (DbgProviderException dpe) { WriteError(dpe); } DbgProvider.SetLocationByDebuggerContext(); } // end ProcessRecord()
protected void RebuildNamespaceAndSetLocationBasedOnDebuggerContext(bool outputRegisters, DbgRegisterSetBase baselineRegisters) { string newCurrentPath = DbgProvider.SetLocationByDebuggerContext(); if (outputRegisters && (null != newCurrentPath)) { // This basically just removes the leading whack. string providerPath = SessionState.Path.GetUnresolvedProviderPathFromPSPath(newCurrentPath); var regSet = DbgProvider.GetRegisterSetForPath(providerPath, baselineRegisters); if (null != regSet) { // TODO: Set ReadDbgAssemblyCommand.NextAddrToDisassemble here? (and the others) SafeWriteObject(regSet); } } } // end SetLocationBasedOnDebuggerContext()