[gdb/testsuite] Analyze non-leaf fn in gdb.base/unwind-on-each-insn.exp
authorTom de Vries <tdevries@suse.de>
Wed, 25 Jan 2023 12:27:03 +0000 (13:27 +0100)
committerTom de Vries <tdevries@suse.de>
Wed, 25 Jan 2023 12:27:03 +0000 (13:27 +0100)
commitebef88edb6474fa9568123645b6762bcd6872702
tree3c01c6e80e0c492a509eac36c72d6a32f3b86a40
parent5f6ec13ffe8ae4db04419bf66868e082df73634d
[gdb/testsuite] Analyze non-leaf fn in gdb.base/unwind-on-each-insn.exp

In test-case gdb.base/unwind-on-each-insn.exp, we stepi through function foo
to check various invariants at each insn, in particular hoping to excercise
insns that modify stack and frame pointers.

Function foo is a leaf function, so add a non-leaf function bar, and step
through it as well (using nexti instead of stepi).

With the updated test-case, on powerpc64le-linux, I run into PR tdep/30049:
...
FAIL: bar: instruction 5: bt 2
FAIL: bar: instruction 5: up
FAIL: bar: instruction 5: [string equal $fid $::main_fid]
FAIL: bar: instruction 6: bt 2
FAIL: bar: instruction 6: up
FAIL: bar: instruction 6: [string equal $fid $::main_fid]
...

Tested on:
- x86_64-linux (-m64 and -m32)
- s390x-linux (-m64 and -m31)
- aarch64-linux
- powerpc64le-linux
gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c
gdb/testsuite/gdb.base/unwind-on-each-insn.c
gdb/testsuite/gdb.base/unwind-on-each-insn.exp