summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2005-10-26 02:22:28 +0000
committermarcel <marcel@FreeBSD.org>2005-10-26 02:22:28 +0000
commit52c3518dcc2286daa2fa3c504eb4e2e9bf4c536e (patch)
treea5850c9c628bc163065ae8c22020060bdb304d3b /gnu
parentd42b1d0003edf8ded999ffe6b87349edf04c43ef (diff)
downloadFreeBSD-src-52c3518dcc2286daa2fa3c504eb4e2e9bf4c536e.zip
FreeBSD-src-52c3518dcc2286daa2fa3c504eb4e2e9bf4c536e.tar.gz
Fix dump of the unread portion of the kernel message buffer.
PR: bin/87964 Submitted by: Frank Mayhar frank at exit dot com
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/gdb/kgdb/main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gnu/usr.bin/gdb/kgdb/main.c b/gnu/usr.bin/gdb/kgdb/main.c
index b07328c..0336bd8 100644
--- a/gnu/usr.bin/gdb/kgdb/main.c
+++ b/gnu/usr.bin/gdb/kgdb/main.c
@@ -197,6 +197,8 @@ kgdb_parse(const char *exp)
return (n);
}
+#define MSGBUF_SEQ_TO_POS(size, seq) ((seq) % (size))
+
static void
kgdb_init_target(void)
{
@@ -241,6 +243,8 @@ kgdb_init_target(void)
size = (int)kgdb_parse("msgbufp->msg_size");
rseq = (int)kgdb_parse("msgbufp->msg_rseq");
wseq = (int)kgdb_parse("msgbufp->msg_wseq");
+ rseq = MSGBUF_SEQ_TO_POS(size, rseq);
+ wseq = MSGBUF_SEQ_TO_POS(size, wseq);
if (bufp == 0 || size == 0 || rseq == wseq)
return;
OpenPOWER on IntegriCloud