diff --git a/ChangeLog b/ChangeLog index be3157a..a256330 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2016-11-17 09:18-EST Gregory John Casamento + + * Modules/Debuggers/ProjectCenter/PCDebugger.h + * Modules/Debuggers/ProjectCenter/PCDebugger.m + * Modules/Debuggers/ProjectCenter/PipeDelegate.h + * Modules/Debuggers/ProjectCenter/PipeDelegate.m: Added notification + to fix breakpoint loading. + 2016-09-29 Riccardo Mottola * Modules/Debuggers/ProjectCenter/PCDebugger.h diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.h b/Modules/Debuggers/ProjectCenter/PCDebugger.h index f693ccd..0cdbe1a 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.h +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.h @@ -34,6 +34,7 @@ extern NSString *PCBreakTypeMethod; extern const NSString *PCBreakMethod; extern const NSString *PCBreakFilename; extern const NSString *PCBreakLineNumber; +extern NSString *PCDBDebuggerStartedNotification; @interface PCDebugger : NSObject { diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.m b/Modules/Debuggers/ProjectCenter/PCDebugger.m index 683e7b5..b85b8d3 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.m +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.m @@ -59,6 +59,7 @@ NSString *PCBreakTypeMethod = @"BreakTypeMethod"; const NSString *PCBreakMethod = @"BreakMethod"; const NSString *PCBreakFilename = @"BreakFilename"; const NSString *PCBreakLineNumber = @"BreakLineNumber"; +NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; @implementation PCDebugger + (void) initialize @@ -161,6 +162,11 @@ const NSString *PCBreakLineNumber = @"BreakLineNumber"; gdbVersion = 0.0; breakpoints = nil; + + [[NSNotificationCenter defaultCenter] addObserver: self + selector: @selector(handleNotification:) + name: PCDBDebuggerStartedNotification + object: nil]; } return self; } @@ -187,8 +193,11 @@ const NSString *PCBreakLineNumber = @"BreakLineNumber"; withArguments: [[NSArray alloc] initWithObjects: @"--interpreter=mi", @"-f", executablePath, nil] logStandardError: YES]; - // is this really the best place? - [self initBreakpoints]; +} + +- (void) handleNotification: (NSNotification *)notification +{ + [self initBreakpoints]; } - (void) initBreakpoints diff --git a/Modules/Debuggers/ProjectCenter/PipeDelegate.h b/Modules/Debuggers/ProjectCenter/PipeDelegate.h index 48708ac..40e62e4 100644 --- a/Modules/Debuggers/ProjectCenter/PipeDelegate.h +++ b/Modules/Debuggers/ProjectCenter/PipeDelegate.h @@ -55,6 +55,8 @@ typedef enum PCDebuggerOutputType_enum { NSColor *messageColor; NSColor *errorColor; NSColor *promptColor; + + BOOL debuggerStarted; } - (void)logStdOut:(NSNotification *)aNotif; diff --git a/Modules/Debuggers/ProjectCenter/PipeDelegate.m b/Modules/Debuggers/ProjectCenter/PipeDelegate.m index 23dd17f..0ea1000 100644 --- a/Modules/Debuggers/ProjectCenter/PipeDelegate.m +++ b/Modules/Debuggers/ProjectCenter/PipeDelegate.m @@ -54,6 +54,8 @@ messageColor = [[NSColor brownColor] retain]; errorColor = [[NSColor redColor] retain]; promptColor = [[NSColor purpleColor] retain]; + + debuggerStarted = NO; } return self; } @@ -152,6 +154,11 @@ [stringScanner scanString: @"(gdb)" intoString: &prefix]; if(prefix != nil) { + if(debuggerStarted == NO) + { + [NOTIFICATION_CENTER postNotificationName:PCDBDebuggerStartedNotification + object: nil]; + } return PCDBPromptRecord; }