public IEnumerable <KeyValuePair <string, ulong> > GetSavedRegisters() { var layout = _Provider.GetThreadLayout(_Evaluator); var sp = _Evaluator.EvaluateIntegralExpression(GetFieldExpression("sp")) ?? 0; var lr = _Evaluator.EvaluateIntegralExpression(GetFieldExpression("stack_frame")) ?? 0; if (sp == 0 || lr == 0) { return(new KeyValuePair <string, ulong> [0]); } StackLayoutBuilder builder = new StackLayoutBuilder(); builder.AddRegisters("r", 4, 11); if ((lr & 0x10) == 0) { builder.AddRegisters("s", 16, 31); } builder.AddRegisters("r", 0, 3); builder.AddRegisters("r12", "lr", "pc"); builder.Skip(4); return(builder.FetchValues(sp, _Evaluator)); }