From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5394 invoked by alias); 2 Jan 2005 16:59:14 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 5323 invoked from network); 2 Jan 2005 16:59:07 -0000 Received: from unknown (HELO wproxy.gmail.com) (64.233.184.194) by sourceware.org with SMTP; 2 Jan 2005 16:59:07 -0000 Received: by wproxy.gmail.com with SMTP id 50so181916wri for ; Sun, 02 Jan 2005 08:59:07 -0800 (PST) Received: by 10.54.7.6 with SMTP id 6mr267208wrg; Sun, 02 Jan 2005 08:59:06 -0800 (PST) Received: by 10.54.32.47 with HTTP; Sun, 2 Jan 2005 08:59:06 -0800 (PST) Message-ID: <6251c71605010208593729d960@mail.gmail.com> Date: Sun, 02 Jan 2005 16:59:00 -0000 From: Thomas Elam Reply-To: Thomas Elam To: gdb@sources.redhat.com Subject: What are the prescribed ways to extend gdb? Examples? Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2005-01/txt/msg00009.txt.bz2 What are the currently prescribed ways to extend gdb? I am interested in adding to gdb: (1) a full scripting language (not tcl) or (2) a new GUI front-end. These additions could use the same or different methods of extending gdb. I *might* want to link my code in with gdb. I much prefer a machine-oriented interface to a human-oriented one. I have found the following references about extending gdb: [1] Section 4.2 of the `GDB Internals' document, `UI-Independent Output--the ui_out Function': http://sources.redhat.com/gdb/current/onlinedocs/gdbint_4.html#SEC19 [2] Section 24 of the `Debugging with GDB' document, `The GDB/MI Interface': http://sources.redhat.com/gdb/current/onlinedocs/gdb_25.html#SEC223 This is also described in the part of GDB's info page related to the `-interface' option. [3] Section A of the `GDB Internals' document, `GDB Currently available observers': http://sources.redhat.com/gdb/current/onlinedocs/gdbint_19.html#SEC188 It looks like [2] is the way to go for people who are not maintainers of gdb. Examples? I've found Insight, but I think it links into gdb and is apparently hard to maintain for that reason. As far as I know, most or all of the front- ends to gdb open gdb as a separate process and parse its human-oriented output, which is not ideal, with the exception of an interface written by Moses Dejong. He describes his scripting interface to gdb in this paper: http://www.tcl.tk/community/tcl2004/Tcl2003papers/dejong.pdf Near the end of the paper, he tells where the Tcl source code for the interface can be found: http://www.uncounted.org/tcl/gdbmi-0.1.tgz It uses version 1 of GDB's MI (machine-oriented) interface. I've tried this Tcl interface with the Debian package gdb-6.3-5 . It seems to work, but I have to work with it some more, since I don't remember much Tcl. Any advice for me?