debugger: don't display node's internal scripts
authorRyan Dahl <ry@tinyclouds.org>
Thu, 30 Dec 2010 19:53:55 +0000 (11:53 -0800)
committerRyan Dahl <ry@tinyclouds.org>
Thu, 30 Dec 2010 19:53:55 +0000 (11:53 -0800)
lib/_debugger.js

index e0bd3e1..fb7b31a 100644 (file)
@@ -135,8 +135,13 @@ Client.prototype._addHandle = function(desc) {
 };
 
 
+var natives = process.binding('natives');
+
+
 Client.prototype._addScript = function(desc) {
   this.scripts[desc.id] = desc;
+  desc.isNative = (desc.name.replace('.js', '') in natives) ||
+                  desc.name == 'node.js';
 };
 
 
@@ -470,7 +475,7 @@ Interface.prototype.handleCommand = function(cmd) {
       self.printNotConnected();
       return;
     }
-    self.printScripts();
+    self.printScripts(cmd.indexOf('full') > 0);
     term.prompt();
 
   } else if (/^c(ontinue)?/.test(cmd)) {
@@ -610,14 +615,17 @@ Interface.prototype.printNotConnected = function() {
 };
 
 
-Interface.prototype.printScripts = function() {
+// argument full tells if it should display internal node scripts or not
+Interface.prototype.printScripts = function(displayNatives) {
   var client = this.client;
   var text = '';
   for (var id in client.scripts) {
     var script = client.scripts[id];
     if (typeof script == 'object' && script.name) {
-      text += script.name == client.currentScript ? '* ' : '  ';
-      text += script.name + '\n';
+      if (displayNatives || script.name == client.currentScript || !script.isNative) {
+        text += script.name == client.currentScript ? '* ' : '  ';
+        text += script.name + '\n';
+      }
     }
   }
   process.stdout.write(text);