[testsuite] Fix testsuite regression by: Do not skip prologue for asm (.S) files
Commit Message
Hi,
I have somehow missed gdb.asm/asm-source.exp PASS->FAIL even on x86_64.
It has no longer valid assumption that "break" breaks after the prologue even
in assembler. So I have changed this assumption of the testfile.
Tested it FAIL->PASSes on x86_64, ppc64 and s390x.
OK for check-in?
Jan
gdb/testsuite/
2015-06-29 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.asm/asm-source.exp (f at main): Stop at gdbasm_enter.
(n at main): New.
* gdb.asm/asmsrc1.s: Add comment "mark: main enter".
Comments
Jan Kratochvil <jan.kratochvil@redhat.com> writes:
> OK for check-in?
>
Yes, it is OK.
>
> Jan
> gdb/testsuite/
> 2015-06-29 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> * gdb.asm/asm-source.exp (f at main): Stop at gdbasm_enter.
> (n at main): New.
> * gdb.asm/asmsrc1.s: Add comment "mark: main enter".
What does "f at main" and "n at main" in parenthesises mean here?
On Fri, 10 Jul 2015 10:43:24 +0200, Yao Qi wrote:
> Jan Kratochvil <jan.kratochvil@redhat.com> writes:
> > * gdb.asm/asm-source.exp (f at main): Stop at gdbasm_enter.
> > (n at main): New.
> > * gdb.asm/asmsrc1.s: Add comment "mark: main enter".
>
> What does "f at main" and "n at main" in parenthesises mean here?
Names of the testcases involved, it was always written this way for whatever
reason, unless it has changed:
+gdb_test "f" "asmsrc1\[.\]s:$line_enter.*gdbasm_enter" "f at main"
+
+# Execute the `n' command.
+gdb_test "n" "$line_main\[ \]*.*several_nops" "n at main"
So I guess it is still OK for check-in with this ChangeLog.
Thanks,
Jan
On Fri, 10 Jul 2015 10:43:24 +0200, Yao Qi wrote:
> Yes, it is OK.
Checked in:
218a5a11a07268228484af88666739852ba36552
And for 7.10:
8746ea769d67bf186d582d892cf37da42bc95ea9
Thanks,
Jan
Jan Kratochvil <jan.kratochvil@redhat.com> writes:
> Names of the testcases involved, it was always written this way for whatever
> reason, unless it has changed:
>
> +gdb_test "f" "asmsrc1\[.\]s:$line_enter.*gdbasm_enter" "f at main"
> +
> +# Execute the `n' command.
> +gdb_test "n" "$line_main\[ \]*.*several_nops" "n at main"
I don't know such convention of writing changelog entry for .exp changes.
We usually put the proc or variable name into the parenthesis, like,
* gdb.foo/bar.exp (proc_name): XXXX
Is it documented somewhere?
On Fri, 10 Jul 2015 16:32:39 +0200, Yao Qi wrote:
> I don't know such convention of writing changelog entry for .exp changes.
> We usually put the proc or variable name into the parenthesis, like,
>
> * gdb.foo/bar.exp (proc_name): XXXX
That also happenes/ed.
> Is it documented somewhere?
I do not know, in GDB I always follow past practices (which are not always
good):
2011-05-20 Pierre Muller <muller@ics.u-strasbg.fr>
[...]
* gdb.base/default.exp (show convenience): Use double
^^^^^^^^^^^^^^^^
quote pattern for regular expressions.
[...]
2011-01-09 Andreas Schwab <schwab@linux-m68k.org>
* gdb.threads/tls.exp ("info address me"): Fix expected output.
^^^^^^^^^^^^^^^
Somehow I think the intention of the ChangeLog entries is to identify where
the change happened, so both test case name or subroutine name is appropriate,
depending on what matches better. At least I saw it so before.
Jan
@@ -275,6 +275,7 @@ if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
}
# Collect some line numbers.
+set line_enter [expr [gdb_get_line_number "main enter" "asmsrc1.s"] + 1]
set line_main [expr [gdb_get_line_number "main start" "asmsrc1.s"] + 1]
set line_call_foo2 [expr [gdb_get_line_number "call foo2" "asmsrc1.s"] + 1]
set line_search_comment [expr [gdb_get_line_number "search" "asmsrc1.s"] + 1]
@@ -298,7 +299,10 @@ if ![runto_main] then {
}
# Execute the `f' command and see if the result includes source info.
-gdb_test "f" "asmsrc1\[.\]s:$line_main.*several_nops" "f at main"
+gdb_test "f" "asmsrc1\[.\]s:$line_enter.*gdbasm_enter" "f at main"
+
+# Execute the `n' command.
+gdb_test "n" "$line_main\[ \]*.*several_nops" "n at main"
# See if we properly `next' over a macro with several insns.
gdb_test "n" "$line_call_foo2\[ \]*.*foo2" "next over macro"
@@ -34,6 +34,7 @@
.global main
gdbasm_declare main
+ comment "mark: main enter"
gdbasm_enter
comment "Call a macro that consists of several lines of assembler code."