mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 00:54:03 +02:00
+ Added SSHGDB debugger
git-svn-id: trunk@4417 -
This commit is contained in:
parent
745eae1cef
commit
e0a9af5324
@ -60,7 +60,7 @@ type
|
|||||||
procedure SendCmdLn(const ACommand: String); overload;
|
procedure SendCmdLn(const ACommand: String); overload;
|
||||||
procedure SendCmdLn(const ACommand: String; Values: array of const); overload;
|
procedure SendCmdLn(const ACommand: String; Values: array of const); overload;
|
||||||
public
|
public
|
||||||
constructor Create(const AExternalDebugger: String); {override; }
|
constructor Create(const AExternalDebugger: String); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure TestCmd(const ACommand: String); virtual;// For internal debugging purposes
|
procedure TestCmd(const ACommand: String); virtual;// For internal debugging purposes
|
||||||
public
|
public
|
||||||
@ -175,7 +175,7 @@ begin
|
|||||||
then begin
|
then begin
|
||||||
FDbgProcess := TProcess.Create(nil);
|
FDbgProcess := TProcess.Create(nil);
|
||||||
FDbgProcess.CommandLine := ExternalDebugger + ' ' + AOptions;
|
FDbgProcess.CommandLine := ExternalDebugger + ' ' + AOptions;
|
||||||
FDbgProcess.Options:= [poUsePipes, poNoConsole, poStdErrToOutPut];
|
FDbgProcess.Options:= [poUsePipes, {poNoConsole,} poStdErrToOutPut];
|
||||||
FDbgProcess.ShowWindow := swoNone;
|
FDbgProcess.ShowWindow := swoNone;
|
||||||
FDbgProcess.Environment:=Environment;
|
FDbgProcess.Environment:=Environment;
|
||||||
end;
|
end;
|
||||||
@ -369,6 +369,9 @@ end;
|
|||||||
end.
|
end.
|
||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.17 2003/07/24 08:47:37 marc
|
||||||
|
+ Added SSHGDB debugger
|
||||||
|
|
||||||
Revision 1.16 2003/06/17 23:13:06 marc
|
Revision 1.16 2003/06/17 23:13:06 marc
|
||||||
* Canged Linux derective to unit, so it will work on xxxbsd?
|
* Canged Linux derective to unit, so it will work on xxxbsd?
|
||||||
|
|
||||||
|
@ -835,10 +835,11 @@ type
|
|||||||
procedure SetState(const AValue: TDBGState);
|
procedure SetState(const AValue: TDBGState);
|
||||||
procedure InitTargetStart; virtual;
|
procedure InitTargetStart; virtual;
|
||||||
public
|
public
|
||||||
constructor Create(const AExternalDebugger: String); {virtual; Virtual constructor makes no sense}
|
constructor Create(const AExternalDebugger: String); virtual; {Virtual constructor makes no sense}
|
||||||
//MWE: there will be a day that they do make sense :-)
|
//MWE: there will be a day that they do make sense :-)
|
||||||
// MG: there will be a day that they do make troubles :)
|
// MG: there will be a day that they do make troubles :)
|
||||||
//MWE: do they ?
|
//MWE: do they ?
|
||||||
|
//MWE: Now they do make sense !
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Init; virtual; // Initializes the debugger
|
procedure Init; virtual; // Initializes the debugger
|
||||||
@ -878,6 +879,7 @@ type
|
|||||||
property OnOutput: TDBGOutputEvent read FOnOutput write FOnOutput; // Passes all output of the debugged target
|
property OnOutput: TDBGOutputEvent read FOnOutput write FOnOutput; // Passes all output of the debugged target
|
||||||
property OnState: TDebuggerStateChangedEvent read FOnState write FOnState; // Fires when the current state of the debugger changes
|
property OnState: TDebuggerStateChangedEvent read FOnState write FOnState; // Fires when the current state of the debugger changes
|
||||||
end;
|
end;
|
||||||
|
TDebuggerClass = class of TDebugger;
|
||||||
|
|
||||||
const
|
const
|
||||||
DBGCommandNames: array[TDBGCommand] of string = (
|
DBGCommandNames: array[TDBGCommand] of string = (
|
||||||
@ -2988,6 +2990,9 @@ end;
|
|||||||
end.
|
end.
|
||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.45 2003/07/24 08:47:37 marc
|
||||||
|
+ Added SSHGDB debugger
|
||||||
|
|
||||||
Revision 1.44 2003/06/13 19:21:31 marc
|
Revision 1.44 2003/06/13 19:21:31 marc
|
||||||
MWE: + Added initial signal and exception handling
|
MWE: + Added initial signal and exception handling
|
||||||
|
|
||||||
|
@ -100,9 +100,10 @@ type
|
|||||||
function CreateCallStack: TDBGCallStack; override;
|
function CreateCallStack: TDBGCallStack; override;
|
||||||
function CreateWatches: TDBGWatches; override;
|
function CreateWatches: TDBGWatches; override;
|
||||||
function GetSupportedCommands: TDBGCommands; override;
|
function GetSupportedCommands: TDBGCommands; override;
|
||||||
|
function ParseInitialization: Boolean; virtual;
|
||||||
function RequestCommand(const ACommand: TDBGCommand; const AParams: array of const): Boolean; override;
|
function RequestCommand(const ACommand: TDBGCommand; const AParams: array of const): Boolean; override;
|
||||||
public
|
public
|
||||||
constructor Create(const AExternalDebugger: String); {override;}
|
constructor Create(const AExternalDebugger: String); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Init; override; // Initializes external debugger
|
procedure Init; override; // Initializes external debugger
|
||||||
@ -794,24 +795,17 @@ procedure TGDBMIDebugger.Init;
|
|||||||
FVersion := GetPart(['gdb '], [#10, #13], S, True, False);
|
FVersion := GetPart(['gdb '], [#10, #13], S, True, False);
|
||||||
if FVersion <> '' then Exit;
|
if FVersion <> '' then Exit;
|
||||||
end;
|
end;
|
||||||
var
|
|
||||||
Line, S: String;
|
|
||||||
begin
|
begin
|
||||||
FPauseWaitState := pwsNone;
|
FPauseWaitState := pwsNone;
|
||||||
FInExecuteCount := 0;
|
FInExecuteCount := 0;
|
||||||
|
|
||||||
if CreateDebugProcess('-silent -i mi')
|
if CreateDebugProcess('-silent -i mi')
|
||||||
then begin
|
then begin
|
||||||
// Get initial debugger lines
|
if not ParseInitialization
|
||||||
S := '';
|
then begin
|
||||||
Line := StripLN(ReadLine);
|
SetState(dsError);
|
||||||
while DebugProcessRunning and (Line <> '(gdb) ') do
|
Exit;
|
||||||
begin
|
|
||||||
S := S + Line + LINE_END;
|
|
||||||
Line := StripLN(ReadLine);
|
|
||||||
end;
|
end;
|
||||||
if S <> ''
|
|
||||||
then MessageDlg('Debugger', 'Initialization output: ' + LINE_END + S, mtInformation, [mbOK], 0);
|
|
||||||
|
|
||||||
ExecuteCommand('-gdb-set confirm off', []);
|
ExecuteCommand('-gdb-set confirm off', []);
|
||||||
|
|
||||||
@ -836,6 +830,24 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TGDBMIDebugger.ParseInitialization: Boolean;
|
||||||
|
var
|
||||||
|
Line, S: String;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
|
||||||
|
// Get initial debugger lines
|
||||||
|
S := '';
|
||||||
|
Line := StripLN(ReadLine);
|
||||||
|
while DebugProcessRunning and (Line <> '(gdb) ') do
|
||||||
|
begin
|
||||||
|
S := S + Line + LINE_END;
|
||||||
|
Line := StripLN(ReadLine);
|
||||||
|
end;
|
||||||
|
if S <> ''
|
||||||
|
then MessageDlg('Debugger', 'Initialization output: ' + LINE_END + S, mtInformation, [mbOK], 0);
|
||||||
|
end;
|
||||||
|
|
||||||
function TGDBMIDebugger.ProcessResult(var ANewState: TDBGState;
|
function TGDBMIDebugger.ProcessResult(var ANewState: TDBGState;
|
||||||
var AResultValues: String; const ANoMICommand: Boolean): Boolean;
|
var AResultValues: String; const ANoMICommand: Boolean): Boolean;
|
||||||
var
|
var
|
||||||
@ -1998,6 +2010,9 @@ end;
|
|||||||
end.
|
end.
|
||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.33 2003/07/24 08:47:37 marc
|
||||||
|
+ Added SSHGDB debugger
|
||||||
|
|
||||||
Revision 1.32 2003/06/24 23:56:33 marc
|
Revision 1.32 2003/06/24 23:56:33 marc
|
||||||
* Fixed version detection of gdb
|
* Fixed version detection of gdb
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ uses
|
|||||||
IDEOptionDefs, LazarusIDEStrConsts, ProjectDefs, BaseDebugManager, MainBar,
|
IDEOptionDefs, LazarusIDEStrConsts, ProjectDefs, BaseDebugManager, MainBar,
|
||||||
SourceMarks,
|
SourceMarks,
|
||||||
DebuggerDlg, Watchesdlg, BreakPointsdlg, LocalsDlg, DBGOutputForm,
|
DebuggerDlg, Watchesdlg, BreakPointsdlg, LocalsDlg, DBGOutputForm,
|
||||||
GDBMIDebugger, CallStackDlg;
|
GDBMIDebugger, CallStackDlg, SSHGDBMIDebugger;
|
||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -1273,6 +1273,8 @@ var
|
|||||||
ResetDialogs;
|
ResetDialogs;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
const
|
||||||
|
DEBUGGERCLASS: array[TDebuggerType] of TDebuggerClass = (nil, TGDBMIDebugger, TSSHGDBMIDebugger);
|
||||||
var
|
var
|
||||||
LaunchingCmdLine, LaunchingApplication, LaunchingParams: String;
|
LaunchingCmdLine, LaunchingApplication, LaunchingParams: String;
|
||||||
NewWorkingDir: String;
|
NewWorkingDir: String;
|
||||||
@ -1291,22 +1293,28 @@ begin
|
|||||||
BeginUpdateDialogs;
|
BeginUpdateDialogs;
|
||||||
try
|
try
|
||||||
try
|
try
|
||||||
case EnvironmentOptions.DebuggerType of
|
if DEBUGGERCLASS[EnvironmentOptions.DebuggerType] = nil
|
||||||
dtGnuDebugger: begin
|
then begin
|
||||||
|
if FDebugger <> nil
|
||||||
|
then FreeDebugger;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
|
||||||
// check if debugger is already created with the right type
|
// check if debugger is already created with the right type
|
||||||
if (FDebugger <> nil)
|
if (FDebugger <> nil)
|
||||||
and ( not(FDebugger is TGDBMIDebugger)
|
and ( not (FDebugger is DEBUGGERCLASS[EnvironmentOptions.DebuggerType])
|
||||||
or (FDebugger.ExternalDebugger <> EnvironmentOptions.DebuggerFilename)
|
or (FDebugger.ExternalDebugger <> EnvironmentOptions.DebuggerFilename)
|
||||||
)
|
)
|
||||||
then begin
|
then begin
|
||||||
// the current debugger is the wrong type -> free it
|
// the current debugger is the wrong type -> free it
|
||||||
FreeDebugger;
|
FreeDebugger;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// create debugger object
|
// create debugger object
|
||||||
if FDebugger = nil
|
if FDebugger = nil
|
||||||
then begin
|
then begin
|
||||||
SaveDebuggerItems;
|
SaveDebuggerItems;
|
||||||
FDebugger := TGDBMIDebugger.Create(EnvironmentOptions.DebuggerFilename);
|
FDebugger := DEBUGGERCLASS[EnvironmentOptions.DebuggerType].Create(EnvironmentOptions.DebuggerFilename);
|
||||||
|
|
||||||
TManagedBreakPoints(FBreakPoints).Master := FDebugger.BreakPoints;
|
TManagedBreakPoints(FBreakPoints).Master := FDebugger.BreakPoints;
|
||||||
TManagedSignals(FSignals).Master := FDebugger.Signals;
|
TManagedSignals(FSignals).Master := FDebugger.Signals;
|
||||||
@ -1314,22 +1322,19 @@ begin
|
|||||||
|
|
||||||
FWatches := FDebugger.Watches;
|
FWatches := FDebugger.Watches;
|
||||||
ResetDialogs;
|
ResetDialogs;
|
||||||
end;
|
|
||||||
// restore debugger items
|
// restore debugger items
|
||||||
RestoreDebuggerItems;
|
RestoreDebuggerItems;
|
||||||
end;
|
end;
|
||||||
else
|
|
||||||
if FDebugger=nil then
|
|
||||||
FreeDebugger;
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
finally
|
finally
|
||||||
OldWatches.Free;
|
OldWatches.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FDebugger.OnState := @OnDebuggerChangeState;
|
FDebugger.OnState := @OnDebuggerChangeState;
|
||||||
FDebugger.OnCurrent := @OnDebuggerCurrentLine;
|
FDebugger.OnCurrent := @OnDebuggerCurrentLine;
|
||||||
FDebugger.OnDbgOutput := @OnDebuggerOutput;
|
FDebugger.OnDbgOutput := @OnDebuggerOutput;
|
||||||
FDebugger.OnException := @OnDebuggerException;
|
FDebugger.OnException := @OnDebuggerException;
|
||||||
|
Project1.RunParameterOptions.AssignEnvironmentTo(FDebugger.Environment);
|
||||||
if FDebugger.State = dsNone
|
if FDebugger.State = dsNone
|
||||||
then FDebugger.Init;
|
then FDebugger.Init;
|
||||||
|
|
||||||
@ -1340,7 +1345,7 @@ begin
|
|||||||
NewWorkingDir:=Project1.ProjectDirectory;
|
NewWorkingDir:=Project1.ProjectDirectory;
|
||||||
FDebugger.WorkingDir:=NewWorkingDir;
|
FDebugger.WorkingDir:=NewWorkingDir;
|
||||||
|
|
||||||
Project1.RunParameterOptions.AssignEnvironmentTo(FDebugger.Environment);
|
// Project1.RunParameterOptions.AssignEnvironmentTo(FDebugger.Environment);
|
||||||
|
|
||||||
if FDialogs[ddtOutput] <> nil
|
if FDialogs[ddtOutput] <> nil
|
||||||
then TDbgOutputForm(FDialogs[ddtOutput]).Clear;
|
then TDbgOutputForm(FDialogs[ddtOutput]).Clear;
|
||||||
@ -1541,6 +1546,9 @@ end.
|
|||||||
|
|
||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.55 2003/07/24 08:47:36 marc
|
||||||
|
+ Added SSHGDB debugger
|
||||||
|
|
||||||
Revision 1.54 2003/06/16 00:07:28 marc
|
Revision 1.54 2003/06/16 00:07:28 marc
|
||||||
MWE:
|
MWE:
|
||||||
+ Implemented DebuggerOptions-ExceptonAdd
|
+ Implemented DebuggerOptions-ExceptonAdd
|
||||||
|
@ -8,13 +8,13 @@ object DebuggerOptionsForm: TDebuggerOptionsForm
|
|||||||
POSITION = podefaultposonly
|
POSITION = podefaultposonly
|
||||||
HORZSCROLLBAR.PAGE = 481
|
HORZSCROLLBAR.PAGE = 481
|
||||||
VERTSCROLLBAR.PAGE = 443
|
VERTSCROLLBAR.PAGE = 443
|
||||||
LEFT = 515
|
LEFT = 511
|
||||||
HEIGHT = 442
|
HEIGHT = 442
|
||||||
TOP = 247
|
TOP = 211
|
||||||
WIDTH = 480
|
WIDTH = 480
|
||||||
object nbDebugOptions: TNOTEBOOK
|
object nbDebugOptions: TNOTEBOOK
|
||||||
ALIGN = altop
|
ALIGN = altop
|
||||||
PAGEINDEX = 3
|
PAGEINDEX = 2
|
||||||
HEIGHT = 398
|
HEIGHT = 398
|
||||||
WIDTH = 480
|
WIDTH = 480
|
||||||
object pgGeneral: TPAGE
|
object pgGeneral: TPAGE
|
||||||
@ -149,10 +149,10 @@ object DebuggerOptionsForm: TDebuggerOptionsForm
|
|||||||
end
|
end
|
||||||
object seLimitLinecount: TSPINEDIT
|
object seLimitLinecount: TSPINEDIT
|
||||||
ENABLED = False
|
ENABLED = False
|
||||||
CLIMB_RATE = 7.22976091447488E-34
|
CLIMB_RATE = 4.1015090942382813
|
||||||
MINVALUE = 7.22976091447488E-34
|
MINVALUE = 4.1015090942382813
|
||||||
MAXVALUE = 7.22976091447488E-34
|
MAXVALUE = 4.1015090942382813
|
||||||
VALUE = 7.22976091447488E-34
|
VALUE = 4.1015090942382813
|
||||||
LEFT = 28
|
LEFT = 28
|
||||||
HEIGHT = 20
|
HEIGHT = 20
|
||||||
TOP = 53
|
TOP = 53
|
||||||
|
@ -5,12 +5,12 @@ LazarusResources.Add('TDebuggerOptionsForm','FORMDATA',[
|
|||||||
+'sdialog'#7'CAPTION'#6#16'Debugger Options'#12'CLIENTHEIGHT'#3#186#1#11'CLIE'
|
+'sdialog'#7'CAPTION'#6#16'Debugger Options'#12'CLIENTHEIGHT'#3#186#1#11'CLIE'
|
||||||
+'NTWIDTH'#3#224#1#8'ONCREATE'#7#25'DebuggerOptionsFormCREATE'#9'ONDESTROY'#7
|
+'NTWIDTH'#3#224#1#8'ONCREATE'#7#25'DebuggerOptionsFormCREATE'#9'ONDESTROY'#7
|
||||||
+#26'DebuggerOptionsFormDESTROY'#8'POSITION'#7#16'podefaultposonly'#18'HORZSC'
|
+#26'DebuggerOptionsFormDESTROY'#8'POSITION'#7#16'podefaultposonly'#18'HORZSC'
|
||||||
+'ROLLBAR.PAGE'#3#225#1#18'VERTSCROLLBAR.PAGE'#3#187#1#4'LEFT'#3#3#2#6'HEIGHT'
|
+'ROLLBAR.PAGE'#3#225#1#18'VERTSCROLLBAR.PAGE'#3#187#1#4'LEFT'#3#255#1#6'HEIG'
|
||||||
+#3#186#1#3'TOP'#3#247#0#5'WIDTH'#3#224#1#0#9'TNOTEBOOK'#14'nbDebugOptions'#5
|
+'HT'#3#186#1#3'TOP'#3#211#0#5'WIDTH'#3#224#1#0#9'TNOTEBOOK'#14'nbDebugOption'
|
||||||
+'ALIGN'#7#5'altop'#9'PAGEINDEX'#2#3#6'HEIGHT'#3#142#1#5'WIDTH'#3#224#1#0#5'T'
|
+'s'#5'ALIGN'#7#5'altop'#9'PAGEINDEX'#2#2#6'HEIGHT'#3#142#1#5'WIDTH'#3#224#1#0
|
||||||
+'PAGE'#9'pgGeneral'#7'CAPTION'#6#7'General'#11'CLIENTWIDTH'#3#220#1#12'CLIEN'
|
+#5'TPAGE'#9'pgGeneral'#7'CAPTION'#6#7'General'#11'CLIENTWIDTH'#3#220#1#12'CL'
|
||||||
+'THEIGHT'#3'p'#1#4'LEFT'#2#2#6'HEIGHT'#3'p'#1#3'TOP'#2#28#5'WIDTH'#3#220#1#0
|
+'IENTHEIGHT'#3'p'#1#4'LEFT'#2#2#6'HEIGHT'#3'p'#1#3'TOP'#2#28#5'WIDTH'#3#220#1
|
||||||
+#9'TGROUPBOX'#14'gbDebuggerType'#7'CAPTION'#6#22'Debugger type and path'#12
|
+#0#9'TGROUPBOX'#14'gbDebuggerType'#7'CAPTION'#6#22'Debugger type and path'#12
|
||||||
+'CLIENTHEIGHT'#2'%'#11'CLIENTWIDTH'#3#212#1#11'PARENTCTL3D'#8#8'TABORDER'#2#0
|
+'CLIENTHEIGHT'#2'%'#11'CLIENTWIDTH'#3#212#1#11'PARENTCTL3D'#8#8'TABORDER'#2#0
|
||||||
+#4'LEFT'#2#2#6'HEIGHT'#2'6'#3'TOP'#2#8#5'WIDTH'#3#216#1#0#9'TCOMBOBOX'#15'cm'
|
+#4'LEFT'#2#2#6'HEIGHT'#2'6'#3'TOP'#2#8#5'WIDTH'#3#216#1#0#9'TCOMBOBOX'#15'cm'
|
||||||
+'bDebuggerType'#9'MAXLENGTH'#2#0#11'PARENTCTL3D'#8#8'TABORDER'#2#0#7'TABSTOP'
|
+'bDebuggerType'#9'MAXLENGTH'#2#0#11'PARENTCTL3D'#8#8'TABORDER'#2#0#7'TABSTOP'
|
||||||
@ -39,9 +39,9 @@ LazarusResources.Add('TDebuggerOptionsForm','FORMDATA',[
|
|||||||
+'CHECKBOX'#17'chkLimitLinecount'#11'ALLOWGRAYED'#9#8'AUTOSIZE'#9#7'CAPTION'#6
|
+'CHECKBOX'#17'chkLimitLinecount'#11'ALLOWGRAYED'#9#8'AUTOSIZE'#9#7'CAPTION'#6
|
||||||
+#18'Limit linecount to'#10'DRAGCURSOR'#2#0#8'TABORDER'#2#1#7'TABSTOP'#9#4'LE'
|
+#18'Limit linecount to'#10'DRAGCURSOR'#2#0#8'TABORDER'#2#1#7'TABSTOP'#9#4'LE'
|
||||||
+'FT'#2#4#6'HEIGHT'#2#20#3'TOP'#2#29#5'WIDTH'#2'w'#0#0#9'TSPINEDIT'#16'seLimi'
|
+'FT'#2#4#6'HEIGHT'#2#20#3'TOP'#2#29#5'WIDTH'#2'w'#0#0#9'TSPINEDIT'#16'seLimi'
|
||||||
+'tLinecount'#7'ENABLED'#8#10'CLIMB_RATE'#5#0#0#0#0#0#1'@'#240#144'?'#8'MINVA'
|
+'tLinecount'#7'ENABLED'#8#10'CLIMB_RATE'#5#0#0#0#0#0#144'?'#131#1'@'#8'MINVA'
|
||||||
+'LUE'#5#0#0#0#0#0#1'@'#240#144'?'#8'MAXVALUE'#5#0#0#0#0#0#1'@'#240#144'?'#5
|
+'LUE'#5#0#0#0#0#0#144'?'#131#1'@'#8'MAXVALUE'#5#0#0#0#0#0#144'?'#131#1'@'#5
|
||||||
+'VALUE'#5#0#0#0#0#0#1'@'#240#144'?'#4'LEFT'#2#28#6'HEIGHT'#2#20#3'TOP'#2'5'#5
|
+'VALUE'#5#0#0#0#0#0#144'?'#131#1'@'#4'LEFT'#2#28#6'HEIGHT'#2#20#3'TOP'#2'5'#5
|
||||||
+'WIDTH'#2'>'#0#0#0#9'TGROUPBOX'#10'gbMessages'#7'CAPTION'#6#8'Messages'#12'C'
|
+'WIDTH'#2'>'#0#0#0#9'TGROUPBOX'#10'gbMessages'#7'CAPTION'#6#8'Messages'#12'C'
|
||||||
+'LIENTHEIGHT'#3#171#0#11'CLIENTWIDTH'#3#228#0#7'ENABLED'#8#11'PARENTCTL3D'#8
|
+'LIENTHEIGHT'#3#171#0#11'CLIENTWIDTH'#3#228#0#7'ENABLED'#8#11'PARENTCTL3D'#8
|
||||||
+#8'TABORDER'#2#1#4'LEFT'#3#242#0#6'HEIGHT'#3#188#0#3'TOP'#2#8#5'WIDTH'#3#232
|
+#8'TABORDER'#2#1#4'LEFT'#3#242#0#6'HEIGHT'#3#188#0#3'TOP'#2#8#5'WIDTH'#3#232
|
||||||
|
@ -69,11 +69,11 @@ type
|
|||||||
{ Debugging }
|
{ Debugging }
|
||||||
|
|
||||||
type
|
type
|
||||||
TDebuggerType = (dtNone, dtGnuDebugger);
|
TDebuggerType = (dtNone, dtGnuDebugger, dtSSHGNUDebugger);
|
||||||
|
|
||||||
const
|
const
|
||||||
DebuggerName : array[TDebuggerType] of string = (
|
DebuggerName : array[TDebuggerType] of string = (
|
||||||
'(None)','GNU debugger (gdb)'
|
'(None)','GNU debugger (gdb)', 'GNU debugger through SSH (gdb)'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -951,6 +951,7 @@ begin
|
|||||||
FDebuggerFileHistory.Add(DebuggerName[dtNone]);
|
FDebuggerFileHistory.Add(DebuggerName[dtNone]);
|
||||||
FDebuggerFileHistory.Add('/usr/bin/gdb');
|
FDebuggerFileHistory.Add('/usr/bin/gdb');
|
||||||
FDebuggerFileHistory.Add('/opt/fpc/gdb');
|
FDebuggerFileHistory.Add('/opt/fpc/gdb');
|
||||||
|
FDebuggerFileHistory.Add('/usr/bin/ssh user@hostname /usr/bin/gdb');
|
||||||
end;
|
end;
|
||||||
LoadDebuggerType(FDebuggerType,'EnvironmentOptions/');
|
LoadDebuggerType(FDebuggerType,'EnvironmentOptions/');
|
||||||
TestBuildDirectory:=XMLConfig.GetValue(
|
TestBuildDirectory:=XMLConfig.GetValue(
|
||||||
|
@ -55,7 +55,7 @@ uses
|
|||||||
{$IFDEF AddStaticPkgs}
|
{$IFDEF AddStaticPkgs}
|
||||||
{$I staticpackages.inc}
|
{$I staticpackages.inc}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
MainBar;
|
MainBar, SSHGDBMIDebugger;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Application.Initialize;
|
Application.Initialize;
|
||||||
@ -99,6 +99,9 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.47 2003/07/24 08:47:36 marc
|
||||||
|
+ Added SSHGDB debugger
|
||||||
|
|
||||||
Revision 1.46 2003/06/23 09:42:09 mattias
|
Revision 1.46 2003/06/23 09:42:09 mattias
|
||||||
fixes for debugging lazarus
|
fixes for debugging lazarus
|
||||||
|
|
||||||
|
11
ide/main.pp
11
ide/main.pp
@ -5625,13 +5625,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// Setup debugger
|
// Setup debugger
|
||||||
case EnvironmentOptions.DebuggerType of
|
if EnvironmentOptions.DebuggerType <> dtNone
|
||||||
dtGnuDebugger: begin
|
then begin
|
||||||
if (DebugBoss.DoInitDebugger <> mrOk)
|
if (DebugBoss.DoInitDebugger <> mrOk)
|
||||||
then Exit;
|
then Exit;
|
||||||
// ToDo: set working directory
|
// ToDo: set working directory
|
||||||
end;
|
end
|
||||||
else
|
else begin
|
||||||
// Temp solution, in future it will be run by dummy debugger
|
// Temp solution, in future it will be run by dummy debugger
|
||||||
try
|
try
|
||||||
CheckIfFileIsExecutable(ProgramFilename);
|
CheckIfFileIsExecutable(ProgramFilename);
|
||||||
@ -9354,6 +9354,9 @@ end.
|
|||||||
|
|
||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.625 2003/07/24 08:47:36 marc
|
||||||
|
+ Added SSHGDB debugger
|
||||||
|
|
||||||
Revision 1.624 2003/07/14 09:03:39 mattias
|
Revision 1.624 2003/07/14 09:03:39 mattias
|
||||||
deactivated FCL TDataModule
|
deactivated FCL TDataModule
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user