Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 262009
b: refs/heads/master
c: 37f86b4
h: refs/heads/master
i:
  262007: 53482e1
v: v3
  • Loading branch information
Jason Wessel committed Aug 1, 2011
1 parent 63bbc8b commit 75336ba
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d613d828e8987a1f794378022f900b454fa95403
refs/heads/master: 37f86b469d73fc2f2a925536fb99b8f513f641b7
28 changes: 20 additions & 8 deletions trunk/kernel/debug/kdb/kdb_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,21 @@ char kdb_prompt_str[CMD_BUFLEN];

int kdb_trap_printk;

static void kgdb_transition_check(char *buffer)
static int kgdb_transition_check(char *buffer)
{
int slen = strlen(buffer);
if (strncmp(buffer, "$?#3f", slen) != 0 &&
strncmp(buffer, "$qSupported", slen) != 0 &&
strncmp(buffer, "+$qSupported", slen) != 0) {
if (buffer[0] != '+' && buffer[0] != '$') {
KDB_STATE_SET(KGDB_TRANS);
kdb_printf("%s", buffer);
} else {
int slen = strlen(buffer);
if (slen > 3 && buffer[slen - 3] == '#') {
kdb_gdb_state_pass(buffer);
strcpy(buffer, "kgdb");
KDB_STATE_SET(DOING_KGDB);
return 1;
}
}
return 0;
}

static int kdb_read_get_key(char *buffer, size_t bufsize)
Expand Down Expand Up @@ -251,6 +257,10 @@ static char *kdb_read(char *buffer, size_t bufsize)
case 13: /* enter */
*lastchar++ = '\n';
*lastchar++ = '\0';
if (!KDB_STATE(KGDB_TRANS)) {
KDB_STATE_SET(KGDB_TRANS);
kdb_printf("%s", buffer);
}
kdb_printf("\n");
return buffer;
case 4: /* Del */
Expand Down Expand Up @@ -382,10 +392,12 @@ static char *kdb_read(char *buffer, size_t bufsize)
* printed characters if we think that
* kgdb is connecting, until the check
* fails */
if (!KDB_STATE(KGDB_TRANS))
kgdb_transition_check(buffer);
else
if (!KDB_STATE(KGDB_TRANS)) {
if (kgdb_transition_check(buffer))
return buffer;
} else {
kdb_printf("%c", key);
}
}
/* Special escape to kgdb */
if (lastchar - buffer >= 5 &&
Expand Down

0 comments on commit 75336ba

Please sign in to comment.