tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kgdb on amd64
In article <20150624163947.GA17964%quark.internal.precedence.co.uk@localhost>,
Patrick Welche <prlw1%cam.ac.uk@localhost> wrote:
>-=-=-=-=-=-
>
>On Wed, Jun 24, 2015 at 04:42:12PM +0100, Patrick Welche wrote:
>> The reason kgdb wasn't working all this time on amd64 is that GETC()
>> returns -1 immediately whether or not a character is available =>
>> all of kgdb's checksums fail due to the extra "-1" characters.
>
>The attached gets us that far.
>(Next the target suffers a lock panic on receipt of a "m" command)
>
How about this?
christos
Index: kgdb_stub.c
===================================================================
RCS file: /cvsroot/src/sys/kern/kgdb_stub.c,v
retrieving revision 1.28
diff -u -u -r1.28 kgdb_stub.c
--- kgdb_stub.c 21 Sep 2014 17:17:15 -0000 1.28
+++ kgdb_stub.c 24 Jun 2015 17:49:54 -0000
@@ -85,8 +85,17 @@
static u_char buffer[KGDB_BUFLEN];
static kgdb_reg_t gdb_regs[KGDB_NUMREGS];
-#define GETC() ((*kgdb_getc)(kgdb_ioarg))
-#define PUTC(c) ((*kgdb_putc)(kgdb_ioarg, c))
+#define GETC() kgdb_waitc(kgdb_ioarg)
+#define PUTC(c) (*kgdb_putc)(kgdb_ioarg, c)
+
+static int
+kgdb_waitc(void *arg)
+{
+ int c;
+ while ((c = (*kgdb_getc)(arg)) == -1)
+ continue;
+ return c;
+}
/*
* db_trap_callback can be hooked by MD port code to handle special
Home |
Main Index |
Thread Index |
Old Index