Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Basile Starynkevitch <basile@starynkevitch.net>
To: Simon Marchi <simark@simark.ca>, Eli Zaretskii <eliz@gnu.org>
Cc: gdb@sourceware.org, team@refpersys.org
Subject: Re: GDB variants accepting plugins (to the debugger) ?
Date: Fri, 30 Jan 2026 18:03:26 +0100	[thread overview]
Message-ID: <e866a1d29cdf30c67aa83f67533f33129af2ce26.camel@starynkevitch.net> (raw)
In-Reply-To: <b8f96877-0698-42f8-9c6c-7b12e3971e4f@simark.ca>

On Fri, 2026-01-30 at 10:35 -0500, Simon Marchi via Gdb wrote:
> 
> 
> On 2026-01-30 08:33, Eli Zaretskii via Gdb wrote:
> > > From: Basile Starynkevitch <basile@starynkevitch.net>
> > > Cc: team@refpersys.org
> > > Date: Fri, 30 Jan 2026 14:13:51 +0100
> > > 
> > > I am using GDB-17.1 on Linux/Debian/x86-64 to debug a C++ coded, GPL licensed, inference engine
> > > 
> > > 
> > > Is there any GDB variant accepting plugins to the debugger process
> > > (these could be definitely useful to display C++ data in a nice way, std::vector or std::map instances come to mind immediately).
> > > 
> > > I do know that GDB accept eg Guile or Python scripts.
> > > But coding manually a Python or Guile function for every important C++ classes of a software is very time consuming
> > 
> > Did you read the node "Auto-loading extensions" in the GDB manual?
> > GDB installs such an auto-loaded extension for standard C++ classes,
> > which actually uses printers.py provided by GCC/libstdc++
> > distribution.  But you can use the same mechanism to provide
> > extensions for your classes, if needed.
> 
> Here's the file Eli is referring to, for libstdc++:
> 
> https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/python/libstdcxx/v6/printers.py;hb=HEAD
> 
> And here is the API it uses:
> 
> https://sourceware.org/gdb/current/onlinedocs/gdb.html/Pretty-Printing.html
> 
> Simon

I am (perhaps incorrectly) understanding that I could inside the ELF executable embed some ELF section containing Python code for GDB.

https://sourceware.org/gdb/current/onlinedocs/gdb.html/dotdebug_005fgdb_005fscripts-section.html
mention something. I don't understand if the script file name should be an absolute path, or a relative one?

If the Python script is a relative path, is it relative the working directory of GDB or of the debugged process?

Does anyone has some concrete toy -preferably opensource- example (for an open source C++ program, on Linux, and how to link that program 
to add the ELF sections containing Python code for the GDB debugger)?

Thanks
-- 

Basile STARYNKEVITCH                    basile AT starynkevitch DOT net
8 rue de la Faïencerie                       http://starynkevitch.net/Basile/  
92340 Bourg-la-Reine                         https://github.com/bstarynk
France                                https://github.com/RefPerSys/RefPerSys
                  https://orcid.org/0000-0003-0908-5250

  reply	other threads:[~2026-01-30 17:04 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-30 13:13 Basile Starynkevitch
2026-01-30 13:33 ` Eli Zaretskii via Gdb
2026-01-30 15:35   ` Simon Marchi via Gdb
2026-01-30 17:03     ` Basile Starynkevitch [this message]
2026-01-30 17:16       ` Simon Marchi via Gdb
2026-01-30 20:12 ` Tom Tromey
2026-01-31  2:36   ` Matt Rice via Gdb
2026-01-31 17:00     ` Tom Tromey
2026-02-02 13:49       ` Jan Vrany via Gdb

Reply instructions:

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

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

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e866a1d29cdf30c67aa83f67533f33129af2ce26.camel@starynkevitch.net \
    --to=basile@starynkevitch.net \
    --cc=eliz@gnu.org \
    --cc=gdb@sourceware.org \
    --cc=simark@simark.ca \
    --cc=team@refpersys.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox