Author: rmottola
Date: Thu Sep 29 10:58:57 2016
New Revision: 40114

URL: http://svn.gna.org/viewcvs/gnustep?rev=40114&view=rev
Log:
Add skeleton to handle breakpoints, add breakpoint types

Modified:
    apps/projectcenter/trunk/ChangeLog
    apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.h
    apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.m
    
apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebuggerViewDelegateProtocol.h
    apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PipeDelegate.m

Modified: apps/projectcenter/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/ChangeLog?rev=40114&r1=40113&r2=40114&view=diff
==============================================================================
--- apps/projectcenter/trunk/ChangeLog  (original)
+++ apps/projectcenter/trunk/ChangeLog  Thu Sep 29 10:58:57 2016
@@ -1,3 +1,11 @@
+2016-09-29 Riccardo Mottola <r...@gnu.org>
+
+       * Modules/Debuggers/ProjectCenter/PCDebugger.h
+       * Modules/Debuggers/ProjectCenter/PCDebugger.m
+       * Modules/Debuggers/ProjectCenter/PCDebuggerViewDelegateProtocol.h
+       * Modules/Debuggers/ProjectCenter/PipeDelegate.m
+       Add skeleton to handle breakpoints, add breakpoint types.
+
 2016-06-06 11:47-EDT Gregory John Casamento <greg.casame...@gmail.com>
 
        * Modules/Debuggers/ProjectCenter/PCDebuggerView.m: Add code to

Modified: apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.h
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.h?rev=40114&r1=40113&r2=40114&view=diff
==============================================================================
--- apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.h       
(original)
+++ apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.h       
Thu Sep 29 10:58:57 2016
@@ -27,6 +27,14 @@
 
 #import <Protocols/CodeDebugger.h>
 
+extern const NSString *PCBreakTypeKey;
+extern NSString *PCBreakTypeByLine;
+extern NSString *PCBreakTypeMethod;
+
+extern const NSString *PCBreakMethod;
+extern const NSString *PCBreakFilename;
+extern const NSString *PCBreakLineNumber;
+
 @interface PCDebugger : NSObject <CodeDebugger>
 {
   id             debuggerView;
@@ -36,6 +44,7 @@
   NSString       *debuggerPath;
   int            subProcessId;
   float          gdbVersion;
+  NSMutableArray *breakpoints;
 }
 
 - (void) setStatus: (NSString *) status;

Modified: apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.m
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.m?rev=40114&r1=40113&r2=40114&view=diff
==============================================================================
--- apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.m       
(original)
+++ apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebugger.m       
Thu Sep 29 10:58:57 2016
@@ -53,6 +53,13 @@
 static NSImage  *upImage = nil;
 static NSImage  *downImage = nil;
 
+const NSString *PCBreakTypeKey = @"BreakType";
+NSString *PCBreakTypeByLine = @"BreakTypeLine";
+NSString *PCBreakTypeMethod = @"BreakTypeMethod";
+const NSString *PCBreakMethod = @"BreakMethod";
+const NSString *PCBreakFilename = @"BreakFilename";
+const NSString *PCBreakLineNumber = @"BreakLineNumber";
+
 @implementation PCDebugger
 + (void) initialize
 {
@@ -131,6 +138,7 @@
 
   return font;
 }
+
 - (id) init
 {
   if((self = [super init]) != nil)
@@ -151,6 +159,8 @@
 
       subProcessId = 0;
       gdbVersion = 0.0;
+
+      breakpoints = nil;
     }
   return self;
 }
@@ -176,7 +186,29 @@
                inCurrentDirectory: [executablePath 
stringByDeletingLastPathComponent]
                 withArguments: [[NSArray alloc] initWithObjects: 
@"--interpreter=mi", @"-f", executablePath, nil]
                logStandardError: YES];
