Re: RFA (?) Annotate Level 3 patch

Andrew Cagney
2004-01-27T20:28:13Z

[-- Attachment #1: Type: text/plain, Size: 298 bytes --]

(Working through the old ones :-()
Nick,

Can you post a log with/with-out this patch to illustrate what's
happening. You're right - emacs should see "stopped" first but there
might be a better long-term way to do this.

I suspect this will mean playing with the print-stop-reason code.

Andrew

[-- Attachment #2: mailbox-message://ac131313@movemail/fsf/gdb/patches#125619 --]
[-- Type: message/rfc822, Size: 3665 bytes --]

From: Nick Roberts <nick@nick.uklinux.net>
To: gdb-patches@sources.redhat.com
Subject: RFA (?) Annotate Level 3 patch
Date: Tue, 5 Aug 2003 21:04:56 +0100
Message-ID: <16176.3560.65649.7079@nick.uklinux.net>

The annotation frame-begin is not needed, per se, by Emacs (gdb-ui.el) but it
is used to determine that the I/O for the subprocess is now GDB, not the
program being debugged i.e as a stopped annotation. In many cases there is
another annotation e.g breakpoint to tell Emacs this. However, in some cases,
e.g after `finish' or `return', frame-begin is the first `stopping' annotation
that GDB issues before printing (out frame details).

So I propose the patch below. It means that the stopped annotation gets printed
twice but that doesn't matter to Emacs. It's not elegant but, hey, it works!

I think Emacs is the only application that is interested in level 3
annotations so could "-gnuemacs" be made an alias option for "-annotate=3"?
From GDB's point of view this would discourage new applications form using
it. From Emacs point of view, it would legitimise changes that we would wish
to make.

Nick

--- annotate.c.~1.5.60.1.~ 2003-07-29 14:35:47.000000000 +0100
+++ annotate.c 2003-08-04 19:44:02.000000000 +0100
@@ -436,6 +436,7 @@
print_address_numeric (pc, 0, gdb_stdout);
printf_filtered ("\n");
}
+ if (annotation_level == 3) printf_filtered ("\n\032\032stopped\n");
}

void