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

Re: [XenPPC] [RFC] GDB "O" packets



On Mon, Aug 28, 2006 at 09:38:08AM -0500, Hollis Blanchard wrote:
 
> You probably want to avoid serial_puts() if GDB is attached, no?
> Otherwise, you'll be sending "garbage" (i.e. non-packet data) down the
> serial line to GDB.
> 
> Rather than including gdbstub.h here, you might do something like this:
>       if (in_debugger())
>               debug_puts(sercon_handle, str);
>       else
>               serial_puts(sercon_handle, str);

but in_debugger() and debug_puts() need to come from somewhere and
gdbstub.h makes sense or am I missing the point?

> In fact, it might be worth adding another flag to the serial handles
> (see e.g. SERHND_COOKED), and intercepting inside serial_puts(). The
> only problem there is that serial_putc() would bypass this, but as you
> can see practically speaking there aren't any callers.

so something like:
void serial_puts(int handle, const char *s)
{
    struct serial_port *port = &com[handle & SERHND_IDX];
    unsigned long flags;
    char c;

    if ( (handle == -1) || !port->driver || !port->driver->putc )
        return;

    if ( (handle & SERHND_DEBUGGER) && in_debugger() ) {
        gdb_puts(s);
        return;
    }
    ....
}

Actually that seems pretty nice as it means that the debug messages get
push to gdb when console==gdb.

I'll have a play.  Thanks Hollis.

Yours Tony

   linux.conf.au       http://linux.conf.au/ || http://lca2007.linux.org.au/
   Jan 15-20 2007      The Australian Linux Technical Conference!


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.