aboutsummaryrefslogtreecommitdiff
path: root/gdb/tracefile.c
AgeCommit message (Collapse)AuthorFilesLines
2014-04-22Unify ctf_fetch_registers and tfile_fetch_registersYao Qi1-0/+61
Functions ctf_fetch_registers and tfile_fetch_registers have some duplicated code about guessing the PC in regcache. Sometimes, we may change one function and forget to update the other one, like this https://www.sourceware.org/ml/gdb-patches/2014-01/msg00292.html This patch is to move the duplicated code into a new function tracefile_fetch_registers, and let both ctf_fetch_registers and tfile_fetch_registers call it. gdb: 2014-04-22 Yao Qi <yao@codesourcery.com> * tracefile-tfile.c (tfile_fetch_registers): Move the bottom to ... * tracefile.c (tracefile_fetch_registers): ... it. New function. * tracefile.h (tracefile_fetch_registers): Declare. * ctf.c (ctf_fetch_registers): Remove the bottom. Call tracefile_fetch_registers.
2014-02-23Share code on to_xfer_partial for tfile and ctf targetYao Qi1-0/+1
In the to_xfer_partial implementations of ctf and tfile, the code on reading from read-only sections is duplicated. This patch moves it to a separate function exec_read_partial_read_only. gdb: 2014-02-23 Yao Qi <yao@codesourcery.com> * ctf.c (ctf_xfer_partial): Move code to ... * exec.c (exec_read_partial_read_only): ... it. New function. * tracefile-tfile.c (tfile_xfer_partial): Likewise. * tracefile.c: Include "exec.h". * exec.h (exec_read_partial_read_only): Declare.
2014-02-23Let tracefile has_memory and has_all_memory.Yao Qi1-0/+18
At present, tfile target thinks it has memory but ctf doesn't. This is an oversight when I added ctf target support. This patch moves the implementations of to_has_all_memory and to_has_memory to upper layer. After this change, both tfile and ctf target think they have memory. gdb: 2014-02-23 Yao Qi <yao@codesourcery.com> * tracefile-tfile.c (tfile_has_all_memory): Remove. (tfile_has_memory): Remove. (init_tfile_ops): Don't set fields to_has_all_memory and to_has_memory of tfile_ops. * tracefile.c (tracefile_has_all_memory): New function. (tracefile_has_memory): New function. (init_tracefile_ops): Initialize fields to_has_all_memory and to_has_memory of 'ops'.
2014-02-23Share some code between ctf and tfile target.Yao Qi1-0/+54
This patch move the duplicated code between tfile and ctf targets into file tracefile.c. The common part of target_ops fields are set in init_tracefile_ops. gdb: 2014-02-23 Yao Qi <yao@codesourcery.com> * ctf.c (ctf_has_stack, ctf_has_registers): Remove. (ctf_thread_alive, ctf_get_trace_status): Remove. (init_ctf_ops): Don't set some fields of ctf_ops. Call init_tracefile_ops. * tracefile-tfile.c (tfile_get_trace_status): Remove. (tfile_has_stack, tfile_has_registers): Remove. (tfile_thread_alive): Remove. (init_tfile_ops): Don't set some fields of tfile_ops. Call init_tracefile_ops. * tracefile.c (tracefile_has_stack): New function. (tracefile_has_registers): New function. (tracefile_thread_alive): New function. (tracefile_get_trace_status): New function. (init_tracefile_ops): New function. * tracefile.h (init_tracefile_ops): Declare.
2014-02-23Move trace file writer out of tracepoint.cYao Qi1-0/+389
This patch is a refactor which moves trace file writer related code out of tracepoint.c, which has 6k LOC. It moves general trace file writer to a new file tracefile.c and moves tfile specific writer to tracefile-tfile.c. gdb: 2014-02-23 Yao Qi <yao@codesourcery.com> * Makefile.in (REMOTE_OBS): Append tracefile.o and tracefile-tfile.o. (HFILES_NO_SRCDIR): Add tracefile.h. * ctf.c: Include "tracefile.h". * tracefile.h: New file. * tracefile.c: New file * tracefile-tfile.c: New file. * tracepoint.c: Include "tracefile.h". (free_uploaded_tps, free_uploaded_tsvs): Remove declarations. (stop_reason_names): Add const. (trace_file_writer_xfree): Move it to tracefile.c. (trace_save, trace_save_command, trace_save_tfile): Likewise. (trace_save_ctf): Likewise. (struct tfile_trace_file_writer): Move it to tracefile-tfile.c. (tfile_target_save, tfile_dtor, tfile_start): Likewise. (tfile_write_header, tfile_write_regblock_type): Likewise. (tfile_write_status, tfile_write_uploaded_tsv): Likewise. (tfile_write_uploaded_tp, tfile_write_definition_end): Likewise. (tfile_write_raw_data, tfile_end): Likewise. (tfile_trace_file_writer_new): Likewise. (free_uploaded_tp): Make it extern. (free_uploaded_tsv): Make it extern. (_initialize_tracepoint): Move code to register command 'tsave' to tracefile.c. * tracepoint.h (stop_reason_names): Declare. (struct trace_frame_write_ops): Move it to tracefile.h. (struct trace_file_write_ops): Likewise. (struct trace_file_writer): Likewise. (free_uploaded_tsvs, free_uploaded_tps): Declare.