diff options
| -rw-r--r-- | gnu/usr.bin/gdb/kgdb/kthr.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gnu/usr.bin/gdb/kgdb/kthr.c b/gnu/usr.bin/gdb/kgdb/kthr.c index 02f9a20994c4..37ecad2c2639 100644 --- a/gnu/usr.bin/gdb/kgdb/kthr.c +++ b/gnu/usr.bin/gdb/kgdb/kthr.c @@ -104,12 +104,17 @@ kgdb_thr_init(void) stoppcbs = lookup("_stoppcbs"); 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; |
