[gdb/testsuite] Fix gdb.base/ending-run.exp on manjaro linux

Message ID 20240314095710.23415-1-tdevries@suse.de
State Committed
Headers
Series [gdb/testsuite] Fix gdb.base/ending-run.exp on manjaro linux |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed

Commit Message

Tom de Vries March 14, 2024, 9:57 a.m. UTC
  On aarch64-linux, using the manjaro linux distro, I run into:
...
(gdb) next^M
32      }^M
(gdb) next^M
0x0000fffff7d67b80 in ?? () from /usr/lib/libc.so.6^M
(gdb) FAIL: gdb.base/ending-run.exp: step out of main
...

What happens here is described in detail in this clause:
...
    -re "0x.*\\?\\? \\(\\) from /lib/powerpc.*$gdb_prompt $" {
	# This case occurs on Powerpc when gdb steps out of main and the
	# needed debug info files are not loaded on the system, preventing
	# GDB to determine which function it reached (__libc_start_call_main).
	# Ideally, the target system would have the necessary debugging
	# information, but in its absence, GDB's behavior is as expected.
	...
    }
...
but the clause only matches for powerpc.

Fix this by:
- making the regexp generic enough to also match /usr/lib/libc.so.6, and
- updating the comment to not mention powerpc.

Tested on aarch64-linux.

PR testsuite/31450
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31450
---
 gdb/testsuite/gdb.base/ending-run.exp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


base-commit: 2618e5f141c89c15f5b13fd0b79312f1bc723bc9
  

Comments

Tom de Vries March 28, 2024, 7:27 a.m. UTC | #1
On 3/14/24 10:57, Tom de Vries wrote:
> On aarch64-linux, using the manjaro linux distro, I run into:
> ...
> (gdb) next^M
> 32      }^M
> (gdb) next^M
> 0x0000fffff7d67b80 in ?? () from /usr/lib/libc.so.6^M
> (gdb) FAIL: gdb.base/ending-run.exp: step out of main
> ...
> 
> What happens here is described in detail in this clause:
> ...
>      -re "0x.*\\?\\? \\(\\) from /lib/powerpc.*$gdb_prompt $" {
> 	# This case occurs on Powerpc when gdb steps out of main and the
> 	# needed debug info files are not loaded on the system, preventing
> 	# GDB to determine which function it reached (__libc_start_call_main).
> 	# Ideally, the target system would have the necessary debugging
> 	# information, but in its absence, GDB's behavior is as expected.
> 	...
>      }
> ...
> but the clause only matches for powerpc.
> 
> Fix this by:
> - making the regexp generic enough to also match /usr/lib/libc.so.6, and
> - updating the comment to not mention powerpc.
> 
> Tested on aarch64-linux.
> 

Pushed.

Thanks,
- Tom

> PR testsuite/31450
> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31450
> ---
>   gdb/testsuite/gdb.base/ending-run.exp | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
> index 9c80de6879b..b9a72b0e70e 100644
> --- a/gdb/testsuite/gdb.base/ending-run.exp
> +++ b/gdb/testsuite/gdb.base/ending-run.exp
> @@ -206,8 +206,8 @@ gdb_test_multiple "next" "step out of main" {
>   	# This is what happens on system using uClibc.
>   	pass "step out of main"
>       }
> -    -re "0x.*\\?\\? \\(\\) from /lib/powerpc.*$gdb_prompt $" {
> -	# This case occurs on Powerpc when gdb steps out of main and the
> +    -re -wrap "$hex in \\?\\? \\(\\) from \[^\r\n\]+" {
> +	# This case occurs when gdb steps out of main and the
>   	# needed debug info files are not loaded on the system, preventing
>   	# GDB to determine which function it reached (__libc_start_call_main).
>   	# Ideally, the target system would have the necessary debugging
> 
> base-commit: 2618e5f141c89c15f5b13fd0b79312f1bc723bc9
  

Patch

diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
index 9c80de6879b..b9a72b0e70e 100644
--- a/gdb/testsuite/gdb.base/ending-run.exp
+++ b/gdb/testsuite/gdb.base/ending-run.exp
@@ -206,8 +206,8 @@  gdb_test_multiple "next" "step out of main" {
 	# This is what happens on system using uClibc.
 	pass "step out of main"
     }
-    -re "0x.*\\?\\? \\(\\) from /lib/powerpc.*$gdb_prompt $" {
-	# This case occurs on Powerpc when gdb steps out of main and the
+    -re -wrap "$hex in \\?\\? \\(\\) from \[^\r\n\]+" {
+	# This case occurs when gdb steps out of main and the
 	# needed debug info files are not loaded on the system, preventing
 	# GDB to determine which function it reached (__libc_start_call_main).
 	# Ideally, the target system would have the necessary debugging