From: <sh...@us...> - 2007-03-01 23:32:52
|
Revision: 9057 http://svn.sourceforge.net/jedit/?rev=9057&view=rev Author: shlomy Date: 2007-03-01 15:32:32 -0800 (Thu, 01 Mar 2007) Log Message: ----------- First version of the gdb interface plugin. Not yet usable nor stable. Contains the basic features: 1. Setting/removing/toggling breakpoints using actions at the caret position. 2. Jumping to the current source location whenever gdb stops. 3. Presenting the stack trace whenever gdb stops, jumping to each stack frame when double-clicked. 4. Automatic variables view (i.e. the vars defined in the current stack frame). 5. Gdb output and program output windows. Note this plugin uses gdb/mi. It is supposed to have true separation between jedit and the gdb plugin, but this is not yet implemented. Added Paths: ----------- plugins/GdbPlugin/trunk/.classpath plugins/GdbPlugin/trunk/.project plugins/GdbPlugin/trunk/Debugger.props plugins/GdbPlugin/trunk/actions.xml plugins/GdbPlugin/trunk/build/ plugins/GdbPlugin/trunk/build/debugger/ plugins/GdbPlugin/trunk/build/debugger/core/ plugins/GdbPlugin/trunk/build/debugger/core/DebuggerDB.class plugins/GdbPlugin/trunk/build/debugger/itf/ plugins/GdbPlugin/trunk/build/debugger/itf/DebuggerTool.class plugins/GdbPlugin/trunk/build/debugger/itf/IBreakpoint.class plugins/GdbPlugin/trunk/build/debugger/itf/IData.class plugins/GdbPlugin/trunk/build/debugger/itf/JEditFrontEnd.class plugins/GdbPlugin/trunk/build/debugger/jedit/ plugins/GdbPlugin/trunk/build/debugger/jedit/BreakpointPainter.class plugins/GdbPlugin/trunk/build/debugger/jedit/CurrentPositionPainter.class plugins/GdbPlugin/trunk/build/debugger/jedit/DebuggerPainter.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$1.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$2.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$3.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$4.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$5.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$6.class plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane.class plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$1.class plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$2.class plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$Breakpoint.class plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin.class plugins/GdbPlugin/trunk/build/debugger/jedit/launch/ plugins/GdbPlugin/trunk/build/debugger/jedit/launch/LaunchConfiguration.class plugins/GdbPlugin/trunk/build/debugger/jedit/launch/LaunchConfigurationManager.class plugins/GdbPlugin/trunk/build/gdb/ plugins/GdbPlugin/trunk/build/gdb/CallbackManager$HandleResult.class plugins/GdbPlugin/trunk/build/gdb/CallbackManager.class plugins/GdbPlugin/trunk/build/gdb/CommandManager$Command$1.class plugins/GdbPlugin/trunk/build/gdb/CommandManager$Command.class plugins/GdbPlugin/trunk/build/gdb/CommandManager.class plugins/GdbPlugin/trunk/build/gdb/Debugger$1.class plugins/GdbPlugin/trunk/build/gdb/Debugger$Breakpoint.class plugins/GdbPlugin/trunk/build/gdb/Debugger$BreakpointHitHandler.class plugins/GdbPlugin/trunk/build/gdb/Debugger$Data.class plugins/GdbPlugin/trunk/build/gdb/Debugger$LocalsResultHandler.class plugins/GdbPlugin/trunk/build/gdb/Debugger$OutOfBandHandler.class plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceListener.class plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceNode.class plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceResultHandler.class plugins/GdbPlugin/trunk/build/gdb/Debugger$StoppedHandler.class plugins/GdbPlugin/trunk/build/gdb/Debugger.class plugins/GdbPlugin/trunk/build/gdb/Parser$GdbResult.class plugins/GdbPlugin/trunk/build/gdb/Parser$ResultHandler.class plugins/GdbPlugin/trunk/build/gdb/Parser.class plugins/GdbPlugin/trunk/build.xml plugins/GdbPlugin/trunk/debugger/ plugins/GdbPlugin/trunk/debugger/core/ plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.class plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.java plugins/GdbPlugin/trunk/debugger/itf/ plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.class plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.java plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.class plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.java plugins/GdbPlugin/trunk/debugger/itf/IData.class plugins/GdbPlugin/trunk/debugger/itf/IData.java plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.class plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.java plugins/GdbPlugin/trunk/debugger/jedit/ plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.class plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.java plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.class plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.java plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.class plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.java plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$1.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$2.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$3.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$4.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$5.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$6.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.class plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.java plugins/GdbPlugin/trunk/debugger/jedit/Plugin$1.class plugins/GdbPlugin/trunk/debugger/jedit/Plugin$Breakpoint.class plugins/GdbPlugin/trunk/debugger/jedit/Plugin.class plugins/GdbPlugin/trunk/debugger/jedit/Plugin.java plugins/GdbPlugin/trunk/debugger/jedit/launch/ plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.class plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.java plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfigurationManager.class plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfigurationManager.java plugins/GdbPlugin/trunk/dockables.xml plugins/GdbPlugin/trunk/gdb/ plugins/GdbPlugin/trunk/gdb/CommandManager$Command$1.class plugins/GdbPlugin/trunk/gdb/CommandManager$Command.class plugins/GdbPlugin/trunk/gdb/CommandManager.class plugins/GdbPlugin/trunk/gdb/CommandManager.java plugins/GdbPlugin/trunk/gdb/Debugger$Breakpoint.class plugins/GdbPlugin/trunk/gdb/Debugger$BreakpointHitHandler.class plugins/GdbPlugin/trunk/gdb/Debugger$Data.class plugins/GdbPlugin/trunk/gdb/Debugger$LocalsResultHandler.class plugins/GdbPlugin/trunk/gdb/Debugger$OutOfBandHandler.class plugins/GdbPlugin/trunk/gdb/Debugger$StackTraceListener.class plugins/GdbPlugin/trunk/gdb/Debugger$StackTraceNode.class plugins/GdbPlugin/trunk/gdb/Debugger$StackTraceResultHandler.class plugins/GdbPlugin/trunk/gdb/Debugger$StoppedHandler.class plugins/GdbPlugin/trunk/gdb/Debugger.class plugins/GdbPlugin/trunk/gdb/Debugger.java plugins/GdbPlugin/trunk/gdb/Parser$GdbResult.class plugins/GdbPlugin/trunk/gdb/Parser$ResultHandler.class plugins/GdbPlugin/trunk/gdb/Parser.class plugins/GdbPlugin/trunk/gdb/Parser.java plugins/GdbPlugin/trunk/icons/ plugins/GdbPlugin/trunk/icons/breakpoint.png plugins/GdbPlugin/trunk/icons/brkip.png plugins/GdbPlugin/trunk/icons/ip.png Added: plugins/GdbPlugin/trunk/.classpath =================================================================== --- plugins/GdbPlugin/trunk/.classpath (rev 0) +++ plugins/GdbPlugin/trunk/.classpath 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path=""/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="lib" path="/home/shlomy/jedit/4.3pre9/jedit.jar"/> + <classpathentry kind="output" path=""/> +</classpath> Added: plugins/GdbPlugin/trunk/.project =================================================================== --- plugins/GdbPlugin/trunk/.project (rev 0) +++ plugins/GdbPlugin/trunk/.project 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>Debugger</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Added: plugins/GdbPlugin/trunk/Debugger.props =================================================================== --- plugins/GdbPlugin/trunk/Debugger.props (rev 0) +++ plugins/GdbPlugin/trunk/Debugger.props 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,47 @@ +plugin.debugger.jedit.Plugin.activate=defer + +# general plugin information +plugin.debugger.jedit.Plugin.name=Debugger +plugin.debugger.jedit.Plugin.author=Shlomy Reinstein +plugin.debugger.jedit.Plugin.version=0.1 +plugin.debugger.jedit.Plugin.description=\ + This plugin provides a jEdit interface for debuggers + +# action labels +debugger-go.label=Go! +debugger-next.label=Next +debugger-step.label=Step +debugger-toggle-breakpoint.label=Toggle breakpoint +debugger-set-breakpoint.label=Set breakpoint +debugger-remove-breakpoint.label=Remove breakpoint + +# menu items +plugin.debugger.jedit.Plugin.menu=debugger-go \ + debugger-next \ + debugger-step \ + separator \ + debugger-toggle-breakpoint \ + debugger-set-breakpoint \ + debugger-remove-breakpoint + +# dockables +debugger-program-output.title=Program Output +debugger-program-output.label=Program Output +debugger-gdb-output.title=Gdb CLI Output +debugger-gdb-output.label=Gdb CLI Output +debugger-show-locals.title=Local Variables +debugger-show-locals.label=Local Variables +debugger-show-stack-trace.title=Stack Trace +debugger-show-stack-trace.label=Stack Trace + +# Options +plugin.debugger.jedit.Plugin.option-pane=Debugger +options.Debugger.code=new debugger.jedit.OptionPane(); +options.Debugger.label=Debugger +options.debugger.configurations_label=Configurations: +options.debugger.configuration_label=Name: +options.debugger.program_label=Program: +options.debugger.arguments_label=Arguments: +options.debugger.directory_label=Working directory: +options.debugger.environment_label=Environment: + Added: plugins/GdbPlugin/trunk/actions.xml =================================================================== --- plugins/GdbPlugin/trunk/actions.xml (rev 0) +++ plugins/GdbPlugin/trunk/actions.xml 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,43 @@ +<!DOCTYPE ACTIONS SYSTEM "actions.dtd"> +<!-- $Id: actions.xml 7606 2004-11-07 15:52:36Z orutherfurd $ --> + +<ACTIONS> + + <ACTION NAME="debugger-quit" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.quit(view); + </CODE> + </ACTION> + <ACTION NAME="debugger-go" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.go(view); + </CODE> + </ACTION> + <ACTION NAME="debugger-next" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.next(view); + </CODE> + </ACTION> + <ACTION NAME="debugger-step" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.step(view); + </CODE> + </ACTION> + <ACTION NAME="debugger-toggle-breakpoint" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.toggleBreakpoint(view); + </CODE> + </ACTION> + <ACTION NAME="debugger-set-breakpoint" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.setBreakpoint(view); + </CODE> + </ACTION> + <ACTION NAME="debugger-remove-breakpoint" NO_REPEAT="TRUE"> + <CODE> + debugger.jedit.Plugin.removeBreakpoint(view); + </CODE> + </ACTION> + +</ACTIONS> + Added: plugins/GdbPlugin/trunk/build/debugger/core/DebuggerDB.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/core/DebuggerDB.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/itf/DebuggerTool.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/itf/DebuggerTool.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/itf/IBreakpoint.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/itf/IBreakpoint.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/itf/IData.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/itf/IData.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/itf/JEditFrontEnd.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/itf/JEditFrontEnd.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/BreakpointPainter.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/BreakpointPainter.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/CurrentPositionPainter.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/CurrentPositionPainter.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/DebuggerPainter.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/DebuggerPainter.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$1.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$2.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$2.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$3.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$3.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$4.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$4.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$5.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$5.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$6.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane$6.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/OptionPane.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$1.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$2.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$2.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$Breakpoint.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin$Breakpoint.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/Plugin.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/launch/LaunchConfiguration.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/launch/LaunchConfiguration.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/debugger/jedit/launch/LaunchConfigurationManager.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/debugger/jedit/launch/LaunchConfigurationManager.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/CallbackManager$HandleResult.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/CallbackManager$HandleResult.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/CallbackManager.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/CallbackManager.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/CommandManager$Command$1.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/CommandManager$Command$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/CommandManager$Command.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/CommandManager$Command.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/CommandManager.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/CommandManager.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$1.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$Breakpoint.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$Breakpoint.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$BreakpointHitHandler.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$BreakpointHitHandler.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$Data.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$Data.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$LocalsResultHandler.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$LocalsResultHandler.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$OutOfBandHandler.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$OutOfBandHandler.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceListener.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceListener.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceNode.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceNode.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceResultHandler.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$StackTraceResultHandler.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger$StoppedHandler.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger$StoppedHandler.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Debugger.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Debugger.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Parser$GdbResult.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Parser$GdbResult.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Parser$ResultHandler.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Parser$ResultHandler.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build/gdb/Parser.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/build/gdb/Parser.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/build.xml =================================================================== --- plugins/GdbPlugin/trunk/build.xml (rev 0) +++ plugins/GdbPlugin/trunk/build.xml 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,83 @@ +<?xml version="1.0"?> + +<!-- + + This is the build.xml file for building the Tags plugin. + + It is based on the standard build.xml file for jEdit plugins. + +--> + +<project name="Debugger" default="dist" basedir="."> + + <property file="build.properties"/> + <property file="../build.properties"/> + <property file="${user.home}/.build.properties"/> + <property file="${user.home}/build.properties"/> + + <property name="jar.name" value="${ant.project.name}.jar"/> + <property name="docs-proc.target" value="xsltproc"/> + + <property name="jedit.install.dir" value="/home/shlomy/jedit/4.3pre9"/> + <property name="src.dir" value="."/> + <property name="install.dir" value=".."/> + <property name="build.dir" value="build"/> + + <path id="project.class.path"> + <pathelement location="${jedit.install.dir}/jedit.jar"/> + <pathelement location="${src.dir}"/> + </path> + + <target name="prepare" > + <mkdir dir="${build.dir}" /> + </target> + + <target name="compile" depends="prepare"> + <javac + srcdir="${src.dir}" + destdir="${build.dir}" + deprecation="on" + debug="yes" + includeJavaRuntime="yes" + > + <classpath refid="project.class.path"/> + </javac> + </target> + + <target name="dist" depends="compile"> + <mkdir dir="${install.dir}"/> + + <jar jarfile="${install.dir}/${jar.name}"> + <fileset dir="${build.dir}"/> + <fileset dir="${src.dir}"> + <include name="actions.xml"/> + <include name="dockables.xml"/> + <include name="**/*.props"/> + <include name="**/*.html"/> + <include name="**/*.txt"/> + <include name="**/*.png"/> + </fileset> + </jar> + </target> + + <target name="clean"> + <delete dir="${build.dir}"/> + <delete> + <fileset dir="." includes="**/*~"/> + </delete> + <delete file="doc/index.html"/> + <delete file="doc/docbook-wrapper.xsl"/> + </target> + + <target name="tags"> + <exec executable="ctags"> + <arg value="-f" /> + <arg path="tags_" /> + <arg value="-R" /> + <arg path="." /> + </exec> + </target> + +</project> + +<!-- :indentSize=4:lineSeparator=\n:noTabs=false:tabSize=4: --> Added: plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/core/DebuggerDB.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,58 @@ +package debugger.core; + +import java.util.HashSet; +import java.util.Vector; + +import debugger.itf.IBreakpoint; + +public class DebuggerDB { + static private DebuggerDB instance = null; + Vector<IBreakpoint> breakpoints = new Vector<IBreakpoint>(); + String currentFile = ""; + int currentLine = 0; + + private DebuggerDB() { + } + static public DebuggerDB getInstance() { + if (instance == null) + instance = new DebuggerDB(); + return instance; + } + public Vector<IBreakpoint> getBreakpoints() { + return breakpoints; + } + public HashSet<Integer> getBreakpointLines(String file) { + HashSet<Integer> lines = new HashSet<Integer>(); + for (int i = 0; i < breakpoints.size(); i++) { + IBreakpoint b = breakpoints.get(i); + if (b.getFile().equals(file)) + lines.add(b.getLine()); + } + return lines; + } + public void addBreakpoint(IBreakpoint b) { + breakpoints.add(b); + } + public void removeBreakpoint(IBreakpoint b) { + breakpoints.remove(b); + } + public Vector<IBreakpoint> getBreakpoints(String file, int line) { + Vector<IBreakpoint> brkpts = new Vector<IBreakpoint>(); + for (int i = 0; i < breakpoints.size(); i++) { + IBreakpoint b = breakpoints.get(i); + if (b.getFile().equals(file) && b.getLine() == line) + brkpts.add(b); + } + return brkpts; + } + public void setCurrentLocation(String file, int line) { + currentFile = file; + currentLine = line; + } + public String getCurrentFile() { + return currentFile; + } + public int getCurrentLine() { + return currentLine; + } +} Added: plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/itf/DebuggerTool.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,18 @@ +package debugger.itf; + +import java.util.Hashtable; + +public interface DebuggerTool { + void setFrontEnd(JEditFrontEnd frontEnd); + void start(String prog, String args, String cwd, Hashtable env); + void go(); + void next(); + void step(); + void pause(); + void quit(); + boolean isRunning(); + // Note: line counting begins at 0 + IBreakpoint addBreakpoint(String file, int line); + void removeBreakpoint(IBreakpoint brkpt); + IData getData(String name); +} Added: plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/itf/IBreakpoint.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,7 @@ +package debugger.itf; + + +public interface IBreakpoint { + String getFile(); + int getLine(); +} Added: plugins/GdbPlugin/trunk/debugger/itf/IData.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/itf/IData.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/itf/IData.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/itf/IData.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/itf/IData.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,9 @@ +package debugger.itf; + +import java.util.Vector; + +public interface IData { + String getName(); + String getValue(); + Vector<IData> getChildren(); +} Added: plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/itf/JEditFrontEnd.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,7 @@ +package debugger.itf; + +public interface JEditFrontEnd { + void breakpointHit(int bkptno, String file, int line); + void goTo(String file, int line); + void setCurrentLocation(String file, int line); +} Added: plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/jedit/BreakpointPainter.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,21 @@ +package debugger.jedit; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Point; + +import org.gjt.sp.jedit.Buffer; +import org.gjt.sp.jedit.EditPane; + +public class BreakpointPainter extends DebuggerPainter { + + BreakpointPainter(EditPane e, Buffer b, int l) { + super(e, b, l); + } + + @Override + protected void paintLine(Graphics2D gfx, int screenLine, int physicalLine, int start, int end, int y, Point p) { + gfx.setColor(Color.blue); + gfx.fillOval(p.x, p.y, 10, 10); + } +} Added: plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/jedit/CurrentPositionPainter.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,27 @@ +package debugger.jedit; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Point; + +import org.gjt.sp.jedit.Buffer; +import org.gjt.sp.jedit.EditPane; + +public class CurrentPositionPainter extends DebuggerPainter { + + CurrentPositionPainter(EditPane e, Buffer b, int l) { + super(e, b, l); + } + + @Override + protected void paintLine(Graphics2D gfx, int screenLine, int physicalLine, int start, int end, int y, Point p) { + gfx.setColor(Color.MAGENTA); + gfx.drawLine(p.x, p.y + 5, p.x + 10, p.y + 5); + gfx.drawLine(p.x, p.y + 6, p.x + 10, p.y + 6); + gfx.drawLine(p.x + 7, p.y + 2, p.x + 10, p.y + 5); + gfx.drawLine(p.x + 6, p.y + 2, p.x + 9, p.y + 5); + gfx.drawLine(p.x + 7, p.y + 9, p.x + 10, p.y + 6); + gfx.drawLine(p.x + 6, p.y + 9, p.x + 9, p.y + 6); + } + +} Added: plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/jedit/DebuggerPainter.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,44 @@ +package debugger.jedit; + +import java.awt.Graphics2D; +import java.awt.Point; + +import org.gjt.sp.jedit.Buffer; +import org.gjt.sp.jedit.EditPane; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.TextAreaExtension; + +public abstract class DebuggerPainter extends TextAreaExtension { + private EditPane editPane; + private Buffer buffer; + private int line; + + DebuggerPainter(EditPane e, Buffer b, int l) { + editPane = e; + buffer = b; + line = l; + } + public EditPane getEditPane() { + return editPane; + } + public Buffer getBuffer() { + return buffer; + } + public int getLine() { + return line; + } + @Override + public void paintValidLine(Graphics2D gfx, int screenLine, + int physicalLine, int start, int end, int y) { + super.paintValidLine(gfx, screenLine, physicalLine, start, end, y); + if (buffer == editPane.getBuffer() && line == physicalLine + 1) { + JEditTextArea textArea = editPane.getTextArea(); + Point p = textArea.offsetToXY(textArea.getLineStartOffset(physicalLine)); + paintLine(gfx, screenLine, physicalLine, start, end, y, p); + } + } + + protected abstract void paintLine(Graphics2D gfx, int screenLine, + int physicalLine, int start, int end, int y, Point p); + +} Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$1.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$2.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$2.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$3.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$3.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$4.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$4.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$5.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$5.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$6.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane$6.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/jedit/OptionPane.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,228 @@ +/* +Copyright (C) 2006 Shlomy Reinstein + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Note: The code for the ctags path and the ctags version notice +was taken from the CodeBrowser plugin by Gerd Knops. +*/ + +package debugger.jedit; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.Vector; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextField; +import javax.swing.border.EmptyBorder; + +import org.gjt.sp.jedit.AbstractOptionPane; +import org.gjt.sp.jedit.jEdit; + +import debugger.jedit.launch.LaunchConfiguration; +import debugger.jedit.launch.LaunchConfigurationManager; + +/** ************************************************************************** */ +public class OptionPane extends AbstractOptionPane { + /** + * + */ + private static final long serialVersionUID = 1L; + + /*************************************************************************** + * Vars + **************************************************************************/ + + private LaunchConfigurationManager configs; + + private JList configurationsList; + private DefaultListModel configurationsModel; + private JTextField configurationTF; + private JTextField programTF; + private JTextField argumentsTF; + private JTextField directoryTF; + private JTextField environmentTF; + + static final String PREFIX = Plugin.OPTION_PREFIX; + + static final String CONFIGURATIONS_LABEL = PREFIX + "configurations_label"; + static final String CONFIGURATION_LABEL = PREFIX + "configuration_label"; + static final String PROGRAM_LABEL = PREFIX + "program_label"; + static final String ARGUMENTS_LABEL = PREFIX + "arguments_label"; + static final String DIRECTORY_LABEL = PREFIX + "directory_label"; + static final String ENVIRONMENT_LABEL = PREFIX + "environment_label"; + + private LaunchConfiguration currentConfig = null; + + /*************************************************************************** + * Factory methods + **************************************************************************/ + public OptionPane() + { + super("Debugger"); + configs = LaunchConfigurationManager.getInstance(); + setBorder(new EmptyBorder(5, 5, 5, 5)); + + configurationsModel = new DefaultListModel(); + configurationsList = new JList(configurationsModel); + configurationsList.addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + updateTextFields(); + } + }); + configurationsList.setCellRenderer(new DefaultListCellRenderer() { + public Component getListCellRendererComponent(JList list, + Object value, int index, boolean isSelected, boolean cellHasFocus) { + JLabel label = (JLabel) super.getListCellRendererComponent(list, + value, index, isSelected, cellHasFocus); + String configuration = configs.getName(index); + String append = (index == configs.getDefaultIndex()) ? + " *" : ""; + label.setText(configuration + append); + return label; + } + }); + addComponent(jEdit.getProperty(CONFIGURATIONS_LABEL), + new JScrollPane(configurationsList)); + + JPanel buttons = new JPanel(); + JButton add = new JButton("New"); + add.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + createNewConfiguration(); + } + }); + buttons.add(add); + JButton delete = new JButton("Delete"); + delete.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + deleteSelectedConfiguration(); + } + }); + buttons.add(delete); + JButton makeDefault = new JButton("Make default"); + makeDefault.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + makeSelectedConfigurationDefault(); + } + }); + buttons.add(makeDefault); + addComponent(buttons); + + addSeparator(); + configurationTF = new JTextField(40); + addComponent(jEdit.getProperty(CONFIGURATION_LABEL), configurationTF); + programTF = new JTextField(40); + addComponent(jEdit.getProperty(PROGRAM_LABEL), programTF); + argumentsTF = new JTextField(40); + addComponent(jEdit.getProperty(ARGUMENTS_LABEL), argumentsTF); + directoryTF = new JTextField(40); + addComponent(jEdit.getProperty(DIRECTORY_LABEL), directoryTF); + environmentTF = new JTextField(40); + addComponent(jEdit.getProperty(ENVIRONMENT_LABEL), environmentTF); + + JButton update = new JButton("Update"); + update.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + updateSelectedConfiguration(); + } + }); + addComponent(update); + + // Finally, initialize the list of configurations + for (int i = 0; i < configs.size(); i++) + configurationsModel.addElement(configs.getName(i)); + } + + private void makeSelectedConfigurationDefault() + { + int prevDefault = configs.getDefaultIndex(); + int defaultIndex = configurationsList.getSelectedIndex(); + configs.setDefaultIndex(defaultIndex); + // These are required for updating the display + configurationsModel.set(prevDefault, configs.getName(prevDefault)); + configurationsModel.set(defaultIndex, configs.getName(defaultIndex)); + } + private void deleteSelectedConfiguration() + { + int index = configurationsList.getSelectedIndex(); + configs.remove(index); + Vector<String> configNames = configs.getNames(); + configurationsList.setListData(configNames); + if (! configNames.isEmpty()) { + if (index == configNames.size()) + index--; + configurationsList.setSelectedIndex(index); + } + updateTextFields(); + } + private void createNewConfiguration() + { + configs.add(new LaunchConfiguration("Unnamed", "", "", "", "")); + configurationsList.setListData(configs.getNames()); + configurationsList.setSelectedIndex(configs.size() - 1); + updateTextFields(); + } + private void updateTextFields() + // Update the text fields to the selected configuration + { + int index = configurationsList.getSelectedIndex(); + if (index > -1) { + currentConfig = configs.getByIndex(index); + configurationTF.setText(currentConfig.getName()); + programTF.setText(currentConfig.getProgram()); + argumentsTF.setText(currentConfig.getArguments()); + directoryTF.setText(currentConfig.getDirectory()); + environmentTF.setText(currentConfig.getEnvironment()); + } else { + currentConfig = null; + configurationTF.setText(""); + programTF.setText(""); + argumentsTF.setText(""); + directoryTF.setText(""); + environmentTF.setText(""); + } + } + private void updateSelectedConfiguration() + { + int index = configurationsList.getSelectedIndex(); + String name = configurationTF.getText(); + currentConfig.setName(name); + currentConfig.setProgram(programTF.getText()); + currentConfig.setArguments(argumentsTF.getText()); + currentConfig.setDirectory(directoryTF.getText()); + currentConfig.setEnvironment(environmentTF.getText()); + configurationsModel.set(index, name); + } + + /*************************************************************************** + * Implementation + **************************************************************************/ + public void save() + { + configs.save(); + } +} +/** ***********************************************************************EOF */ + Added: plugins/GdbPlugin/trunk/debugger/jedit/Plugin$1.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/Plugin$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/Plugin$Breakpoint.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/Plugin$Breakpoint.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/Plugin.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/Plugin.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/Plugin.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/jedit/Plugin.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/jedit/Plugin.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,202 @@ +/* +Copyright (C) 2007 Shlomy Reinstein + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +package debugger.jedit; + +import java.util.Hashtable; +import java.util.Vector; + +import javax.swing.JOptionPane; + +import gdb.Debugger; + +import org.gjt.sp.jedit.Buffer; +import org.gjt.sp.jedit.EditPlugin; +import org.gjt.sp.jedit.View; +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.io.VFSManager; +import org.gjt.sp.jedit.textarea.Gutter; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.TextAreaExtension; + +import debugger.core.DebuggerDB; +import debugger.itf.DebuggerTool; +import debugger.itf.IBreakpoint; +import debugger.itf.JEditFrontEnd; +import debugger.jedit.launch.LaunchConfiguration; +import debugger.jedit.launch.LaunchConfigurationManager; + +public class Plugin extends EditPlugin implements JEditFrontEnd { + public static String OPTION_PREFIX = "options.debugger."; + static private DebuggerTool debugger = Debugger.getInstance(); + static private Hashtable env = null; + static private LaunchConfiguration currentConfig; + + public void start() { + debugger.setFrontEnd(this); + } + + public void stop() { + // Remove all debugger painters + JEditTextArea ta = jEdit.getActiveView().getTextArea(); + Gutter gutter = ta.getGutter(); + TextAreaExtension [] ext = gutter.getExtensions(); + int i; + Vector<TextAreaExtension> painters = new Vector<TextAreaExtension>(); + for (i = 0; i < ext.length; i++) + if (ext[i] instanceof BreakpointPainter) + painters.add(ext[i]); + for (i = 0; i < painters.size(); i++) + gutter.removeExtension(painters.get(i)); + } + + public static void next(View view) { + if (debugger.isRunning()) + debugger.next(); + } + public static void step(View view) { + if (debugger.isRunning()) + debugger.step(); + } + public static void go(View view) { + if (! debugger.isRunning()) { + currentConfig = + LaunchConfigurationManager.getInstance().getDefault(); + debugger.start(currentConfig.getProgram(), + currentConfig.getArguments(), + currentConfig.getDirectory(), + currentConfig.getEnvironmentHash()); + } else + debugger.go(); + } + + static private class Breakpoint implements IBreakpoint { + IBreakpoint b; + BreakpointPainter p; + View v; + Buffer buf; + Breakpoint(IBreakpoint brkpt, Buffer buf) { + b = brkpt; + this.buf = buf; + } + public String getFile() { + return b.getFile(); + } + public int getLine() { + // TODO Auto-generated method stub + return b.getLine(); + } + public Buffer getBuffer() { + return buf; + } + public void addPainter(View view) { + v = view; + p = new BreakpointPainter(view.getEditPane(), buf, b.getLine()); + view.getTextArea().getGutter().addExtension(p); + } + public void removePainter() { + v.getTextArea().getGutter().removeExtension(p); + } + } + public static void toggleBreakpoint(View view) + { + Buffer buffer = view.getBuffer(); + JEditTextArea ta = view.getTextArea(); + int line = ta.getCaretLine() + 1; + Vector<IBreakpoint> breakpoints = DebuggerDB.getInstance().getBreakpoints(buffer.getPath(), line); + if (breakpoints.isEmpty()) + setBreakpoint(view); + else + removeBreakpoint(view); + } + public static void setBreakpoint(View view) { + Buffer buffer = view.getBuffer(); + JEditTextArea ta = view.getTextArea(); + int line = ta.getCaretLine() + 1; + IBreakpoint b = debugger.addBreakpoint(buffer.getPath(), line); + if (b != null) { + Breakpoint bp = new Breakpoint(b, buffer); + DebuggerDB.getInstance().addBreakpoint(bp); + bp.addPainter(view); + } + } + public static void removeBreakpoint(View view) { + Buffer buffer = view.getBuffer(); + JEditTextArea ta = view.getTextArea(); + int line = ta.getCaretLine() + 1; + Vector<IBreakpoint> breakpoints = DebuggerDB.getInstance().getBreakpoints(buffer.getPath(), line); + if (breakpoints.isEmpty()) + return; + for (int i = 0; i < breakpoints.size(); i++) { + IBreakpoint b = breakpoints.get(i); + Breakpoint bp = (Breakpoint)b; + debugger.removeBreakpoint(bp); + DebuggerDB.getInstance().removeBreakpoint(bp); + bp.removePainter(); + } + } + static CurrentPositionPainter dp = null; + static View dpview = null; + private static void jumpTo(final String file, final int line, final boolean isCurrent) { + View view = jEdit.getActiveView(); + if (isCurrent && (dp != null)) { + dpview.getTextArea().getGutter().removeExtension(dp); + } + final Buffer buffer = jEdit.openFile(view, file); + if(buffer == null) + { + view.getStatus().setMessage("Unable to open: " + file); + return; + } + + final View v = view; // for VFSManager inner class + final int defLine = line - 1; + VFSManager.runInAWTThread(new Runnable() + { + public void run() + { + v.getTextArea().setCaretPosition( + v.getTextArea().getLineStartOffset(defLine)); + if (isCurrent) { + dp = new CurrentPositionPainter(v.getEditPane(), buffer, line); + dpview = v; + v.getTextArea().getGutter().addExtension(dp); + } + } + }); + } + public void goTo(String file, int line) { + goTo(file, line, false); + } + public void goTo(String file, int line, boolean isCurrent) { + if (file != null) + jumpTo(file, line, isCurrent); + } + public void setCurrentLocation(String file, int line) { + DebuggerDB.getInstance().setCurrentLocation(file, line); + goTo(file, line, true); + } + public void breakpointHit(int bkptno, String file, int line) { + String msg = "Breakpoint " + bkptno + " hit"; + if (file != null) + msg = msg + ", at " + file + ":" + line + "."; + System.err.println(msg); + JOptionPane.showMessageDialog(null, msg); + setCurrentLocation(file, line); + } +} Added: plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.java =================================================================== --- plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.java (rev 0) +++ plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfiguration.java 2007-03-01 23:32:32 UTC (rev 9057) @@ -0,0 +1,56 @@ +package debugger.jedit.launch; + +import java.util.Hashtable; + +public class LaunchConfiguration { + private String name; + private String program; + private String arguments; + private String directory; + private String environment; + public LaunchConfiguration(String name, String program, String arguments, + String directory, String environmnent) { + set(name, program, arguments, directory, environment); + } + public String getName() { + return name; + } + public String getProgram() { + return program; + } + public String getArguments() { + return arguments; + } + public String getDirectory() { + return directory; + } + public String getEnvironment() { + return environment; + } + public void set(String name, String program, String arguments, + String directory, String environment) { + setName(name); + setProgram(program); + setArguments(arguments); + setDirectory(directory); + setEnvironment(environment); + } + public void setName(String configName) { + name = configName; + } + public void setProgram(String prog) { + program = prog; + } + public void setArguments(String args) { + arguments = args; + } + public void setDirectory(String dir) { + directory = dir; + } + public void setEnvironment(String env) { + environment = env; + } + public Hashtable getEnvironmentHash() { + return null; + } +} Added: plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfigurationManager.class =================================================================== (Binary files differ) Property changes on: plugins/GdbPlugin/trunk/debugger/jedit/launch/LaunchConfigurationManager.class ___________________________________________________________... [truncated message content] |