public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug symtab/30845] New: Make gdb more tolerant for slightly different type strings in C++
@ 2023-09-13 7:55 plasmahh at gmx dot net
2023-09-13 12:56 ` [Bug symtab/30845] " tromey at sourceware dot org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: plasmahh at gmx dot net @ 2023-09-13 7:55 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=30845
Bug ID: 30845
Summary: Make gdb more tolerant for slightly different type
strings in C++
Product: gdb
Version: HEAD
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: symtab
Assignee: unassigned at sourceware dot org
Reporter: plasmahh at gmx dot net
Target Milestone: ---
I am not sure if this is 100% correct, but in the end the point is that the
type text for commands like ptype or casting to something should work better
for strings generated by (other) compilers ( and maybe as well as hand crafted
ones ).
As far as I can see it, the informtion from "info types" as well as the one
displayed when e.g. printing the address of an object with "p &var" is
assembled from compiler provided strings. These can differ slightly from the
way gdb expects type strings.
For example, a type output from gcc like "D<D<D<int> > >" will be written as
"D<D<D<int>>>" in the IAR compiler. gdb does not like that string and says "A
syntax error in expression, near `>>'." ... Maybe because in ancient versions
of C++ >> was not supported? Anyways, it would be nice if gdb could support
both ways.
On a similar note, compilers like IAR like to output integers as template
arguments in a way you would probably write them in code too, to make the type
clear.
For example, writing in code
std::conditional_t<true, uint64_t, std::chrono::nanoseconds>
will produce the symbol
std::conditional<true, unsigned long long, std::chrono::duration<long long,
std::ratio<1, 1000000000> > >
when compiled with gcc, but when compiled with IAR it looks like
conditional<true, unsigned long long, std::chrono::duration<signed long long,
std::ratio<1LL, 1'000'000'000LL>>>
Note how the integer is using the single ticks as well as the suffix, and the
long long is explicitly naming the signed.
In the end, gdb should ideally always be able to take the output of "p &var"
and parse it correctly to yield something that you can then use ( e.g. to p
again).
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug symtab/30845] Make gdb more tolerant for slightly different type strings in C++
2023-09-13 7:55 [Bug symtab/30845] New: Make gdb more tolerant for slightly different type strings in C++ plasmahh at gmx dot net
@ 2023-09-13 12:56 ` tromey at sourceware dot org
2024-04-20 1:23 ` tromey at sourceware dot org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: tromey at sourceware dot org @ 2023-09-13 12:56 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=30845
Tom Tromey <tromey at sourceware dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2023-09-13
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
CC| |tromey at sourceware dot org
--- Comment #1 from Tom Tromey <tromey at sourceware dot org> ---
cp-name-parser.y needs some updates
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug symtab/30845] Make gdb more tolerant for slightly different type strings in C++
2023-09-13 7:55 [Bug symtab/30845] New: Make gdb more tolerant for slightly different type strings in C++ plasmahh at gmx dot net
2023-09-13 12:56 ` [Bug symtab/30845] " tromey at sourceware dot org
@ 2024-04-20 1:23 ` tromey at sourceware dot org
2024-05-14 20:01 ` cvs-commit at gcc dot gnu.org
2024-05-14 20:02 ` tromey at sourceware dot org
3 siblings, 0 replies; 5+ messages in thread
From: tromey at sourceware dot org @ 2024-04-20 1:23 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=30845
--- Comment #2 from Tom Tromey <tromey at sourceware dot org> ---
I suppose there are two bugs here.
I have a patch for the separator problem but not the ">>" problem.
Name canonicalization is somewhat fragile as C++ evolves.
There may not be a good way to do better though.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug symtab/30845] Make gdb more tolerant for slightly different type strings in C++
2023-09-13 7:55 [Bug symtab/30845] New: Make gdb more tolerant for slightly different type strings in C++ plasmahh at gmx dot net
2023-09-13 12:56 ` [Bug symtab/30845] " tromey at sourceware dot org
2024-04-20 1:23 ` tromey at sourceware dot org
@ 2024-05-14 20:01 ` cvs-commit at gcc dot gnu.org
2024-05-14 20:02 ` tromey at sourceware dot org
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-14 20:01 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=30845
--- Comment #3 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom Tromey <tromey@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a4b7c5f5cda16795dd8be11494e8f1b5de21d69f
commit a4b7c5f5cda16795dd8be11494e8f1b5de21d69f
Author: Tom Tromey <tom@tromey.com>
Date: Fri Apr 19 20:22:11 2024 -0600
Implement C++14 numeric separators
C++14 allows the use of the apostrophe as a numeric separator; that
is, "23000" and "23'000" represent the same number. This patch
implements this for gdb's C++ parser and the C++ name canonicalizer.
I did this unconditionally for all C variants because I think it's
unambiguous.
For the name canonicalizer, there's at least one compiler that can
emit constants with this form, see bug 30845.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23457
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30845
Approved-By: John Baldwin <jhb@FreeBSD.org>
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug symtab/30845] Make gdb more tolerant for slightly different type strings in C++
2023-09-13 7:55 [Bug symtab/30845] New: Make gdb more tolerant for slightly different type strings in C++ plasmahh at gmx dot net
` (2 preceding siblings ...)
2024-05-14 20:01 ` cvs-commit at gcc dot gnu.org
@ 2024-05-14 20:02 ` tromey at sourceware dot org
3 siblings, 0 replies; 5+ messages in thread
From: tromey at sourceware dot org @ 2024-05-14 20:02 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=30845
Tom Tromey <tromey at sourceware dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |15.1
Resolution|--- |FIXED
Status|NEW |RESOLVED
--- Comment #4 from Tom Tromey <tromey at sourceware dot org> ---
Fixed.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-05-14 20:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-13 7:55 [Bug symtab/30845] New: Make gdb more tolerant for slightly different type strings in C++ plasmahh at gmx dot net
2023-09-13 12:56 ` [Bug symtab/30845] " tromey at sourceware dot org
2024-04-20 1:23 ` tromey at sourceware dot org
2024-05-14 20:01 ` cvs-commit at gcc dot gnu.org
2024-05-14 20:02 ` tromey at sourceware 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).