aboutsummaryrefslogtreecommitdiff
path: root/gdb/tracefile-tfile.c
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2014-02-11 12:20:05 +0800
committerYao Qi <yao@codesourcery.com>2014-02-23 11:44:27 +0800
commit1ee79381dd9cc2438a61fe4a96294682744d2458 (patch)
treecacc74d2ed737ebef23b92e7688f1974b2a0012b /gdb/tracefile-tfile.c
parent1ca49d376dec6a93e879bc9456617622d7e349b3 (diff)
downloadgdb-1ee79381dd9cc2438a61fe4a96294682744d2458.zip
gdb-1ee79381dd9cc2438a61fe4a96294682744d2458.tar.gz
gdb-1ee79381dd9cc2438a61fe4a96294682744d2458.tar.bz2
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.
Diffstat (limited to 'gdb/tracefile-tfile.c')
-rw-r--r--gdb/tracefile-tfile.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c
index 02122eb..cbf746d 100644
--- a/gdb/tracefile-tfile.c
+++ b/gdb/tracefile-tfile.c
@@ -936,9 +936,15 @@ tfile_xfer_partial (struct target_ops *ops, enum target_object object,
/* Skip over this block. */
pos += (8 + 2 + mlen);
}
- }
- 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);
+ }
}
/* Iterate through the blocks of a trace frame, looking for a 'V'