public inbox for [email protected]  
help / color / mirror / Atom feed
From: Reid Thompson <[email protected]>
To: [email protected]
To: [email protected]
Subject: Re: printing PGresult content with gdb
Date: Wed, 03 Jul 2024 08:02:06 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <trinity-3ee0d178-9734-4afd-8657-c348e860763e-1719936784801@3c-app-mailcom-bs16>
References: <trinity-3ee0d178-9734-4afd-8657-c348e860763e-1719936784801@3c-app-mailcom-bs16>

On Tue, 2024-07-02 at 18:13 +0200, [email protected] 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.3...
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






view thread (4+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: printing PGresult content with gdb
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox