A Patch for kgdb
- From: Jessica Han <jessicah@xxxxxxxxxxx>
- Date: Thu, 16 Nov 2006 16:47:06 -0800
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"
- Follow-Ups:
- Re: A Patch for kgdb
- From: Kris Kennaway
- Re: A Patch for kgdb
- Prev by Date: Re: a proposed callout API
- Next by Date: Re: A Patch for kgdb
- Previous by thread: a proposed callout API
- Next by thread: Re: A Patch for kgdb
- Index(es):
Relevant Pages
|
|