Use new to_xfer_partial interface in ctf and tfile target

This patch adjust both ctf and tfile target implementation of to_xfer_partial,
to return TARGET_XFER_E_UNAVAILABLE and set *XFERED_LEN if data is
unavailable.  Note that some code on xfer in exec.c can be shared, but
we can do it in a separate pass later.

gdb:

2014-02-23  Yao Qi  <yao@codesourcery.com>

	* exec.c (section_table_read_available_memory): New function.
	* exec.h (section_table_read_available_memory): Declare.
	* ctf.c (ctf_xfer_partial): Call
	section_table_read_available_memory.
	* tracefile-tfile.c (tfile_xfer_partial): Likewise.
This commit is contained in:
Yao Qi
2014-02-11 12:20:05 +08:00
parent 1ca49d376d
commit 1ee79381dd
5 changed files with 85 additions and 4 deletions

View File

@@ -1465,9 +1465,14 @@ ctf_xfer_partial (struct target_ops *ops, enum target_object object,
/* Restore the position. */
bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
}
return exec_read_partial_read_only (readbuf, offset, len, xfered_len);
return exec_read_partial_read_only (readbuf, offset, len, xfered_len);
}
else
{
/* Fallback to reading from read-only sections. */
return section_table_read_available_memory (readbuf, offset, len, xfered_len);
}
}
/* This is the implementation of target_ops method