This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: parse output from `info sources' one filename at a time
- From: Michael Snyder <msnyder at redhat dot com>
- To: Jim Blandy <jimb at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com, fnasser at redhat dot com
- Date: Thu, 21 Feb 2002 10:56:15 -0800
- Subject: Re: RFA: parse output from `info sources' one filename at a time
- Organization: Red Hat, Inc.
- References: <20020214001154.0A7605E9DE@zwingli.cygnus.com>
Jim Blandy wrote:
>
> This eliminates an `ERROR' when the test is run under Linux. The
> output from `info sources' includes all the shared library source
> files, making it so long that it overflows Expect's buffer.
Not the maintainer, but I recommend acceptance.
>
> 2002-02-13 Jim Blandy <jimb@redhat.com>
>
> * gdb.asm/asm-source.exp: Parse the output from `info sources' one
> filename at a time, and watch for the ones we want to see.
>
> Index: gdb/testsuite/gdb.asm/asm-source.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
> retrieving revision 1.17
> diff -c -r1.17 asm-source.exp
> *** gdb/testsuite/gdb.asm/asm-source.exp 2002/01/18 00:13:00 1.17
> --- gdb/testsuite/gdb.asm/asm-source.exp 2002/02/14 00:05:30
> ***************
> *** 202,211 ****
> "Current source file is .*asmsrc2.s.*Source language is asm.*" \
> "info source asmsrc2.s"
>
> ! # Try 'info sources'
> ! gdb_test "info sources" \
> ! "Source files .*asmsrc\[12\].s.*asmsrc\[12\].s.*" \
> ! "info sources"
>
> # Try 'info line'
> gdb_test "info line" \
> --- 202,238 ----
> "Current source file is .*asmsrc2.s.*Source language is asm.*" \
> "info source asmsrc2.s"
>
> ! # Try 'info sources'. This can produce a lot of output on systems
> ! # with dynamic linking, where the system's shared libc was compiled
> ! # with debugging info; for example, on Linux, this produces 47kb of
> ! # output. So we consume it as we go.
> ! send_gdb "info sources\n"
> ! set seen_asmsrc_1 0
> ! set seen_asmsrc_2 0
> ! gdb_expect {
> ! -re "^\[^,\]*asmsrc1.s(, |\[\r\n\]+)" {
> ! set seen_asmsrc_1 1
> ! exp_continue
> ! }
> ! -re "^\[^,\]*asmsrc2.s(, |\[\r\n\]+)" {
> ! set seen_asmsrc_2 1
> ! exp_continue
> ! }
> ! -re ", " {
> ! exp_continue
> ! }
> ! -re "$gdb_prompt $" {
> ! if {$seen_asmsrc_1 && $seen_asmsrc_2} {
> ! pass "info sources"
> ! } else {
> ! fail "info sources"
> ! }
> ! }
> ! timeout {
> ! fail "info sources (timeout)"
> ! }
> ! }
> !
>
> # Try 'info line'
> gdb_test "info line" \