--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/scripttools/debugging/scripts/commands/frame.qs Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,36 @@
+name = "frame";
+
+group = "stack";
+
+shortDescription = "Select and print a stack frame";
+
+longDescription = "";
+
+aliases = [ "f" ];
+
+function execute() {
+ if (arguments.length == 0)
+ requestedFrameIndex = getCurrentFrameIndex();
+ else
+ requestedFrameIndex = parseInt(arguments[0]);
+ scheduleGetContextInfo(requestedFrameIndex);
+ state = 1;
+};
+
+function handleResponse(resp, id) {
+ if (state == 1) {
+ var info = resp.result;
+ if (info == undefined) {
+ message("Frame index out of range.");
+ return;
+ }
+ setCurrentFrameIndex(requestedFrameIndex);
+ setCurrentScriptId(info.scriptId);
+ setCurrentLineNumber(info.lineNumber);
+ scheduleGetBacktrace();
+ state = 2;
+ } else if (state == 2) {
+ var backtrace = resp.result;
+ message("#" + getCurrentFrameIndex() + " " + backtrace[getCurrentFrameIndex()]);
+ }
+}