GNU Binutils with patches for OS216
Revision | a21dae9c0bbd529cff3265dabf7585497092a42a (tree) |
---|---|
Time | 2008-06-22 11:36:30 |
Author | Michael Snyder <msnyder@vmwa...> |
Commiter | Michael Snyder |
2008-06-21 Michael Snyder <msnyder@specifix.com>
Add support for 'R' packet (restart).
* gdbfreeplay-back.c (handle_special_case). Add support for 'R'.
Remove support for "monitor gdbfreeplay-echo".
@@ -1,5 +1,9 @@ | ||
1 | 1 | 2008-06-21 Michael Snyder <msnyder@specifix.com> |
2 | 2 | |
3 | + Add support for 'R' packet (restart). | |
4 | + * gdbfreeplay-back.c (handle_special_case). Add support for 'R'. | |
5 | + Remove support for "monitor gdbfreeplay-echo". | |
6 | + | |
3 | 7 | Add support for 'O' packet output. |
4 | 8 | * remote-breakpoint.h (PLAY_O_PACKETS): New enum const. |
5 | 9 | * gdbfreeplay-back.c (StopFrame): Discard gpos, replace with Opos. |
@@ -700,23 +700,16 @@ handle_special_case (FILE *infile, int fd, char *request) | ||
700 | 700 | return OK; |
701 | 701 | } |
702 | 702 | |
703 | - /* Handle "monitor gdbfreeplay-echo" | |
704 | - (just to get a handle on the 'O' message). */ | |
705 | - if ((p = strstr (request, monitor_echo)) != NULL) | |
703 | + /* Handle 'R' (restart) request. | |
704 | + This is an extended-remote request that is not really used any more, | |
705 | + but we can send it out-of-band (using "maint packet") to effectively | |
706 | + set the replay buffer back to the beginning. */ | |
707 | + if (strstr (request, "$R#52") != NULL) | |
706 | 708 | { |
707 | - /* OK, this will be an ascii-fied string. */ | |
708 | - p += strlen (monitor_echo); | |
709 | - /* Skip spaces */ | |
710 | - while (p[0] == '2' && p[1] == '0') | |
711 | - p += 2; /* skip a space */ | |
712 | - | |
713 | - while (p[0] && p[0] != '#') | |
714 | - { | |
715 | - c = hex_to_int (*p++) << 4; | |
716 | - c += hex_to_int (*p++); | |
717 | - fputc (c, stdout); | |
718 | - } | |
719 | - fprintf (stdout, "\n"); | |
709 | + /* Reset replay buffer to beginning. */ | |
710 | + /* NOTE: gdb doesn't know about target state changing, so | |
711 | + if you use this, you must accompany it with "flushregs". */ | |
712 | + cur_frame = 0; | |
720 | 713 | return OK; |
721 | 714 | } |
722 | 715 |