src/scripttools/debugging/scripts/commands/down.qs
changeset 0 1918ee327afb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/scripttools/debugging/scripts/commands/down.qs	Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,33 @@
+name = "down";
+
+group = "stack";
+
+shortDescription = "Select and print the stack frame below the current one";
+
+longDescription = "";
+
+seeAlso = [ "up", "frame" ];
+
+function execute() {
+    var idx = getCurrentFrameIndex();
+    if (idx == 0) {
+        warning("Already at bottom (innermost) frame.");
+        return;
+    }
+    setCurrentFrameIndex(idx - 1);
+    scheduleGetContextInfo(idx - 1);
+    state = 1;
+}
+
+function handleResponse(resp, id) {
+    if (state == 1) {
+        var info = resp.result;
+        setCurrentScriptId(info.scriptId);
+        setCurrentLineNumber(info.lineNumber);
+        scheduleGetBacktrace();
+        state = 2;
+    } else if (state == 2) {
+        var backtrace = resp.result;
+        message("#" + getCurrentFrameIndex() + "  " + backtrace[getCurrentFrameIndex()]);
+    }
+}