Fix timeout with maint print objfiles

I'm seeing timeouts from gdb.rust/traits.exp when we attempt to print
things with "maint print objfiles".

This happens for two reasons:

1 - GDB does not explicitly split each entry into its own line, but rather
    relies on the terminal's width to insert line breaks.

2 - When running the GDB testsuite, such width may be unlimited, which will
    prevent GDB from inserting any line breaks.

As a result, the output may be too lengthy and will come in big lines.  Tweak
the support library to match the patterns line-by-line, which gives us more
time to match things. Also fix GDB's output to print one entry per line,
regardless of the terminal width.

A similar approach was used in another testcase using the same command (commit
eaeaf44cfdc9a4096a0dd52fa0606f29d4bfd48e). With the new line breaks, we don't
need a particular pattern, so clean up that test as well.

gdb/ChangeLog:

2021-04-27  Luis Machado  <luis.machado@linaro.org>

	* psymtab.c (psymbol_functions::dump): Output newline.
	* symmisc.c (dump_objfile): Likewise.

gdb/testsuite/ChangeLog:

2021-04-27  Luis Machado  <luis.machado@linaro.org>

	* gdb.base/maint.exp: Drop a pattern that is not needed.
	* lib/gdb.exp (readnow): Match line-by-line.
This commit is contained in:
Luis Machado
2021-04-01 17:00:43 -03:00
parent 4b62a30d5b
commit b9f90c72ee
6 changed files with 26 additions and 15 deletions

View File

@ -885,8 +885,7 @@ psymbol_functions::dump (struct objfile *objfile)
printf_filtered ("%s at ",
psymtab->filename);
gdb_print_host_address (psymtab, gdb_stdout);
printf_filtered (", ");
wrap_here (" ");
printf_filtered ("\n");
}
printf_filtered ("\n\n");
}