Revision: 3788 http://vexi.svn.sourceforge.net/vexi/?rev=3788&view=rev Author: jeffbuhrt Date: 2010-02-03 22:25:35 +0000 (Wed, 03 Feb 2010)
Log Message: ----------- memory and memoryhist modes now run (again) Modified Paths: -------------- trunk/core/org.vexi.devl/.classpath trunk/core/org.vexi.devl/src/org/ibex/js/ObjTree.java trunk/core/org.vexi.devl/src/org/ibex/js/RTScopeInfo.java trunk/core/org.vexi.devl/src/org/ibex/js/ScopeInfoManager.java trunk/core/org.vexi.devl/src/org/ibex/js/ThreadInfo.java trunk/core/org.vexi.devl/src/org/vexi/devl/Main.java trunk/core/org.vexi.devl/src/org/vexi/instrument/debug/DebugHandler.java trunk/core/org.vexi.devl/src/org/vexi/instrument/profile/Profile.java Modified: trunk/core/org.vexi.devl/.classpath =================================================================== --- trunk/core/org.vexi.devl/.classpath 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/.classpath 2010-02-03 22:25:35 UTC (rev 3788) @@ -3,12 +3,12 @@ <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src_gen"/> <classpathentry excluding="testold/debug/|testold/debug/simple/|testold/debug/thread/|testold/debug/vars/" kind="src" path="src_junit"/> - <classpathentry combineaccessrules="false" kind="src" path="/org.ibex.js"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/> <classpathentry kind="lib" path="lib/xmlrpc-2.0.jar"/> <classpathentry kind="lib" path="lib/insanelib.jar"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/> <classpathentry combineaccessrules="false" kind="src" path="/org.vexi.core"/> + <classpathentry combineaccessrules="false" kind="src" path="/org.ibex.js"/> <classpathentry kind="output" path="bin"/> </classpath> Modified: trunk/core/org.vexi.devl/src/org/ibex/js/ObjTree.java =================================================================== --- trunk/core/org.vexi.devl/src/org/ibex/js/ObjTree.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/ibex/js/ObjTree.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -1,8 +1,11 @@ package org.ibex.js; -import java.util.*; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; +import java.util.Vector; -import org.ibex.js.Parser.ScopeInfo; +import org.ibex.js.parse.Parser.ScopeInfo; /** A Tree */ class ObjTree implements org.vexi.instrument.debug.Constants{ Modified: trunk/core/org.vexi.devl/src/org/ibex/js/RTScopeInfo.java =================================================================== --- trunk/core/org.vexi.devl/src/org/ibex/js/RTScopeInfo.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/ibex/js/RTScopeInfo.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -1,10 +1,12 @@ package org.ibex.js; import java.util.HashMap; -import org.ibex.js.Parser.ScopeInfo; +import org.ibex.js.parse.Function; +import org.ibex.js.parse.Parser.ScopeInfo; + /** As opposed to ScopeInfo which comes at compile time */ public class RTScopeInfo { @@ -20,11 +22,11 @@ scopeInfos.put(sikey(si.jsfunc, si.pc), si); } - static private String sikey(JSFunction jsfunc, int pc){ + static private String sikey(Function jsfunc, int pc){ return (jsfunc.definedAt() + ":" + pc); } - static public void put(Scope scope, JSFunction f, int pc){ + static public void put(Scope scope, Function f, int pc){ int lastNewScope = ScopeInfoManager.getLastNEWSCOPE(f,pc); if(scopeToRTSI.get(scope) != null) return; @@ -45,11 +47,11 @@ } - RTScopeInfo(JSFunction f, int pc){ + RTScopeInfo(Function f, int pc){ this.f = f; this.pc = pc; } - JSFunction f;// Function it belongs to + Function f;// Function it belongs to int pc; } \ No newline at end of file Modified: trunk/core/org.vexi.devl/src/org/ibex/js/ScopeInfoManager.java =================================================================== --- trunk/core/org.vexi.devl/src/org/ibex/js/ScopeInfoManager.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/ibex/js/ScopeInfoManager.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -1,10 +1,15 @@ package org.ibex.js; -import java.util.*; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Vector; -import org.ibex.js.Parser.*; +import org.ibex.js.parse.ByteCodes; +import org.ibex.js.parse.Function; +import org.ibex.js.parse.Parser.ScopeEntry; +import org.ibex.js.parse.Parser.ScopeInfo; +import org.vexi.instrument.debug.MessagePasser.IMessagePart; import org.vexi.util.Log; -import org.vexi.instrument.debug.MessagePasser.IMessagePart; public class ScopeInfoManager implements org.vexi.instrument.debug.Constants{ @@ -125,7 +130,7 @@ // Uses scopeinfo to recover var index from varname ScopeInfo si = RTScopeInfo.Map.get(rtsi); ScopeEntry entry = (ScopeEntry) si.mapping.get(varName); - if(entry!=null)return entry.slot; + if(entry!=null)return (JSNumber.I)entry.slot; // Try parent scope (ScopeInfos don't have references to their // parents) scope = scope.parent; @@ -276,20 +281,21 @@ // Returns key (name) from value (scopeslot) static String reverseLookupScopeInfo(ScopeInfo si, int slot){ - Iterator I = si.mapping.keySet().iterator(); - while(I.hasNext()){ - - String vn = (String) I.next(); - ScopeEntry entry = (ScopeEntry) si.mapping.get(vn); - if(entry.slot.i == slot){ - return vn ; - } - } - return "? (" + slot + ")"; +// Iterator I = si.mapping.keySet().iterator(); +// while(I.hasNext()){ +// +// String vn = (String) I.next(); +// ScopeEntry entry = (ScopeEntry) si.mapping.get(vn); +// if(entry.slot.i == slot){ +// return vn ; +// } +// } +// return "? (" + slot + ")"; + return "? (Lookip not currently supported)"; } // Get previous NEWSCOPE (scope corresponding to pc) - static int getLastNEWSCOPE(JSFunction f, int pc){ + static int getLastNEWSCOPE(Function f, int pc){ int bcode = f.op[pc]; while(bcode != ByteCodes.NEWSCOPE){ bcode=f.op[--pc]; Modified: trunk/core/org.vexi.devl/src/org/ibex/js/ThreadInfo.java =================================================================== --- trunk/core/org.vexi.devl/src/org/ibex/js/ThreadInfo.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/ibex/js/ThreadInfo.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -9,9 +9,13 @@ import java.util.Map; import java.util.Vector; +import org.ibex.js.parse.ByteCodes; +import org.ibex.js.parse.Function; +import org.vexi.instrument.debug.BreakPoint; +import org.vexi.instrument.debug.DebugHandler; +import org.vexi.instrument.debug.SourceManager; +import org.vexi.instrument.debug.MessagePasser.IMessagePart; import org.vexi.util.Log; -import org.vexi.instrument.debug.*; -import org.vexi.instrument.debug.MessagePasser.IMessagePart; class CallStack{ public CallStack() {} @@ -90,7 +94,8 @@ static class CallInfo{ CallInfo(Position pos, Scope s){ - this(pos.f.sourceName, pos.ln, s); +// this(pos.f.sourceName, pos.ln, s); + this("", pos.ln, s); } private CallInfo(String srcName, int ln, Scope scope) { this.srcName = srcName; @@ -165,8 +170,8 @@ class Position{ - final static Position NOWHERE = new Position(new JSFunction("",-1,null),-1,-1); - Position(JSFunction f, int ln, int callpos) { + final static Position NOWHERE = new Position(new Function(null,0),-1,-1); + Position(Function f, int ln, int callpos) { this.f = f; this.ln = ln; this.callpos = callpos; @@ -175,7 +180,7 @@ boolean sameLine(Position p){ return ln==p.ln && f==p.f; } - JSFunction f; + Function f; int ln; int callpos; } @@ -310,7 +315,7 @@ } public void handle(Interpreter i){ - JSFunction f = i.f; + Function f = i.f; int ln = f.line[i.pc]; int pc = i.pc; Scope scope = i.scope; Modified: trunk/core/org.vexi.devl/src/org/vexi/devl/Main.java =================================================================== --- trunk/core/org.vexi.devl/src/org/vexi/devl/Main.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/vexi/devl/Main.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -2,13 +2,12 @@ import java.net.URL; -import org.ibex.js.*; -import org.vexi.util.Log; -import org.vexi.core.*; +import org.ibex.js.Fountain; import org.vexi.instrument.debug.DebugHandler; import org.vexi.instrument.memory.Memory; import org.vexi.instrument.memoryhist.MemoryHist; import org.vexi.instrument.profile.Profile; +import org.vexi.util.Log; public class Main extends org.vexi.core.Main { @@ -28,6 +27,7 @@ " debuggee run with debugging instrumentation (in general\n"+ " you don't want to use this option directly)\n"+ " memory run with memory allocation info collection\n"+ + " memoryhist \n"+ " profile run with profiling\n"; @@ -65,8 +65,8 @@ new MemoryHist(); }else if("profile".equals(instrumentation)){ new Profile(); - }else if("checking".equals(instrumentation)){ - TemplateBuilder.setTemplateBuilder(new DevlTemplateBuilder()); +// }else if("checking".equals(instrumentation)){ +// TemplateBuilder.setTemplateBuilder(new DevlTemplateBuilder()); }else{ printUsage(); } Modified: trunk/core/org.vexi.devl/src/org/vexi/instrument/debug/DebugHandler.java =================================================================== --- trunk/core/org.vexi.devl/src/org/vexi/instrument/debug/DebugHandler.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/vexi/instrument/debug/DebugHandler.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -4,9 +4,13 @@ import java.util.ArrayList; import java.util.List; -import org.ibex.js.Parser.ScopeInfo; -import org.ibex.js.*; +import org.ibex.js.Fountain; +import org.ibex.js.Instr; +import org.ibex.js.Interpreter; +import org.ibex.js.RTScopeInfo; import org.ibex.js.Thread; +import org.ibex.js.ThreadInfo; +import org.ibex.js.parse.Parser.ScopeInfo; /** Modified: trunk/core/org.vexi.devl/src/org/vexi/instrument/profile/Profile.java =================================================================== --- trunk/core/org.vexi.devl/src/org/vexi/instrument/profile/Profile.java 2010-02-02 20:44:47 UTC (rev 3787) +++ trunk/core/org.vexi.devl/src/org/vexi/instrument/profile/Profile.java 2010-02-03 22:25:35 UTC (rev 3788) @@ -1,12 +1,21 @@ package org.vexi.instrument.profile; -import java.awt.*; -import java.awt.event.*; -import java.util.*; +import java.awt.BorderLayout; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Arrays; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; -import javax.swing.*; +import javax.swing.JButton; +import javax.swing.JFrame; -import org.ibex.js.*; +import org.ibex.js.Instr; +import org.ibex.js.Interpreter; +import org.ibex.js.JSFunction; +import org.ibex.js.parse.Function; import org.vexi.util.Log; @@ -44,14 +53,14 @@ } static class FuncCount { - JSFunction f; + Function f; int nExecs = 0; int nBytecodeExecs = 0; - public FuncCount(JSFunction f){ this.f = f; } + public FuncCount(Function f){ this.f = f; } public String toString(){ return nBytecodeExecs + " " + nExecs +" " + key(f);} } - static private String key(JSFunction f){ return f.sourceName+":"+f.firstLine; } + static private String key(Function f){ return f.sourceName+":"+f.firstLine; } //REMARK Is this wrong? The panel is in-process (which is //why it is written in swing and not Vexi), however it is This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn