Script started on Thu Sep 17 14:34:09 1998 prompt> jdb Device Initializing jdb... 0x9f:class(Device) > ? ** command list ** threads [threadgroup] -- list threads thread -- set default thread suspend [thread id(s)] -- suspend threads (default: all) resume [thread id(s)] -- resume threads (default: all) where [thread id] | all -- dump a thread's stack wherei [thread id] | all -- dump a thread's stack, with pc info threadgroups -- list threadgroups threadgroup -- set current threadgroup print [id(s)] -- print object or field dump [id(s)] -- print all object information locals -- print all local variables in current stack frame classes -- list currently known classes methods -- list a class's methods stop in .[(argument_type,...)] -- set a breakpoint in a method stop at : -- set a breakpoint at a line up [n frames] -- move up a thread's stack down [n frames] -- move down a thread's stack clear .[(argument_type,...)] -- clear a breakpoint in a method clear : -- clear a breakpoint at a line step -- execute current line step up -- execute until the current method returns to its caller stepi -- execute current instruction next -- step one line (step OVER calls) cont -- continue execution from breakpoint catch -- break for the specified exception ignore -- ignore when the specified exception list [line number|method] -- print source code use [source file path] -- display or change the source path memory -- report memory usage gc -- free unused objects load classname -- load Java class to be debugged run [args] -- start execution of a loaded Java class !! -- repeat last command help (or ?) -- list commands exit (or quit) -- exit debugger > stop in Device.main Breakpoint set in Device.main > stop in Device.paint Breakpoint set in Device.paint > run run Device running ... main[1] Breakpoint hit: Device.main (Device:114) main[1] next main[1] Breakpoint hit: Device.main (Device:113) main[1] next main[1] next Current thread is not suspended. main[1] Breakpoint hit: Device.main (Device:112) main[1] list 108 return new String ( "Bellenot's Device Object -- Up is " + up ); 109 } 110 */ 111 public static void main ( String[] args ) { 112 => try { 113 UIManager.setLookAndFeel ( 114 UIManager.getCrossPlatformLookAndFeelClassName() ); 115 } catch ( Exception exc ) { 116 System.out.println ( "Error loading L&F: " + exc ); main[1] next main[1] Breakpoint hit: Device.main (Device:119) main[1] next main[1] Breakpoint hit: Device.main (Device:123) main[1] next main[1] Breakpoint hit: Device.main (Device:124) main[1] list 120 public void windowClosing(WindowEvent e) { System.exit(0); } 121 }; 122 123 JFrame frame = new JFrame ( "Sci Vis" ); 124 => frame.addWindowListener(l); 125 126 Function3f fun = new Helix(1, 1); 127 ParametricCurve p = new ParametricCurve ( 0, 3, 0.25f, fun ); 128 main[1] locals Method arguments: Local variables: args = l = Device$1@4013488d frame = com.sun.java.swing.JFrame[frame0,0,0,0x0,invalid,hidden,layout=java.awt.BorderLayout,resizable,title=Sci Vis] main[1] next main[1] Breakpoint hit: Device.main (Device:126) main[1] next main[1] Breakpoint hit: Device.main (Device:127) main[1] locals Method arguments: Local variables: args = l = Device$1@4013488d frame = com.sun.java.swing.JFrame[frame0,0,0,0x0,invalid,hidden,layout=java.awt.BorderLayout,resizable,title=Sci Vis] fun = Helix@3237488c main[1] threads Group Device.main: 1. (sun.tools.agent.MainThread)0xec main suspended 2. (java.awt.EventDispatchThread)0xff AWT-EventQueue-0 suspended 3. (sun.awt.motif.InputThread)0x101 AWT-Input suspended 4. (java.lang.Thread)0x102 AWT-Motif suspended main[1] cont main[1] Current thread "main" died. Execution continuing... > Breakpoint hit: Device.paint (Device:90) AWT-EventQueue-0[1] where [1] Device.paint (Device:90) [2] com.sun.java.swing.JComponent.paintChildren (JComponent:381) [3] com.sun.java.swing.JComponent.paint (JComponent:528) [4] com.sun.java.swing.JComponent.paintChildren (JComponent:381) [5] com.sun.java.swing.JComponent.paint (JComponent:528) [6] com.sun.java.swing.JLayeredPane.paint (JLayeredPane:549) [7] com.sun.java.swing.JComponent.paintChildren (JComponent:381) [8] com.sun.java.swing.JComponent.paint (JComponent:513) [9] java.awt.Container.paint (Container:684) [10] com.sun.java.swing.JFrame.update (JFrame:251) [11] sun.awt.motif.MComponentPeer.handleEvent (MComponentPeer:224) [12] java.awt.Component.dispatchEventImpl (Component:2187) [13] java.awt.Container.dispatchEventImpl (Container:898) [14] java.awt.Window.dispatchEventImpl (Window:579) [15] java.awt.Component.dispatchEvent (Component:2050) [16] java.awt.EventQueue.dispatchEvent (EventQueue:223) [17] java.awt.EventDispatchThread.run (EventDispatchThread:63) AWT-EventQueue-0[1] print this this = Device[,0,0,588x569] AWT-EventQueue-0[1] print this.scale this.scale = 100.0 AWT-EventQueue-0[1] print this.up this.up = (-0.40824825, -0.40824825, 0.81649655) AWT-EventQueue-0[1] dump this this = (Device)0x129 { private int componentSerializedDataVersion = 2 private java.beans.PropertyChangeSupport changeSupport = null long eventMask = 4100 transient java.awt.event.InputMethodListener inputMethodListener = null transient java.awt.event.MouseMotionListener mouseMotionListener = null transient java.awt.event.MouseListener mouseListener = null transient java.awt.event.KeyListener keyListener = null transient java.awt.event.FocusListener focusListener = (com.sun.java.swing.JComponent$EnableSerializationFocusListener)0x12d transient java.awt.event.ComponentListener componentListener = null boolean newEventsOnly = true transient java.awt.ComponentOrientation componentOrientation = (java.awt.ComponentOrientation)0x130 java.awt.Dimension prefSize = null java.awt.Dimension minSize = null private boolean nameExplicitlySet = false private java.lang.String name = null java.util.Vector popups = null boolean hasFocus = false java.awt.dnd.DropTarget dropTarget = null boolean valid = true boolean enabled = true boolean visible = true java.util.Locale locale = null java.awt.Cursor cursor = (java.awt.Cursor)0x132 java.awt.Font font = null java.awt.Color background = null java.awt.Color foreground = null int height = 569 int width = 588 int y = 0 int x = 0 transient java.awt.Container parent = (com.sun.java.swing.JPanel)0x134 transient java.awt.peer.ComponentPeer peer = (java.awt.LightweightPeer)0x137 private int containerSerializedDataVersion = 1 transient java.awt.event.ContainerListener containerListener = null private java.awt.Dimension maxSize = null private java.awt.LightweightDispatcher dispatcher = null java.awt.LayoutManager layoutMgr = null java.awt.Component component[] = { null, null, null, ... } int ncomponents = 0 private java.awt.Rectangle paintImmediatelyClip = (java.awt.Rectangle)0x13c private com.sun.java.swing.event.SwingPropertyChangeSupport changeSupport = null protected com.sun.java.accessibility.AccessibleContext accessibleContext = null private transient java.awt.Rectangle tmpRect = null private int flags = 4 private com.sun.java.swing.border.Border border = null private com.sun.java.swing.Autoscroller autoscroller = null private java.beans.VetoableChangeSupport vetoableChangeSupport = null private java.util.Hashtable clientProperties = null protected com.sun.java.swing.event.EventListenerList listenerList = (com.sun.java.swing.event.EventListenerList)0x140 protected transient com.sun.java.swing.plaf.ComponentUI ui = null java.awt.Rectangle _bounds = (java.awt.Rectangle)0x141 private com.sun.java.swing.AncestorNotifier ancestorNotifier = null private java.lang.Float alignmentY = null private java.lang.Float alignmentX = null private java.awt.Dimension maximumSize = null private java.awt.Dimension minimumSize = null private java.awt.Dimension preferredSize = null private boolean debug = false private javax.vecmath.Vector3f zero = (javax.vecmath.Vector3f)0x142 private javax.vecmath.Vector3f k = (javax.vecmath.Vector3f)0x145 private javax.vecmath.Vector3f j = (javax.vecmath.Vector3f)0x146 private javax.vecmath.Vector3f i = (javax.vecmath.Vector3f)0x147 private ParametricCurve model = (ParametricCurve)0x149 private java.awt.Graphics g = null private float right0 = 0.0 private float up0 = 4.7683716E-7 private javax.vecmath.Vector3f right = (javax.vecmath.Vector3f)0x14a private javax.vecmath.Vector3f up = (javax.vecmath.Vector3f)0x12b private javax.vecmath.Vector3f viewUp = (javax.vecmath.Vector3f)0x14b private javax.vecmath.Vector3f viewNormal = (javax.vecmath.Vector3f)0x14c private javax.vecmath.Vector3f viewPosition = (javax.vecmath.Vector3f)0x14d private float scale = 100.0 private int height = 600 private int width = 600 } AWT-EventQueue-0[1] list 86 devLine ( v1.x, v1.y, v2.x, v2.y ); 87 } 88 89 public void paint ( Graphics gIn ) { 90 => g = gIn; 91 g.setColor ( Color.black ); 92 model.draw(this); 93 //debug = true; 94 //System.out.println ( "New Paint" ); AWT-EventQueue-0[1] next AWT-EventQueue-0[1] Breakpoint hit: Device.paint (Device:91) AWT-EventQueue-0[1] list 87 } 88 89 public void paint ( Graphics gIn ) { 90 g = gIn; 91 => g.setColor ( Color.black ); 92 model.draw(this); 93 //debug = true; 94 //System.out.println ( "New Paint" ); 95 g.setColor ( Color.blue ); AWT-EventQueue-0[1] print g.color "color" is not a valid field of (com.sun.java.swing.SwingGraphics2D)0x160 AWT-EventQueue-0[1] print g g = SwingGraphics2D(0x743488d) [subGraphics sun.awt.image.BufferedImageGraphics2D translate [x=0,y=0] clip [x=0,y=0,w=588,h=569] color [r=0,g=0,b=0] font [family=dialog.plain,name=Dialog,style=plain,size=12]] AWT-EventQueue-0[1] cont AWT-EventQueue-0[1] Breakpoint hit: Device.paint (Device:90) AWT-EventQueue-0[1] list 86 devLine ( v1.x, v1.y, v2.x, v2.y ); 87 } 88 89 public void paint ( Graphics gIn ) { 90 => g = gIn; 91 g.setColor ( Color.black ); 92 model.draw(this); 93 //debug = true; 94 //System.out.println ( "New Paint" ); AWT-EventQueue-0[1] next AWT-EventQueue-0[1] Breakpoint hit: Device.paint (Device:91) AWT-EventQueue-0[1] next AWT-EventQueue-0[1] Breakpoint hit: Device.paint (Device:92) AWT-EventQueue-0[1] list 88 89 public void paint ( Graphics gIn ) { 90 g = gIn; 91 g.setColor ( Color.black ); 92 => model.draw(this); 93 //debug = true; 94 //System.out.println ( "New Paint" ); 95 g.setColor ( Color.blue ); 96 lineVector3f ( zero, i ); AWT-EventQueue-0[1] step AWT-EventQueue-0[1] Breakpoint hit: ParametricCurve.draw (ParametricCurve:54) AWT-EventQueue-0[1] list 50 } 51 } 52 53 public void draw ( WireMesh w ) { 54 => Enumeration p = pointList.elements(); 55 if ( !p.hasMoreElements() ) 56 return; 57 Vector3f next = (Vector3f) p.nextElement(); 58 while ( p.hasMoreElements() ) { AWT-EventQueue-0[1] step up AWT-EventQueue-0[1] Breakpoint hit: Device.paint (Device:95) AWT-EventQueue-0[1] list 91 g.setColor ( Color.black ); 92 model.draw(this); 93 //debug = true; 94 //System.out.println ( "New Paint" ); 95 => g.setColor ( Color.blue ); 96 lineVector3f ( zero, i ); 97 lineVector3f ( zero, j ); 98 lineVector3f ( zero, k ); 99 //debug = false; AWT-EventQueue-0[1] quit script done on Thu Sep 17 14:39:16 1998