emacs-devel
[Top][All Lists]
Advanced

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

Re: gdba probs


From: Nick Roberts
Subject: Re: gdba probs
Date: Sun, 15 Dec 2002 00:36:02 +0000

Stefan Monnier writes:

 > I have no idea what this entails, but maybe it is related to another
 > wish of mine: to make it usable when running "gdb --fullname foo".
 > Right now, it seems that if gdb is not started with "--annotate=2"
 > gdba just "freezes" (typing stuff at gdb prompt leads nowhere).

I've looked at it now. 

It "freezes" because when a gdb command is typed in the GUD buffer goes onto
the queue (C-h v gdb-input-queue). It goes on the input queue because
gdb-instance-prompting is nil therefore thinks its not ready for
input. gdb-instance-prompting is nil because it hasn't received the prompt
annotation. It hasn't received the prompt annotation because its been called
with "--fullname".

> > > > @@ -2344,6 +2347,42 @@
> > > >  
> > > >  (defun gud-filter (proc string)
> > > >    ;; Here's where the actual buffer insertion is done
> > > > +  (when (and gud-first-time (string-match
> > > > +       "\n\032\032[a-z]" string))
> > > 
> > > What if DBX outputs this same sequence?
> > 
> > You take the patch too literally. It should have something like:
> > 
> > (string-match "\n\032\032pre-prompt\|\n\032\032breakpoints-invalid" string)

> And?  Same thing: some other debugger might use the exact same sequence.
> Better put the test in gud-gdb-marker-filter so there's not ambiguity
> and so the generic part of the code stays cleaner.

I see now that "^Z^Z" is some kind of universal marker, I had thought it was
GDB specific.

> Better put the test in gud-gdb-marker-filter so there's not ambiguity
> and so the generic part of the code stays cleaner.
> ...

It might be easier to approach it from the other end i.e add an annotation
rule for gdb-output-burst to accommodate "--fullname".

> The ultimate goal is to merge M-x gdb and M-x gdba, but it doesn't
> have to be done in a single step.  I think the first step is to make
> sure that both work (maybe with quirks) regardless of whether
> --annotate=2 was used or not.

I think I understand now. I'll go away and think about it.

Miles Bader writes :

> into a separate function to avoid cluttering up gud-filter, something
> like `gdba-take-over-process' or something.  It could even be an
> autoloaded function in gdb-ui.el.
  ^^^^^^^^^^

So gdb-ui.el wouldn't get loaded unless gdb was invoked with annotations, right?
Thats a good point, I hadn't thought of that. 

Nick



reply via email to

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