public ExitStatus run ( ) { synchronized ( DebuggerReader . class ) // Only one console! { println ( "Stopped " + breakpoint ) ; println ( interpreter . getSourceLine ( breakpoint . location ) ) ; try { interpreter . setDefaultName ( breakpoint . location . getModule ( ) ) ; } catch ( Exception e ) { throw new InternalException ( 52 , "Cannot set default name at breakpoint" ) ; } ExitStatus status = super . run ( new Vector < File > ( ) ) ; return status ; } }
This first prints out the current breakpoint source location before calling the superclass run method . The synchronization prevents more than one debugging session on the console .