diff options
author | pierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-03-04 17:37:57 +0000 |
---|---|---|
committer | pierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-03-04 17:37:57 +0000 |
commit | 91c97f8061c4fe069c0c5b38de78ae75708e3fd0 (patch) | |
tree | bdbf66b8d565074a6e6a0e54c762f7be237df57e /packages/gdbint | |
parent | b937c9ab4452ebaf5624d22fb1f1499e12d272fe (diff) | |
download | fpc-91c97f8061c4fe069c0c5b38de78ae75708e3fd0.tar.gz |
Add missing gdbarch field for annotate_frame_begin for version 7.0 or above
Try to cope with buffering problems to catch complete argument list
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@30095 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/gdbint')
-rw-r--r-- | packages/gdbint/src/gdbint.pp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/gdbint/src/gdbint.pp b/packages/gdbint/src/gdbint.pp index 654271d23e..d7dabe0946 100644 --- a/packages/gdbint/src/gdbint.pp +++ b/packages/gdbint/src/gdbint.pp @@ -215,6 +215,7 @@ interface {$define GDB_TARGET_CLOSE_HAS_PTARGET_ARG} {$define GDB_HAS_BP_NONE} {$define GDB_USE_XSTRVPRINTF} + {$define GDB_ANNOTATE_FRAME_BEGIN_HAS_GDBARCH_FIELD} {$endif def GDB_V7} @@ -2277,7 +2278,11 @@ begin end; -procedure annotate_frame_begin(level:longint;pc:CORE_ADDR);cdecl;public; +procedure annotate_frame_begin(level:longint; +{$ifdef GDB_ANNOTATE_FRAME_BEGIN_HAS_GDBARCH_FIELD} + gdbarch : pointer; +{$endif GDB_ANNOTATE_FRAME_BEGIN_HAS_GDBARCH_FIELD} +pc:CORE_ADDR);cdecl;public; begin {$ifdef Verbose} Debug('|frame_begin(%d,%ld)|'); @@ -2435,6 +2440,10 @@ begin begin if (gdboutputbuf.buf[args_end-1]=#10) then dec(args_end); + { Flushing is not always correct for args, + try to move on to next closing brace } + while (args_end<file_start) and (gdboutputbuf.buf[args_end-1]<>')') do + inc(args_end); c:=gdboutputbuf.buf[args_end]; gdboutputbuf.buf[args_end]:=#0; fe^.args:=strnew(gdboutputbuf.buf+args_start); |