GNU Binutils with patches for OS216
Revision | 682f50897cb34bbc8976758836c511b63a042f90 (tree) |
---|---|
Time | 2008-06-23 08:04:04 |
Author | Michael Snyder <msnyder@vmwa...> |
Commiter | Michael Snyder |
2008-06-21 Michael Snyder <msnyder@specifix.com>
* gdbfreeplay-back.c (handle_special_case): No need to re-compose
a T packet (with doctored PC) on any stop signal except SIGTRAP.
@@ -1,5 +1,8 @@ | ||
1 | 1 | 2008-06-21 Michael Snyder <msnyder@specifix.com> |
2 | 2 | |
3 | + * gdbfreeplay-back.c (handle_special_case): No need to re-compose | |
4 | + a T packet (with doctored PC) on any stop signal except SIGTRAP. | |
5 | + | |
3 | 6 | Fix stepping/breakpoint off-by-one issues. |
4 | 7 | * gdbfreeplay-back.c (freeplay_find_event): Fix off-by-one error |
5 | 8 | on last_cached_frame. |
@@ -806,15 +806,17 @@ handle_special_case (FILE *infile, int fd, char *request) | ||
806 | 806 | /* Find the original event message for this stop event. */ |
807 | 807 | fseek (infile, stopframe[cur_frame].eventpos, SEEK_SET); |
808 | 808 | fgets (inbuf, sizeof (inbuf), infile); |
809 | - /* If it's a "$T", give the target a chance to re-compose it | |
810 | - (possibly allowing for DECR_PC_AFTER_BREAK). */ | |
811 | - if ((p = strstr (inbuf, "$T")) != NULL) | |
809 | + | |
810 | + /* If it's a "$T05" (SIGTRAP), give the target a chance to | |
811 | + re-compose it (possibly allowing for DECR_PC_AFTER_BREAK). | |
812 | + */ | |
813 | + if ((p = strstr (inbuf, "$T05")) != NULL) | |
812 | 814 | return add_checksum (target_compose_T_packet (p, |
813 | 815 | stopframe[cur_frame].pc, |
814 | 816 | next_event_frame == -1 ? |
815 | 817 | 0 : |
816 | 818 | 1 /* breakpoint_p */)); |
817 | - /* If it's a "$S", just return it (FIXME?) */ | |
819 | + /* Otherwise, just return it. */ | |
818 | 820 | else |
819 | 821 | return &inbuf[0]; |
820 | 822 | } |
@@ -846,9 +848,11 @@ handle_special_case (FILE *infile, int fd, char *request) | ||
846 | 848 | /* Find the original event message for this stop event. */ |
847 | 849 | fseek (infile, stopframe[cur_frame].eventpos, SEEK_SET); |
848 | 850 | fgets (inbuf, sizeof (inbuf), infile); |
849 | - /* If it's a "$T", give the target a chance to re-compose it | |
850 | - (possibly allowing for DECR_PC_AFTER_BREAK). */ | |
851 | - if ((p = strstr (inbuf, "$T")) != NULL) | |
851 | + | |
852 | + /* If it's a "$T05" (SIGTRAP, give the target a chance to | |
853 | + re-compose it (possibly allowing for DECR_PC_AFTER_BREAK). | |
854 | + */ | |
855 | + if ((p = strstr (inbuf, "$T05")) != NULL) | |
852 | 856 | return add_checksum (target_compose_T_packet (p, |
853 | 857 | stopframe[cur_frame].pc, |
854 | 858 | next_event_frame == -1 ? |