Re: gdb over Firewire

From: Gerald Heinig <gheinig_at_syskonnect.de>
Date: Thu, 17 Feb 2005 09:34:46 +0100
Greg 'groggy' Lehey wrote:
> On Friday, 11 February 2005 at 10:11:31 +0100, Gerald Heinig wrote:
> 
>>Hello Current'ers,
>>
>>I'm trying to get two-machine kernel debugging over Firewire working,
>>unfortunately without much luck so far. dconschat over Firewire works
>>fine, but gdb won't attach, complaining about get_tty_state failed,
>>among other things.
>>Is kernel gdb over Firewire a -current-only feature?
> 
> 
> Sorry for the slow reply; I've been busy.
> 
> No, it's not a current-only feature.  It used to work, but I've had a
> lot of difficulty since the introduction of the new gdb framework.

[sorry about the off-topic post to -current]

Hi Greg,

thanks for the reply. I've actually got it to work now. I compiled dcons 
and dcons_crom into the kernel and upgraded to 5.3-STABLE on the 
debugging machine. In addition to this, there was something wrong with 
my target machine setup. I must have messed up the boot flags a while 
ago and forgotten about it, because the kernel kept waiting for remote 
gdb attach before it had probed the Firewire driver, which of course 
didn't work. Reinstalling a fresh 5.3-RELEASE on the target solved that 
problem.

The kgdb on 5.3-RELEASE doesn't support the IP forwarding functionality 
for remote devices; that's what the upgrade to -STABLE fixed.

So, 'standard' two-machine debugging works for me now.
However, what I'm _really_ interested in is the alternative 
non-cooperative Firewire debugging scheme you describe in your BSDCon paper.
Mine almost works, in that I can start up kgdb over /dev/fwmem0.0
However, there's no stack. What I get is:

# kgdb -c /dev/fwmem0.0 kernel.debug
[gdb copyright stuff]
0x00000000 in ?? ()
(kgdb)

Any ideas as to what I'm doing wrong?

Cheers,
Gerald

> 
> Try this:
> 
>   $ sysctl debug.kdb
>   debug.kdb.available: ddb 
>   debug.kdb.current: ddb
>   debug.kdb.enter: 0
>   debug.kdb.stop_cpus: 1
> 
> That's what I get, and it indicates that I don't have gdb capability.
> If that's what you get, try building a kernel with firewire support
> built-in (as opposed to the (recommended) method of loading the
> firewire klds later).  The background here is the hypothesis that the
> kernel checks for debug back-ends at boot time, and not later, so if
> you load the firewire klds later, it won't be registered.
> 
> Note that this is a hypothesis.  If you try this, please let us know
> what happens.
> 
> Greg
> --
> See complete headers for address and phone numbers.
Received on Thu Feb 17 2005 - 07:35:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:28 UTC