public virtual StackFrame[] GetStackFrames (int firstIndex, int lastIndex)
{
var frames = new List<StackFrame> ();
if (firstIndex == 0 && firstFrame != null) {
frames.Add (firstFrame);
firstIndex++;
}
if (lastIndex >= fcount)
lastIndex = fcount - 1;
if (firstIndex > lastIndex)
return frames.ToArray ();
session.SelectThread (threadId);
GdbCommandResult res = session.RunCommand ("-stack-list-frames", firstIndex.ToString (), lastIndex.ToString ());
ResultData stack = res.GetObject ("stack");
for (int n=0; n<stack.Count; n++) {
ResultData frd = stack.GetObject (n);
frames.Add (CreateFrame (frd.GetObject ("frame")));
}
return frames.ToArray ();
}