ddd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DDD debugger interface


From: Arnaud Desitter
Subject: Re: DDD debugger interface
Date: Tue, 12 Jun 2001 15:48:17 +0100 (BST)

> 
> Is there any document describing how to plug external command-line
> debugger to DDD? E.g., I have some debugger, much like pydb or perl
> debugger, that I want to be able to use together with DDD. How do I enable
> DDD to talk with this debugger? Where can I get information about this?
> 

Some explanations below posted by Andreas Zeller, the ddd maintainer.

Cheers,
Arnaud

========================================================================

From: Andreas Zeller <address@hidden>
Date: 16 Jun 2000 19:21:41 +0200

> I'd like to ask the following questions:
>   - is it realistic to "hack" ddd to be able to communicate with 
>     a non-standard debugger in a reasonable amount of time (i.e. weeks)? 

Yes.

>   - A glance at the ddd sources showed me that a lot of
>     communication-related stuff is hardcoded into the sources.
>     Are there any plans to use an abstract "debugger description" language
>     instead that would offer the possibility that users (or at least
>     programmers) easily create a ddd interface to a non-standard debugger?

Unfortunately, there are no such plans.  Instead of relying on a
debugger description (which may or may not be appropriate), DDD tries
to infer as many debugger capabilities as possible.  This has the
advantage of supporting even debuggers for which an abstract
description is not available.  (If you take a look at `~/.ddd/log'
when using DDD with DBX, you'll see how DDD probes for DBX features.)

For purposes of DDD, most commercial command-line debuggers can be
considered variants of DBX.  So the easiest thing to support further
command-line debuggers is to extend DBX support.

Here's a roadmap on how and where to proceed:

* Make DDD recognize the debugger prompt.  This can be done by extending
  the `rxprompt' regexp in `rxscan.L'.

* Make DDD recognize the debugger breakpoint info.  See `BreakPoint.C'.

* Make DDD recognize the position info.  See `PosBuffer.C'.

These are the basics.  Starting from there, it's all luxury:

* Commands - the methods in `GDBAgent.C'; `translate_command' in `Command.C'

* Displays - see `value-read.C' and `DispValue.C'.

* Settings - see `settings.C'.  (This is quite a mess.)

Just set it up as far as you need and send us your extensions.  And
feel free to ask any questions.

Greetings,

Andreas

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
01285 884400.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]