diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index 470ffa02bec..b627a52eb0b 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -1,4 +1,11 @@
-2003-01-10 Mikhail Khodjaiants
+2003-01-14 Mikhail Khodjaiants
+ Added the 'Add Address Breakpoint' action to the workbench 'Run' menu.
+ * AddAddressBreakpointActionDelegate.java
+ * plugin.properties
+ * plugin.xml
+ * icons/full/obj16/brkp_obj.gif
+
+2003-01-13 Mikhail Khodjaiants
Implementation of the 'Run To Line' action for disassembly.
* RunToLineActionDelegate.java
diff --git a/debug/org.eclipse.cdt.debug.ui/icons/full/obj16/brkp_obj.gif b/debug/org.eclipse.cdt.debug.ui/icons/full/obj16/brkp_obj.gif
new file mode 100644
index 00000000000..06d007905b2
Binary files /dev/null and b/debug/org.eclipse.cdt.debug.ui/icons/full/obj16/brkp_obj.gif differ
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index f7a72711b3e..fc9d8a8c41e 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -33,6 +33,7 @@ ManageBreakpointAction.label=Add/Remove C/C++ Brea&kpoint
BreakpointPropertiesAction.label=P&roperties...
ManageWatchpointAction.label=Add C/C++ &Watchpoint...
AddExpressionAction.label=Add C/C++ &Expression...
+AddAddressBreakpointAction.label=Add &Address Breakpoint...
RunToLineAction.label=Run To C/C++ &Line
ShowFullPathsAction.label=Show Full Paths
ShowFullPathsAction.tooltip=Show Full Paths
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index f2fa8828d1c..81650fb8488 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -146,7 +146,7 @@
+
+
+
+
+
+
+ value="activated"
+ id="org.eclipse.cdt.debug.ui">
@@ -827,6 +842,9 @@
+
+
0 ) ? null : "Address can not be 0.";
+ }
+ }
+
+ /**
+ * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractDebugActionDelegate#doAction(Object)
+ */
+ protected void doAction( Object element ) throws DebugException
+ {
+ InputDialog dialog = new InputDialog( getPage().getWorkbenchWindow().getShell(),
+ "Add Address Breakpoint",
+ "Enter address:",
+ null,
+ new AddressValidator() );
+ if ( dialog.open() == dialog.OK )
+ {
+ CDebugModel.createAddressBreakpoint( ((IExecFileInfo)getDebugTarget( element ).getAdapter( IExecFileInfo.class )).getExecFile(),
+ -1,
+ parseValue( dialog.getValue().trim() ),
+ true,
+ 0,
+ "",
+ true );
+ }
+ }
+
+ /**
+ * @see org.eclipse.cdt.debug.internal.ui.actions.AbstractDebugActionDelegate#isEnabledFor(Object)
+ */
+ protected boolean isEnabledFor( Object element )
+ {
+ if ( element != null && element instanceof IDebugElement )
+ {
+ IDebugTarget target = getDebugTarget( element );
+ return ( target != null && !target.isTerminated() && target.getAdapter( IExecFileInfo.class ) != null );
+ }
+ return false;
+ }
+
+ protected long parseValue( String text ) throws NumberFormatException
+ {
+ long value = 0;
+ if ( text.trim().startsWith( "0x" ) )
+ {
+ value = Integer.parseInt( text.substring( 2 ), 16 );
+ }
+ else
+ {
+ value = Integer.parseInt( text );
+ }
+ return value;
+ }
+
+ private IDebugTarget getDebugTarget( Object element )
+ {
+ if ( element != null && element instanceof IDebugElement )
+ {
+ return ((IDebugElement)element).getDebugTarget();
+ }
+ return null;
+ }
+}