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
This is a multi-part message in MIME format. --------------010609060404070502070607 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 --------------010609060404070502070607 Content-Type: text/x-patch; name="kthr.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="kthr.c.patch" --- /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; --------------010609060404070502070607--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?455D068A.2090503>