diff options
| author | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-02-27 00:34:16 +0000 |
|---|---|---|
| committer | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-02-27 00:34:16 +0000 |
| commit | 92bfd472c6dc68a5fb3720167042019995e1beff (patch) | |
| tree | e92a4cbd4e76c9bd93ad3395fb8d16b65441cae0 /packages/gdbint/src | |
| parent | 161364de7af954837d88bd71524a2849862098e6 (diff) | |
| download | fpc-92bfd472c6dc68a5fb3720167042019995e1beff.tar.gz | |
* handle failure in GetFPCBreakErrorParameters and continue execution silently
in a gdb/mi safe way
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@30020 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/gdbint/src')
| -rw-r--r-- | packages/gdbint/src/gdbint.pp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/packages/gdbint/src/gdbint.pp b/packages/gdbint/src/gdbint.pp index 842471824d..3337f2ce2e 100644 --- a/packages/gdbint/src/gdbint.pp +++ b/packages/gdbint/src/gdbint.pp @@ -933,7 +933,7 @@ type procedure clear_frames; { Highlevel } procedure GetAddrSyminfo(addr:ptrint;var si:tsyminfo); - procedure SelectSourceline(fn:pchar;line,BreakIndex:longint); + function SelectSourceline(fn:pchar;line,BreakIndex:longint): Boolean; procedure StartSession; procedure BreakSession; procedure EndSession(code:longint); @@ -942,7 +942,7 @@ type procedure FlushAll; virtual; function Query(question : pchar; args : pchar) : longint; virtual; { Hooks } - procedure DoSelectSourceline(const fn:string;line,BreakIndex:longint);virtual; + function DoSelectSourceline(const fn:string;line,BreakIndex:longint): Boolean;virtual; procedure DoStartSession;virtual; procedure DoBreakSession;virtual; procedure DoEndSession(code:longint);virtual; @@ -2153,7 +2153,8 @@ begin fname:=sym.symtab^.filename else fname:=nil; - SelectSourceLine(fname,sym.line,stop_breakpoint_number); + if not SelectSourceLine(fname,sym.line,stop_breakpoint_number) then + gdb_command('continue'); end; end; @@ -3207,12 +3208,12 @@ begin end; -procedure tgdbinterface.SelectSourceLine(fn:pchar;line,BreakIndex:longint); +function tgdbinterface.SelectSourceLine(fn:pchar;line,BreakIndex:longint): Boolean; begin if assigned(fn) then - DoSelectSourceLine(StrPas(fn),line,BreakIndex) + SelectSourceLine:=DoSelectSourceLine(StrPas(fn),line,BreakIndex) else - DoSelectSourceLine('',line,BreakIndex); + SelectSourceLine:=DoSelectSourceLine('',line,BreakIndex); end; @@ -3274,7 +3275,7 @@ end; Default Hooks ---------------------------------------} -procedure tgdbinterface.DoSelectSourceLine(const fn:string;line,BreakIndex:longint); +function tgdbinterface.DoSelectSourceLine(const fn:string;line,BreakIndex:longint): Boolean; {$ifdef Verbose} var s,bs : string; |
