Fix for GDB crashing with printf on ARM targets.

gdb/ChangeLog.arm:
2016-02-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Backport from mainline
    2016-02-04  Yao Qi  <yao.qi@linaro.org>

	* remote.c (remote_wait_as): Set rs->waiting_for_stop_reply to
	0 before handling 'F' and set it back afterwards.
This commit is contained in:
Andre Simoes Dias Vieira
2016-02-26 13:44:37 +00:00
parent 718b36fead
commit 24ad6cefb1
2 changed files with 14 additions and 0 deletions

6
gdb/ChangeLog.arm Normal file
View File

@@ -0,0 +1,6 @@
2016-02-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
Backport from mainline
2016-02-04 Yao Qi <yao.qi@linaro.org>
* remote.c (remote_wait_as): Set rs->waiting_for_stop_reply to
0 before handling 'F' and set it back afterwards.

View File

@@ -6359,8 +6359,16 @@ remote_wait_as (ptid_t ptid, struct target_waitstatus *status, int options)
status->value.sig = GDB_SIGNAL_0;
break;
case 'F': /* File-I/O request. */
/* GDB may access the inferior memory while handling the File-I/O
request, but we don't want GDB accessing memory while waiting
for a stop reply. See the comments in putpkt_binary. Set
waiting_for_stop_reply to 0 temporarily. */
rs->waiting_for_stop_reply = 0;
remote_fileio_request (buf, rs->ctrlc_pending_p);
rs->ctrlc_pending_p = 0;
/* GDB handled the File-I/O request, and the target is running
again. Keep waiting for events. */
rs->waiting_for_stop_reply = 1;
break;
case 'T': case 'S': case 'X': case 'W':
{