Bug 31229 - [gdb/testsuite, powerpc64le] FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source thr" (timeout)
Summary: [gdb/testsuite, powerpc64le] FAIL: gdb.linespec/explicit.exp: complete after ...
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 13.1
: P2 normal
Target Milestone: 16.1
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-01-10 14:31 UTC by Tom de Vries
Modified: 2024-12-20 05:18 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:
Project(s) to access:
ssh public key:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom de Vries 2024-01-10 14:31:00 UTC
In OBS, on powerpc64le I ran into:
...
(gdb) b -source thread_pointer.h FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source thr" (timeout)
Quit^M
(gdb) complete b -source thr^M
b -source thread_pointer.h^M
(gdb) FAIL: gdb.linespec/explicit.exp: complete after -source: cmd complete "b -source thr"
...

My guess is that the file thread_pointer.h is a glibc file.
Comment 1 Tom de Vries 2024-01-10 14:31:59 UTC
With 13.2-based package.
Comment 2 Tom de Vries 2024-12-17 14:12:37 UTC
On openSUSE Leap 15.6 ppc64le, I ran into:
...
(gdb) b -source thread_pointer.h FAIL: gdb.linespec/explicit.exp: complete after -source: tab complete "b -source thr"
Quit^M
...

I could reproduce this, and found in the debug info of the executable:
...
 The File Name Table (offset 0xb5):
  Entry Dir     Time    Size    Name
  1     0       0       0       abi-note.c
  2     1       0       0       types.h
  3     2       0       0       stdint-intn.h
  4     2       0       0       stdint-uintn.h
  5     3       0       0       elf.h
  6     4       0       0       thread_pointer.h
...

Looks like "thr" is not unique enough.
Comment 4 Sourceware Commits 2024-12-20 05:17:07 UTC
The master branch has been updated by Tom de Vries <vries@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=45b4f0499cbea2ed0efb2e1e2719617a3734a9ab

commit 45b4f0499cbea2ed0efb2e1e2719617a3734a9ab
Author: Tom de Vries <tdevries@suse.de>
Date:   Fri Dec 20 06:16:55 2024 +0100

    [gdb/testsuite] Use -nostdlib in gdb.linespec/explicit.exp
    
    On openSUSE Leap 15.6 ppc64le-linux, with gdb.linespec/explicit.exp I run
    into:
    ...
    (gdb) b -source thread_pointer.h FAIL: $exp: complete after -source: tab complete "b -source thr"
    Quit^M
    ...
    
    The test-case already contains a related workaround:
    ...
            # Get rid of symbols from shared libraries, otherwise
            # "b -source thr<tab>" could find some system library's
            # source.
            gdb_test_no_output "nosharedlibrary"
    ...
    but that doesn't work in this case because the debug info is in the executable
    itself:
    ...
     The File Name Table (offset 0xb5):
      Entry Dir     Time    Size    Name
      1     0       0       0       abi-note.c
      2     1       0       0       types.h
      3     2       0       0       stdint-intn.h
      4     2       0       0       stdint-uintn.h
      5     3       0       0       elf.h
      6     4       0       0       thread_pointer.h
    ...
    due to debug info in some glibc object file.
    
    Fix this by:
    - using -nostdlib, ensuring only debug info from the three test-case sources
      is present in the executable, and
    - adding a _start wrapping main.
    
    Tested on x86_64-linux and ppc64le-linux.
    
    Reviewed-By: Keith Seitz <keiths@redhat.com>
    
    PR testsuite/31229
    Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31229
Comment 5 Tom de Vries 2024-12-20 05:18:02 UTC
Fixed.