A Patch for kgdb



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@xxxxxxxxxxx

--- /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;
_______________________________________________
freebsd-arch@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@xxxxxxxxxxx"

Relevant Pages