Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
IPKDB(4)		 BSD Kernel Interfaces Manual		      IPKDB(4)

     ipkdb -- IP-based kernel debugger

     options IPKDB
     options IPKDBSECURE
     options IPKDBKEY="\"IPKDB key for remote debugging\""
     options IPKDB_NE_PCISLOT=x

     ipkdb is a	kernel debugger	that uses UDP and IP to	communicate with a re-
     mote debugger (normally gdb(1)).

     Since the debugger	uses its own driver to talk to the networking hard-
     ware, the number of supported network interfaces is a lot less than what
     is	supported by the kernel.  At the time of this writing, there is	only
     support for a NE2000 compatible card in a PCI slot.  In order for ipkdb
     to	find your card,	you need to specify the	slot the card is in via	the
     options IPKDB_NE_PCISLOT.

     To	use ipkdb, you have to set up a	DHCP server, from which	ipkdb can get
     the IP address for	the interface that is used for debugging.

     To	enter ipkdb, the remote	debugger has to	send the protocol start
     packet.  E.g., gdb	will do	this on	the command
	   target ipkdb	debuggee IPKDB key for remote debugging
     where debuggee is the name	of the machine to debug	(which must resolve to
     the IP address of the interface), and the rest of the line	corresponds to
     the definition of IPKDBKEY	(see below).  For ipkdb	to actually see	this
     packet, the interface which is used for debugging has to be set up	to ac-
     tually receive packets, i.e. it has to be up and running.

     To	prevent	messing	around with a secured system, ipkdb normally also
     checks the	security level at which	the kernel is running.	ipkdb will
     only work with security levels less than 1, unless	the kernel is config-
     ured with options IPKDBSECURE.

     In	addition, the debugger is forcedly entered on a	panic, as well as on
     initial startup, if you boot the kernel with the -d option	(note that
     this however is machine dependent).  On such a forced enter to ipkdb
     there is no need for the interface	in question to already be up and run-
     ning, since ipkdb only needs to send/receive packets via its own driver.

     As	some form of security against the occasional hacker, ipkdb uses	the
     definition	of options IPKDBKEY to compute a checksum on the data in every
     packet.  The remote debugger has to send this checksum, based on the data
     it	sends and the key, or ipkdb ignores the	packet.	 This is also used in
     order to check against data errors	on the connection.

     gdb(1), ddb(4), ip(4), udp(4), init(8)

     ipkdb appeared in NetBSD 1.3 for the first	time.  Its configuration and
     setup changed quite a bit in NetBSD 1.5.

     Since the kernel includes the definition of IPKDBKEY, anyone who can read
     the kernel	can extract it and use it to enter ipkdb.

     There is no support for ip6(4).

BSD				March 27, 2000				   BSD


Want to link to this manual page? Use this URL:

home | help