From 5bb65ded3d85373cc7a47c5c1dd8fe1982c168c4 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 4 Mar 2015 17:37:57 +0000 Subject: [PATCH] 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: trunk@30095 - --- packages/gdbint/src/gdbint.pp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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')') do + inc(args_end); c:=gdboutputbuf.buf[args_end]; gdboutputbuf.buf[args_end]:=#0; fe^.args:=strnew(gdboutputbuf.buf+args_start);