On Tue, 2024-07-02 at 18:13 +0200, clipperDB@xxxxxx wrote: > > Hi all > I don't know if it is the right mailing list, but i was wondering if > one could introspect via gdb the content of PGresult. > In my case i got a coredump and when i tried to analyze the core and > try to print the content of PGresult i got incomplete type > I'm using libpq-13.3 (installed via libpq-13.3-1.el8_4.x86_64, > RHEL8.5). Any help would be appreciated (i'm trying to get the > errMesg value of this field) > (gdb) p res > $1 = (PGresult *) 0x7f0718000b80 > (gdb) p *res > $2 = <incomplete type> > (gdb) ptype res > type = struct pg_result { > <incomplete type> > } * > (gdb) explore res > 'res' is a pointer to a value of type 'PGresult' > Continue exploring it as a pointer to a single value [y/n]: y > The value of '*res' is of type 'PGresult' which is a typedef of type > 'pg_result' > The value of '*res' is a struct/class of type 'pg_result' with no > fields. > (gdb) > thanks for your hints > doris https://wiki.postgresql.org/wiki/Developer_FAQ#Why_do_we_use_Node_and_List_to_make_data_structures.3F may be of help. Instead of printing values in gdb format, you can use the next two commands to print out List, Node, and structure contents in a verbose format that is easier to understand. Lists are unrolled into nodes, and nodes are printed in detail. The first prints in a short format, and the second in a long format: (gdb) call print(any_pointer) (gdb) call pprint(any_pointer) The output appears in the server log file, or on your screen if you are running a backend directly without a postmaster. I found that from https://wiki.postgresql.org/wiki/Developer_FAQ#gdb