void WriteCurrentEnvironment(StringBuilder sb)
{
for (var env = this.currentEnvironment; env != null; env = env.Next) {
if (env.Frame.IntroducedAtProgramCounter != null) {
sb.AppendLine ("Frame starts at:");
var pc = env.Frame.IntroducedAtProgramCounter.Value;
var instruction = this.bytecode [pc];
this.PrintLineFor (sb, pc, instruction.StartPos, instruction.StartPos);
}
sb.AppendLine ("Frame variables are:");
for (var i = 0; i < env.Frame.VarNames.Length; i++) {
sb.AppendLine (String.Format (
"{0} = {1}",
env.Frame.VarNames [i],
Prim0.ShovelStringRepresentation (this.api, env.Frame.Values [i]).stringValue)
);
}
sb.AppendLine ();
}
}