-}   
+  
+  // is this really the best place?
+  [self initBreakpoints];
+}
+
+- (void) initBreakpoints
+{
+  id <PCDebuggerViewDelegateProtocol> viewDelegate;
+
+  breakpoints = [[NSMutableArray alloc] init];
+  NSDictionary *dP;
+  NSLog(@"initing breakpoints");
+
+  /* CRUDE EXAMPLES * TODO FIXME *
+  dP = [NSDictionary dictionaryWithObjectsAndKeys: PCBreakTypeMethod, 
PCBreakTypeKey, @"[NSException raise]", PCBreakMethod, nil];
+  //  [breakpoints addObject:dP];
+  dP = [NSDictionary dictionaryWithObjectsAndKeys: PCBreakTypeByLine, 
PCBreakTypeKey, @"AppController.m", PCBreakFilename, [NSNumber 
numberWithInt:100], PCBreakLineNumber, nil];
+  [breakpoints addObject:dP];
+  */ 
+
+  viewDelegate = [debuggerView delegate];
+  [viewDelegate setBreakpoints:breakpoints];
+}
 
 - (void) awakeFromNib
 {
@@ -345,7 +377,7 @@
 
 - (void) dealloc
 {
-  [debuggerWindow close];
+  [breakpoints release];
   [super dealloc];
 }
 @end

Modified: 
apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebuggerViewDelegateProtocol.h
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebuggerViewDelegateProtocol.h?rev=40114&r1=40113&r2=40114&view=diff
==============================================================================
--- 
apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebuggerViewDelegateProtocol.h
   (original)
+++ 
apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PCDebuggerViewDelegateProtocol.h
   Thu Sep 29 10:58:57 2016
@@ -49,6 +49,8 @@
           newLine:(BOOL)newLine
         withColor:(NSColor *)color;
 
+- (void) setBreakpoints:(NSArray *)breakpoints;
+
 - (void) terminate;
 
 - (void) interrupt;

Modified: 
apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PipeDelegate.m
URL: 
http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PipeDelegate.m?rev=40114&r1=40113&r2=40114&view=diff
==============================================================================
--- apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PipeDelegate.m     
(original)
+++ apps/projectcenter/trunk/Modules/Debuggers/ProjectCenter/PipeDelegate.m     
Thu Sep 29 10:58:57 2016
@@ -641,4 +641,51 @@
     else
       NSLog(@"characters: |%@|", chars);
 }
+
+- (void) setBreakpoints:(NSArray *)breakpoints
+{
+  NSDictionary *bp;
+  NSEnumerator *e;
+  
+  // TODO
+  e = [breakpoints objectEnumerator];
+  while ((bp = [e nextObject]))
+    {
+      NSString *bpType;
+      NSString *bpString;
+
+      bpType = [bp objectForKey:PCBreakTypeKey];
+      bpString = nil;
+      if ([bpType isEqualToString:PCBreakTypeByLine])
+        {
+          NSString *fileName;
+          NSNumber *lineNumber;
+
+          fileName = [bp objectForKey:PCBreakFilename];
+          lineNumber = [bp objectForKey:PCBreakLineNumber];
+         bpString = [NSString stringWithFormat:@"%@:%@", fileName, lineNumber];
+        }
+      else if ([bpType isEqualToString:PCBreakTypeMethod])
+        {
+          NSString *methodName;
+
+          methodName = [bp objectForKey:PCBreakMethod];
+         bpString = methodName;
+        }
+      else
+        {
+          NSLog(@"Unknown breakpoint type: %@", bpType);
+        }
+      if (bpString)
+       {
+         NSString *command;
+
+         /* TODO: split into a separate insert function */
+         command = [NSString stringWithFormat:@"-break-insert -f %@", 
bpString];
+         NSLog(@"gdb mi command is: %@", command);
+         [self putString: command];
+       }
+    }
+}
+
 @end


_______________________________________________
Gnustep-cvs mailing list
Gnustep-cvs@gna.org
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to