This commit is contained in:
parent
085e469660
commit
41801ecdeb
132
async-command-editing.diff
Normal file
132
async-command-editing.diff
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
From nobody Sun Jun 24 18:21:49 2007
|
||||||
|
From: Daniel Jacobowitz <drow@false.org>
|
||||||
|
Subject: Re: PATCH: PR tui/2173: Arrow keys no longer works in breakpoint command list
|
||||||
|
To: Nick Roberts <nickrob@snap.net.nz>, gdb-patches@sourceware.org
|
||||||
|
Date: Sun, 24 Jun 2007 11:47:00 -0400
|
||||||
|
Mail-Followup-To: Nick Roberts <nickrob@snap.net.nz>,
|
||||||
|
gdb-patches@sourceware.org
|
||||||
|
|
||||||
|
On Tue, Jun 05, 2007 at 09:27:00AM -0400, Daniel Jacobowitz wrote:
|
||||||
|
> On Wed, Jun 06, 2007 at 12:55:55AM +1200, Nick Roberts wrote:
|
||||||
|
> > > > This change breaks the behaviour of annotations with commands that span
|
||||||
|
> > > > multiple lines, like if, while, etc:
|
||||||
|
> > >
|
||||||
|
> > > Sorry, I didn't even know we had special annotations for this (and the
|
||||||
|
> > > testsuite must not cover it)...
|
||||||
|
> >
|
||||||
|
> > Here's a test for gdb.base/annota3.exp. I can do the same for
|
||||||
|
> > gdb.base/annota1.exp and gdb.cp/annota3.exp, if needed.
|
||||||
|
>
|
||||||
|
> Thanks. This is OK once we fix the problem. I haven't gotten back to
|
||||||
|
> you about that yet because I want to figure out what other issues were
|
||||||
|
> solved by the original patch - there were several. But I've been on
|
||||||
|
> vacation and I'm in a mad rush at home now, so it may be a bit longer.
|
||||||
|
|
||||||
|
Nick, does this work for emacs? It fixes the testcase (which I
|
||||||
|
updated to fail and not time out for broken GDBs).
|
||||||
|
|
||||||
|
--
|
||||||
|
Daniel Jacobowitz
|
||||||
|
CodeSourcery
|
||||||
|
|
||||||
|
2007-06-24 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* top.c (gdb_readline_wrapper_line): Call rl_callback_handler_remove.
|
||||||
|
(struct gdb_readline_wrapper_cleanup): Remove prompt_orig.
|
||||||
|
(gdb_readline_wrapper_cleanup): Do not reset the prompt.
|
||||||
|
(gdb_readline_wrapper): Do not save the prompt. Pass our prompt
|
||||||
|
to display_gdb_prompt.
|
||||||
|
|
||||||
|
2007-06-24 Nick Roberts <nickrob@snap.net.nz>
|
||||||
|
Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* gdb.base/annota3.exp: Test for if construct.
|
||||||
|
|
||||||
|
Index: top.c
|
||||||
|
===================================================================
|
||||||
|
RCS file: /cvs/src/src/gdb/top.c,v
|
||||||
|
retrieving revision 1.120
|
||||||
|
diff -u -p -r1.120 top.c
|
||||||
|
--- top.c 29 Mar 2007 18:55:01 -0000 1.120
|
||||||
|
+++ top.c 24 Jun 2007 15:42:02 -0000
|
||||||
|
@@ -751,12 +751,16 @@ gdb_readline_wrapper_line (char *line)
|
||||||
|
/* Prevent operate-and-get-next from acting too early. */
|
||||||
|
saved_after_char_processing_hook = after_char_processing_hook;
|
||||||
|
after_char_processing_hook = NULL;
|
||||||
|
+
|
||||||
|
+ /* Prevent parts of the prompt from being redisplayed if annotations
|
||||||
|
+ are enabled, and readline's state getting out of sync. */
|
||||||
|
+ if (async_command_editing_p)
|
||||||
|
+ rl_callback_handler_remove ();
|
||||||
|
}
|
||||||
|
|
||||||
|
struct gdb_readline_wrapper_cleanup
|
||||||
|
{
|
||||||
|
void (*handler_orig) (char *);
|
||||||
|
- char *prompt_orig;
|
||||||
|
int already_prompted_orig;
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -766,7 +770,6 @@ gdb_readline_wrapper_cleanup (void *arg)
|
||||||
|
struct gdb_readline_wrapper_cleanup *cleanup = arg;
|
||||||
|
|
||||||
|
rl_already_prompted = cleanup->already_prompted_orig;
|
||||||
|
- PROMPT (0) = cleanup->prompt_orig;
|
||||||
|
|
||||||
|
gdb_assert (input_handler == gdb_readline_wrapper_line);
|
||||||
|
input_handler = cleanup->handler_orig;
|
||||||
|
@@ -790,14 +793,12 @@ gdb_readline_wrapper (char *prompt)
|
||||||
|
cleanup->handler_orig = input_handler;
|
||||||
|
input_handler = gdb_readline_wrapper_line;
|
||||||
|
|
||||||
|
- cleanup->prompt_orig = get_prompt ();
|
||||||
|
- PROMPT (0) = prompt;
|
||||||
|
cleanup->already_prompted_orig = rl_already_prompted;
|
||||||
|
|
||||||
|
back_to = make_cleanup (gdb_readline_wrapper_cleanup, cleanup);
|
||||||
|
|
||||||
|
/* Display our prompt and prevent double prompt display. */
|
||||||
|
- display_gdb_prompt (NULL);
|
||||||
|
+ display_gdb_prompt (prompt);
|
||||||
|
rl_already_prompted = 1;
|
||||||
|
|
||||||
|
if (after_char_processing_hook)
|
||||||
|
Index: testsuite/gdb.base/annota3.exp
|
||||||
|
===================================================================
|
||||||
|
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota3.exp,v
|
||||||
|
retrieving revision 1.12
|
||||||
|
diff -u -p -r1.12 annota3.exp
|
||||||
|
--- testsuite/gdb.base/annota3.exp 9 Jan 2007 17:59:09 -0000 1.12
|
||||||
|
+++ testsuite/gdb.base/annota3.exp 24 Jun 2007 15:42:02 -0000
|
||||||
|
@@ -99,7 +99,29 @@ gdb_expect_list "annotation set at level
|
||||||
|
"set annotate 3"
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
+#
|
||||||
|
+# if construct:
|
||||||
|
+#
|
||||||
|
+send_gdb "if 1\n"
|
||||||
|
+gdb_expect {
|
||||||
|
+ -re "^if 1\r\n\r\n\032\032post-prompt\r\n\r\n\032\032pre-commands\r\n >\r\n\032\032commands\r\n$" {
|
||||||
|
+ pass "start if construct"
|
||||||
|
+ }
|
||||||
|
+ -re ".*\032\032commands\r\n" {
|
||||||
|
+ fail "start if construct"
|
||||||
|
+ }
|
||||||
|
+ timeout { fail "start if construct (timeout)" }
|
||||||
|
+}
|
||||||
|
+send_gdb "end\n"
|
||||||
|
+gdb_expect {
|
||||||
|
+ -re "^end\r\n\r\n\032\032post-commands\r\n$gdb_prompt$" {
|
||||||
|
+ pass "end if construct"
|
||||||
|
+ }
|
||||||
|
+ -re ".*$gdb_prompt$" {
|
||||||
|
+ fail "end if construct"
|
||||||
|
+ }
|
||||||
|
+ timeout { fail "end if construct (timeout)" }
|
||||||
|
+}
|
||||||
|
#
|
||||||
|
# info break:
|
||||||
|
#
|
||||||
|
|
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jun 24 18:52:47 CEST 2007 - schwab@suse.de
|
||||||
|
|
||||||
|
- Fix annotations for commands prompt.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Jun 21 12:37:56 CEST 2007 - schwab@suse.de
|
Thu Jun 21 12:37:56 CEST 2007 - schwab@suse.de
|
||||||
|
|
||||||
|
8
gdb.spec
8
gdb.spec
@ -24,7 +24,7 @@ Group: Development/Tools/Debuggers
|
|||||||
Autoreqprov: on
|
Autoreqprov: on
|
||||||
PreReq: %{install_info_prereq}
|
PreReq: %{install_info_prereq}
|
||||||
Version: 6.6.50.20070621
|
Version: 6.6.50.20070621
|
||||||
Release: 1
|
Release: 2
|
||||||
Summary: The GNU Debugger
|
Summary: The GNU Debugger
|
||||||
Source: gdb-%{version}-cvs.tar.bz2
|
Source: gdb-%{version}-cvs.tar.bz2
|
||||||
Patch1: gdb-misc.patch
|
Patch1: gdb-misc.patch
|
||||||
@ -39,6 +39,7 @@ Patch9: loader_break.diff
|
|||||||
Patch10: ppc-long-double.diff
|
Patch10: ppc-long-double.diff
|
||||||
Patch11: elf-symtab-read.diff
|
Patch11: elf-symtab-read.diff
|
||||||
Patch12: find-pc-sect-line.diff
|
Patch12: find-pc-sect-line.diff
|
||||||
|
Patch13: async-command-editing.diff
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -81,6 +82,9 @@ cd ..
|
|||||||
%patch10
|
%patch10
|
||||||
%patch11
|
%patch11
|
||||||
%patch12
|
%patch12
|
||||||
|
cd gdb
|
||||||
|
%patch13
|
||||||
|
cd ..
|
||||||
|
|
||||||
%build
|
%build
|
||||||
CFLAGS="$RPM_OPT_FLAGS" \
|
CFLAGS="$RPM_OPT_FLAGS" \
|
||||||
@ -136,6 +140,8 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jun 24 2007 - schwab@suse.de
|
||||||
|
- Fix annotations for commands prompt.
|
||||||
* Thu Jun 21 2007 - schwab@suse.de
|
* Thu Jun 21 2007 - schwab@suse.de
|
||||||
- Update to head of trunk.
|
- Update to head of trunk.
|
||||||
* Fri Jun 08 2007 - schwab@suse.de
|
* Fri Jun 08 2007 - schwab@suse.de
|
||||||
|
Loading…
x
Reference in New Issue
Block a user