FW: [lkcd-general] This kernel supports KDB but LKCD was invoked directly, not via KDB....

Keith Owens kaos at ocs.com.au
Mon Dec 15 17:00:22 PST 2003


On Mon, 15 Dec 2003 16:40:30 -0800, 
"Bruce Edge" <bedge at troikanetworks.com> wrote:
>When I drop into kdb and do an 'sr c', I do not get that message:

As expected.

>I get it when I load a module that does a divide by zero:
>Code: f7 fb 89 c1 a1 10 c3 d2 c2 8b 00 83 e0 0f 83 f8 03 76 23 83=20
>This kernel supports KDB but LKCD was invoked directly, not via KDB.
>Falling back to the old and broken LKCD method of getting data from all cpus,
>do not be surprised if LKCD hangs.

You have a misapplied patch to arch/i386/kernel/traps.c.  It is calling
lkcd before kdb.  die() in arch/i386/kernel/traps.c should look like this.

void die(const char * str, struct pt_regs * regs, long err)
{
	console_verbose();
	spin_lock_irq(&die_lock);
	bust_spinlocks(1);
	handle_BUG(regs);
	printk("%s: %04lx\n", str, err & 0xffff);
	show_registers(regs);
	bust_spinlocks(0);
	spin_unlock_irq(&die_lock);
#ifdef  CONFIG_KDB
	kdb_diemsg = str;
	kdb(KDB_REASON_OOPS, err, regs);
#endif  /* CONFIG_KDB */
	dump((char *)str, regs);
	do_exit(SIGSEGV);
}

Note that dump() is called after kdb.

Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.


More information about the kdb mailing list