On 2022/05/27 16:03, lijiang wrote:
>> If no another gdb setting, we will need to rewrite the
parser.
>> So first, I'd like to know whether there is no another setting.
>
> Otherwise, maybe we can patch the gdb code...
>
> That '{...}' is probably printed in c_type_print_base_struct_union().
> And found a comment for c_type_print_base_1() in gdb/c-typeprint.c:
>
> SHOW negative means just print the type name or struct tag if there
> is one. If there is no name, print something sensible but concise
> like "struct {...}".
>
> Just an idea and clue.
I like the good idea.
Just a rough try and I've not tested enough, but this patch might be
somewhat good.
--- gdb-10.2.orig/gdb/c-typeprint.c 2022-05-27 14:49:53.079853333 +0900
+++ gdb-10.2/gdb/c-typeprint.c 2022-05-27 14:47:18.729165094 +0900
@@ -1043,6 +1043,8 @@
struct type_print_options local_flags = *flags;
local_flags.local_typedefs = NULL;
+ show = 1;
+
std::unique_ptr<typedef_hash_table> hash_holder;
if (!flags->raw)
{
This looks more reasonable to me. Could you please post a patch with this fix?
Sure. But more understanding and testing are needed, I will look into it
next week.
Thanks,
Kazu