dbg, warn on internal gdb error

git-svn-id: trunk@42414 -
This commit is contained in:
martin 2013-08-16 22:49:26 +00:00
parent 0d072f2c40
commit 546b66762a
3 changed files with 15 additions and 0 deletions

View File

@ -135,6 +135,7 @@ type
FMaxDisplayLengthForString: Integer;
FTimeoutForEval: Integer;
FUseAsyncCommandMode: Boolean;
FWarnOnInternalError: Boolean;
FWarnOnTimeOut: Boolean;
procedure SetMaxDisplayLengthForString(AValue: Integer);
procedure SetTimeoutForEval(const AValue: Integer);
@ -150,6 +151,7 @@ type
property MaxDisplayLengthForString: Integer read FMaxDisplayLengthForString write SetMaxDisplayLengthForString;
property TimeoutForEval: Integer read FTimeoutForEval write SetTimeoutForEval;
property WarnOnTimeOut: Boolean read FWarnOnTimeOut write SetWarnOnTimeOut;
property WarnOnInternalError: Boolean read FWarnOnInternalError write FWarnOnInternalError;
property EncodeCurrentDirPath: TGDBMIDebuggerFilenameEncoding
read FEncodeCurrentDirPath write FEncodeCurrentDirPath default gdfeDefault;
property EncodeExeFileName: TGDBMIDebuggerFilenameEncoding
@ -168,6 +170,7 @@ type
property MaxDisplayLengthForString;
property TimeoutForEval;
property WarnOnTimeOut;
property WarnOnInternalError;
property EncodeCurrentDirPath;
property EncodeExeFileName;
property InternalStartBreak;
@ -6644,6 +6647,7 @@ begin
FTimeoutForEval := -1;
{$ENDIF}
FWarnOnTimeOut := True;
FWarnOnInternalError := True;
FEncodeCurrentDirPath := gdfeDefault;
FEncodeExeFileName := gdfeDefault;
FInternalStartBreak := gdsbDefault;
@ -10805,6 +10809,15 @@ var
TargetInfo^.TargetFlags := TargetInfo^.TargetFlags - [tfHasSymbols];
DoDbgEvent(ecDebugger, etDefault, Format('File ''%s'' has no debug symbols', [FTheDebugger.FileName]));
end;
if (Pos('internal-error:', LowerCase(Line)) > 0) or
(Pos('internal to gdb has been detected', LowerCase(Line)) > 0) or
(Pos('further debugging may prove unreliable', LowerCase(Line)) > 0)
then begin
DoDbgEvent(ecDebugger, etDefault, Format('GDB has encountered an internal error: %s', [Line]));
if DebuggerProperties.WarnOnInternalError
then MessageDlg('Warning', 'GDB has encountered an internal error: ' + Line,
mtWarning, [mbOK], 0);
end;
DebugLn(DBG_VERBOSE, '[Debugger] Log output: ', Line);
if Line = '&"kill\n"'
then AResult.State := dsStop

View File

@ -71,6 +71,7 @@ type
property MaxDisplayLengthForString;
property TimeoutForEval;
property WarnOnTimeOut;
property WarnOnInternalError;
property EncodeCurrentDirPath;
property EncodeExeFileName;
property InternalStartBreak;

View File

@ -81,6 +81,7 @@ type
property MaxDisplayLengthForString;
property TimeoutForEval;
property WarnOnTimeOut;
property WarnOnInternalError;
property EncodeCurrentDirPath;
property EncodeExeFileName;
property InternalStartBreak;