This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Allow setting breakpoints on inline functions (PR 10738)
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 30 Nov 2011 21:18:48 +0100
- Subject: Re: [RFA] Allow setting breakpoints on inline functions (PR 10738)
- References: <20111129150200.GB3425@redhat.com>
On Tue, 29 Nov 2011 16:02:00 +0100, Gary Benson wrote:
> I'm also interested in feedback about the tests I've
> written, since this is the first time I've worked on the testsuite.
I would prefer definitely a copy in gdb.dwarf2/ . gdb.opt/ I find a bad idea
as it breaks too much across GCC changes. just gcc -S -dA is probably OK.
If there is gdb.dwarf2/ then I would even drop the gdb.opt/ one. Not sure if
it makes sense for non-DWARF targets, the functionality gets tested by the
DWARF targets anyway.
> --- /dev/null
> +++ b/gdb/testsuite/gdb.opt/inline-break.exp
...
> +if { [prepare_for_testing $testfile.exp $testfile $testfile.c \
> + {debug optimize=-O2 additional_flags=-Winline}] } {
This -Winline is questionable.
You make the .c file compatible even if __GNUC__ is not defined but then you
use GCC-specific -Winline option. Either just make the testcase whole
GCC-specific or make a fallback if the compilation with -Winline fails try
also non-Winline. Or maybe just drop that -Winline, there is no -Werror
anyway so it was more just for the testcase development.
As I suggested the gdb.dwarf2/ way this whole -Winline is offtopic then.
> +#
> +# func1 is a static inlined function that is called once.
> +# The result should be a single-location breakpoint.
> +#
> +gdb_test "break func1" \
> + "Breakpoint.*at.* file .*$testfile\.c, line.*"
As you use "" and not {} you should use \\.c and not \.c . This way it is the
same as .c .
It is there several times.
> +# func2 is a non-static inlined function that is called once.
> +# The result should be a breakpoint with two locations: the
> +# out-of-line function and the single inlined instance.
> +#
> +gdb_test "break func2" \
> + "Breakpoint.*at.*func2.*(2 locations).*"
You wanted to use \\( and \\) here.
It is there several times.
Thanks,
Jan