This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: parse output from `info sources' one filename at a time


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" \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]