1 33 34 package edu.rice.cs.drjava.model.debug; 35 36 import edu.rice.cs.drjava.DrJava; 37 import edu.rice.cs.drjava.config.OptionConstants; 38 import java.util.StringTokenizer ; 39 40 import com.sun.jdi.*; 41 import com.sun.jdi.request.*; 42 43 44 public class Step extends DebugAction<StepRequest> implements OptionConstants { 45 private final ThreadReference _thread; 46 private final int _size; 47 private final int _depth; 48 49 private final String [] _javaExcludes = {"java.*", "javax.*", "sun.*", "com.sun.*", "com.apple.eawt.*", "com.apple.eio.*" }; 51 52 53 public Step(JPDADebugger manager, int size, int depth) 54 throws DebugException, IllegalStateException { 55 super (manager); 56 _suspendPolicy = EventRequest.SUSPEND_EVENT_THREAD; 57 _thread = _manager.getCurrentThread(); 58 _size = size; 59 _depth = depth; 60 _countFilter = 1; _initializeRequests(); 62 } 63 64 68 73 protected void _createRequests() throws DebugException { 74 boolean stepJava = DrJava.getConfig().getSetting(DEBUG_STEP_JAVA).booleanValue(); 75 boolean stepInterpreter = DrJava.getConfig().getSetting(DEBUG_STEP_INTERPRETER).booleanValue(); 76 boolean stepDrJava = DrJava.getConfig().getSetting(DEBUG_STEP_DRJAVA).booleanValue(); 77 String exclude = DrJava.getConfig().getSetting(DEBUG_STEP_EXCLUDE); 78 79 StepRequest request = _manager.getEventRequestManager(). 80 createStepRequest(_thread, _size, _depth); 81 if (!stepJava) { 82 for (int i=0; i < _javaExcludes.length; i++) { 83 request.addClassExclusionFilter(_javaExcludes[i]); 84 } 85 } 86 if (!stepInterpreter) { 87 request.addClassExclusionFilter("koala.*"); 88 } 89 if (!stepDrJava) { 90 request.addClassExclusionFilter("edu.rice.cs.drjava.*"); 91 request.addClassExclusionFilter("edu.rice.cs.util.*"); 92 } 93 StringTokenizer st = new StringTokenizer (exclude, ","); 94 while (st.hasMoreTokens()) { 95 request.addClassExclusionFilter(st.nextToken().trim()); 96 } 97 98 99 _requests.add(request); 101 } 102 103 public String toString() { return "Step[thread: " + _thread + "]"; } 104 } 105 | Popular Tags |