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).