Date: Thu, 16 Nov 2006 16:47:06 -0800 From: Jessica Han <jessicah@juniper.net> To: freebsd-arch@freebsd.org, marcel@xcllnt.net Subject: A Patch for kgdb Message-ID: <455D068A.2090503@juniper.net>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
I got an infinite loop while trying to debug a kernel core on FreeBSD 6.1.
# uname -sr
FreeBSD 6.1-RELEASE
#kgdb kernel vmcore.0
kgdb: kvm_read: invalid address (0x50012)
kgdb: kvm_read: invalid address (0x7)
kgdb: kvm_read: invalid address (0xf5c)
kgdb: kvm_read: invalid address (0xf5c)
kgdb: kvm_read: invalid address (0xf5c)
The attached patch fixed it, can somebody review it for me and commit it
if it is okay? Thanks,
Jessica
jessicah@juniper.net
[-- Attachment #2 --]
--- /6.1-vanila/src/gnu/usr.bin/gdb/kgdb/kthr.c Wed Sep 14 22:32:10 2005
+++ gnu/usr.bin/gdb/kgdb/kthr.c Thu Nov 16 12:37:41 2006
@@ -92,12 +92,16 @@
dumptid = -1;
while (paddr != 0) {
- if (kvm_read(kvm, paddr, &p, sizeof(p)) != sizeof(p))
+ if (kvm_read(kvm, paddr, &p, sizeof(p)) != sizeof(p)) {
warnx("kvm_read: %s", kvm_geterr(kvm));
+ break;
+ }
addr = (uintptr_t)TAILQ_FIRST(&p.p_threads);
while (addr != 0) {
- if (kvm_read(kvm, addr, &td, sizeof(td)) != sizeof(td))
+ if (kvm_read(kvm, addr, &td, sizeof(td)) != sizeof(td)) {
warnx("kvm_read: %s", kvm_geterr(kvm));
+ break;
+ }
kt = malloc(sizeof(*kt));
kt->next = first;
kt->kaddr = addr;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?455D068A.2090503>
