diff --git a/src/ce_dbgitf.pas b/src/ce_dbgitf.pas index a1a1e608..57430d1a 100644 --- a/src/ce_dbgitf.pas +++ b/src/ce_dbgitf.pas @@ -17,7 +17,8 @@ type (** * ICEEDebugObserver can call any of the method during debugging *) - ICEDebugger = interface + ICEDebugger = interface(ICESingleService) + function running: boolean; procedure addBreakPoint(const fname: string; line: integer; kind: TBreakPointKind); procedure removeBreakPoint(const fname: string; line: integer); end; diff --git a/src/ce_gdb.pas b/src/ce_gdb.pas index 76b66cab..62167d59 100644 --- a/src/ce_gdb.pas +++ b/src/ce_gdb.pas @@ -228,6 +228,8 @@ type procedure docChanged(document: TCESynMemo); procedure docClosing(document: TCESynMemo); // + function running: boolean; + function singleServiceName: string; procedure addBreakPoint(const fname: string; line: integer; kind: TBreakPointKind); procedure removeBreakPoint(const fname: string; line: integer); public @@ -369,6 +371,7 @@ constructor TCEGdbWidget.create(aOwner: TComponent); begin inherited; EntitiesConnector.addObserver(self); + EntitiesConnector.addSingleService(self); fDocHandler:= getMultiDocHandler; fMsg:= getMessageDisplay; fFileLineBrks:= TStringList.Create; @@ -458,6 +461,19 @@ end; {$ENDREGION} {$REGION Unsorted Debugging things ---------------------------------------------} +function TCEGdbWidget.running: boolean; +begin + if assigned(fGdb) then + exit(fGdb.Running) + else + exit(false); +end; + +function TCEGdbWidget.singleServiceName: string; +begin + exit('ICEDebugger'); +end; + procedure TCEGdbWidget.killGdb; begin if not assigned(fGdb) then diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas index 12a76b59..74cd3185 100644 --- a/src/ce_synmemo.pas +++ b/src/ce_synmemo.pas @@ -754,6 +754,8 @@ begin // fDastWorxExename:= exeFullName('dastworx' + exeExt); // + fDebugger := EntitiesConnector.getSingleService('ICEDebugger') as ICEDebugger; + // subjDocNew(TCEMultiDocSubject(fMultiDocSubject), self); EntitiesConnector.addObserver(self); end;