public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/25857] New: Partial symtab expansion state influences lookup results
@ 2020-04-20  6:34 vries at gcc dot gnu.org
  2020-08-09 20:45 ` [Bug symtab/25857] " tromey at sourceware dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: vries at gcc dot gnu.org @ 2020-04-20  6:34 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=25857

            Bug ID: 25857
           Summary: Partial symtab expansion state influences lookup
                    results
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: symtab
          Assignee: unassigned at sourceware dot org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

Consider the following test-case:
...
$ cat main.c
int
main ()
{
  return 0;
}
$ cat test.c
static int aaa = 1;
$ cat test2.c
static int aaa = 2;
...

Compiled like this:
...
$ gcc main.c test.c test2.c -g
...

When doing a contextless print of aaa, we get:
...
$ gdb -batch a.out -ex "print aaa"
$1 = 2
...
Same with -readnow.

But when we first expand the psymtab for test.c, we get instead:
...
$ gdb -batch a.out -ex "maint expand-symtab test.c" -ex "print aaa"
$1 = 1
...

This is due to lookup_symbol_in_objfile:
...
/* Perform the standard symbol lookup of NAME in OBJFILE:                       
   1) First search expanded symtabs, and if not found                           
   2) Search the "quick" symtabs (partial or .gdb_index).                       
   BLOCK_INDEX is one of GLOBAL_BLOCK or STATIC_BLOCK.  */
...

I think it's a bug if presence of partial symtabs and expansion state has
influence on the results of gdb.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug symtab/25857] Partial symtab expansion state influences lookup results
  2020-04-20  6:34 [Bug symtab/25857] New: Partial symtab expansion state influences lookup results vries at gcc dot gnu.org
@ 2020-08-09 20:45 ` tromey at sourceware dot org
  2023-07-19 11:41 ` vries at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: tromey at sourceware dot org @ 2020-08-09 20:45 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=25857

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org

--- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
> I think it's a bug if presence of partial symtabs and expansion state has influence on the results of gdb.

+1

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug symtab/25857] Partial symtab expansion state influences lookup results
  2020-04-20  6:34 [Bug symtab/25857] New: Partial symtab expansion state influences lookup results vries at gcc dot gnu.org
  2020-08-09 20:45 ` [Bug symtab/25857] " tromey at sourceware dot org
@ 2023-07-19 11:41 ` vries at gcc dot gnu.org
  2023-07-19 12:48 ` vries at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: vries at gcc dot gnu.org @ 2023-07-19 11:41 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=25857

--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
Tentative patch, reverse search order:
....
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 0117a2a59d7..7ae4a4b6d51 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2503,6 +2503,15 @@ lookup_symbol_in_objfile (struct objfile *objfile, enum
block_enum block_index,
                              ? "GLOBAL_BLOCK" : "STATIC_BLOCK",
                              name, domain_name (domain));

+  result = lookup_symbol_via_quick_fns (objfile, block_index,
+                                       name, domain);
+  symbol_lookup_debug_printf ("lookup_symbol_in_objfile (...) = %s%s",
+                             result.symbol != NULL
+                             ? host_address_to_string (result.symbol)
+                             : "NULL",
+                             result.symbol != NULL ? " (via quick fns)"
+                             : "");
+
   result = lookup_symbol_in_objfile_symtabs (objfile, block_index,
                                             name, domain);
   if (result.symbol != NULL)
@@ -2513,14 +2522,6 @@ lookup_symbol_in_objfile (struct objfile *objfile, enum
block_enum block_index,
       return result;
     }

-  result = lookup_symbol_via_quick_fns (objfile, block_index,
-                                       name, domain);
-  symbol_lookup_debug_printf ("lookup_symbol_in_objfile (...) = %s%s",
-                             result.symbol != NULL
-                             ? host_address_to_string (result.symbol)
-                             : "NULL",
-                             result.symbol != NULL ? " (via quick fns)"
-                             : "");
   return result;
 }

...

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug symtab/25857] Partial symtab expansion state influences lookup results
  2020-04-20  6:34 [Bug symtab/25857] New: Partial symtab expansion state influences lookup results vries at gcc dot gnu.org
  2020-08-09 20:45 ` [Bug symtab/25857] " tromey at sourceware dot org
  2023-07-19 11:41 ` vries at gcc dot gnu.org
@ 2023-07-19 12:48 ` vries at gcc dot gnu.org
  2023-08-08 18:50 ` vries at gcc dot gnu.org
  2023-08-08 18:57 ` sam at gentoo dot org
  4 siblings, 0 replies; 6+ messages in thread
From: vries at gcc dot gnu.org @ 2023-07-19 12:48 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=25857

--- Comment #3 from Tom de Vries <vries at gcc dot gnu.org> ---
Hmm, the other problem is that readnow expands the symtabs in the order of the
debug info, while selective expansion of symtabs results in a list with
expansion order.

So, with this example:
...
$ cat main.c
int
main (void)
{
  return 0;
}
$ cat test.c
static int aaa = 1;
static int test1 = 1;
$ cat test-2.c
static int aaa = 2;
static int test2 = 2;
...
and:
...
$ gcc -g main.c test.c test-2.c
...
we still have:
...
$ gdb -q -batch a.out -ex "print test1" -ex "print test2" -ex "print aaa"
$1 = 1
$2 = 2
$3 = 2
$ gdb -q -batch a.out -ex "print test2" -ex "print test1" -ex "print aaa"
$1 = 2
$2 = 1
$3 = 1
...

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug symtab/25857] Partial symtab expansion state influences lookup results
  2020-04-20  6:34 [Bug symtab/25857] New: Partial symtab expansion state influences lookup results vries at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-07-19 12:48 ` vries at gcc dot gnu.org
@ 2023-08-08 18:50 ` vries at gcc dot gnu.org
  2023-08-08 18:57 ` sam at gentoo dot org
  4 siblings, 0 replies; 6+ messages in thread
From: vries at gcc dot gnu.org @ 2023-08-08 18:50 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=25857

--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
Filed the readnow issue as PR30738.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug symtab/25857] Partial symtab expansion state influences lookup results
  2020-04-20  6:34 [Bug symtab/25857] New: Partial symtab expansion state influences lookup results vries at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2023-08-08 18:50 ` vries at gcc dot gnu.org
@ 2023-08-08 18:57 ` sam at gentoo dot org
  4 siblings, 0 replies; 6+ messages in thread
From: sam at gentoo dot org @ 2023-08-08 18:57 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=25857

Sam James <sam at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://sourceware.org/bugz
                   |                            |illa/show_bug.cgi?id=30738

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-08-08 18:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-20  6:34 [Bug symtab/25857] New: Partial symtab expansion state influences lookup results vries at gcc dot gnu.org
2020-08-09 20:45 ` [Bug symtab/25857] " tromey at sourceware dot org
2023-07-19 11:41 ` vries at gcc dot gnu.org
2023-07-19 12:48 ` vries at gcc dot gnu.org
2023-08-08 18:50 ` vries at gcc dot gnu.org
2023-08-08 18:57 ` sam at gentoo dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).