Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Create an address breakpoint if the source locator can not find the file specified by gdb

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v
retrieving revision 1.114
diff -u -r1.114 ChangeLog
--- ChangeLog 29 Jan 2003 22:19:59 -0000 1.114
+++ ChangeLog 30 Jan 2003 15:58:20 -0000
@@ -1,3 +1,7 @@
+2003-01-30 Mikhail Khodjaiants
+ Create an address breakpoint if the source locator can not find the file specified by gdb.
+ * CDebugTarget.java
+
 2003-01-29 Mikhail Khodjaiants
  Managing breakpoints from the gdb console (fixes).
  * CDebugModel.java
Index: CDebugTarget.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java,v
retrieving revision 1.77
diff -u -r1.77 CDebugTarget.java
--- CDebugTarget.java 29 Jan 2003 22:19:59 -0000 1.77
+++ CDebugTarget.java 30 Jan 2003 15:58:39 -0000
@@ -1510,27 +1510,17 @@
      Object sourceElement = ((ICSourceLocator)((IAdaptable)getSourceLocator()).getAdapter( ICSourceLocator.class )).findSourceElement( cdiBreakpoint.getLocation().getFile() );
      if ( sourceElement != null && sourceElement instanceof IFile )
      {
-      ICLineBreakpoint breakpoint = CDebugModel.createLineBreakpoint( (IFile)sourceElement,
-                      cdiBreakpoint.getLocation().getLineNumber(),
-                      cdiBreakpoint.isEnabled(),
-                      cdiBreakpoint.getCondition().getIgnoreCount(),
-                      cdiBreakpoint.getCondition().getExpression(),
-                      false );
-      getBreakpoints().put( breakpoint, cdiBreakpoint );
-      ((CBreakpoint)breakpoint).register( true );
+      createLineBreakpoint( (IFile)sourceElement, cdiBreakpoint );
+     }
+     else if ( cdiBreakpoint.getLocation().getAddress() > 0 )
+     {
+      createAddressBreakpoint( cdiBreakpoint );
      }
     }
    }
    else if ( cdiBreakpoint.getLocation().getAddress() > 0 )
    {
-    ICAddressBreakpoint breakpoint = CDebugModel.createAddressBreakpoint( getExecFile(),
-                       cdiBreakpoint.getLocation().getAddress(),
-                       cdiBreakpoint.isEnabled(),
-                       cdiBreakpoint.getCondition().getIgnoreCount(),
-                       cdiBreakpoint.getCondition().getExpression(),
-                       false );
-    getBreakpoints().put( breakpoint, cdiBreakpoint );
-    ((CBreakpoint)breakpoint).register( true );
+    createAddressBreakpoint( cdiBreakpoint );
    }
   }
   catch( CDIException e )
@@ -1539,6 +1529,30 @@
   catch( CoreException e )
   {
   }
+ }
+
+ private void createLineBreakpoint( IFile file, ICDILocationBreakpoint cdiBreakpoint ) throws CDIException, CoreException
+ {
+  ICLineBreakpoint breakpoint = CDebugModel.createLineBreakpoint( file,
+                  cdiBreakpoint.getLocation().getLineNumber(),
+                  cdiBreakpoint.isEnabled(),
+                  cdiBreakpoint.getCondition().getIgnoreCount(),
+                  cdiBreakpoint.getCondition().getExpression(),
+                  false );
+  getBreakpoints().put( breakpoint, cdiBreakpoint );
+  ((CBreakpoint)breakpoint).register( true );
+ }
+
+ private void createAddressBreakpoint( ICDILocationBreakpoint cdiBreakpoint ) throws CDIException, CoreException
+ {
+  ICAddressBreakpoint breakpoint = CDebugModel.createAddressBreakpoint( getExecFile(),
+                     cdiBreakpoint.getLocation().getAddress(),
+                     cdiBreakpoint.isEnabled(),
+                     cdiBreakpoint.getCondition().getIgnoreCount(),
+                     cdiBreakpoint.getCondition().getExpression(),
+                     false );
+  getBreakpoints().put( breakpoint, cdiBreakpoint );
+  ((CBreakpoint)breakpoint).register( true );
  }
 
  private void handleWatchpointCreatedEvent( final ICDIWatchpoint watchpoint )

Back to the top