This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: fix start symbol matching again
- From: Jim Blandy <jimb at zwingli dot cygnus dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: 17 Jan 2002 19:19:38 -0500
- Subject: Re: RFA: fix start symbol matching again
- References: <20011219071008.EE0625E9D8@zwingli.cygnus.com>
I've committed this change, with a comment that explains what the
issue is. Expect can be made to behave predictably; the old code just
doesn't do that.
Jim Blandy <jimb@cygnus.com> writes:
> If the comment isn't clear, let me know. It's a little late, and I'm
> not writing very well.
>
> 2001-12-19 Jim Blandy <jimb@redhat.com>
>
> * gdb.asm/asm-source.exp (info symbol): Take another shot at
> anchoring the pattern matching the entry point symbol's name.
>
> Index: gdb/testsuite/gdb.asm/asm-source.exp
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.asm/asm-source.exp,v
> retrieving revision 1.24
> diff -c -r1.24 asm-source.exp
> *** gdb/testsuite/gdb.asm/asm-source.exp 2001/12/17 14:57:49 1.24
> --- gdb/testsuite/gdb.asm/asm-source.exp 2001/12/19 07:06:11
> ***************
> *** 159,171 ****
> set entry_symbol ""
> send_gdb "info symbol 0x$entry_point\n"
> gdb_expect {
> ! -re "info symbol 0x$entry_point\[\r\n\]*" {
> ! exp_continue
> ! }
> ! -re "^(.*) in section .*$gdb_prompt $" {
> ! # It's important to anchor the pattern above at the beginning
> ! # of the line. Without that carat, the (.*) may end up
> ! # matching the empty string.
> set entry_symbol $expect_out(1,string)
> pass "info symbol"
> }
> --- 159,172 ----
> set entry_symbol ""
> send_gdb "info symbol 0x$entry_point\n"
> gdb_expect {
> ! -re "info symbol 0x$entry_point\[\r\n\]+(\[^\r\n\]*) in section .*$gdb_prompt $" {
> ! # We match the echoed `info symbol' command here, to help us
> ! # reliably identify the beginning of the start symbol in its
> ! # output. We have to start matching exactly at the beginning
> ! # of the line, no earlier or later. You might think we could
> ! # just use '^', but unfortunately, in expect, '^' matches the
> ! # beginning of the unmatched input, not necessarily the
> ! # beginning of a line.
> set entry_symbol $expect_out(1,string)
> pass "info symbol"
> }