diff options
author | Yao Qi <yao@codesourcery.com> | 2013-04-10 09:42:57 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-04-10 09:42:57 +0000 |
commit | 393fd4c3768e4babdc112fded0bde4aedd40925e (patch) | |
tree | 9883d3cc9d4bc759d3b06788da317108da815d16 /gdb/testsuite | |
parent | b7a273f8c632d5bc5005fb7ece063a5ed0091bc5 (diff) | |
download | gdb-393fd4c3768e4babdc112fded0bde4aedd40925e.zip gdb-393fd4c3768e4babdc112fded0bde4aedd40925e.tar.gz gdb-393fd4c3768e4babdc112fded0bde4aedd40925e.tar.bz2 |
gdb/
2013-04-10 Hui Zhu <hui@codesourcery.com>
Yao Qi <yao@codesourcery.com>
* configure.ac: Check libbabeltrace is installed.
* config.in: Regenerate.
* configure: Regenerate.
* Makefile.in (LIBBABELTRACE): New.
(CLIBS): Add LIBBABELTRACE.
* ctf.c: Include "exec.h".
(CTF_EVENT_ID_STATUS, CTF_EVENT_ID_TSV_DEF): New macros.
(CTF_EVENT_ID_TP_DEF, ctf_save_write_int32): New macros.
(ctf_save_metadata_header): Define new type aliases in
metadata.
(ctf_write_header): Define event type "tsv_def" and "tp_def"
in metadata. Start a new faked packet for trace status.
(ctf_write_status): Write trace status to CTF.
(ctf_write_uploaded_tsv): Write TSV to CTF.
(ctf_write_uploaded_tp): Write tracepoint definition to CTF.
(ctf_write_definition_end): End the faked packet.
(ctx, ctf_iter, trace_dirname): New.
(start_pos): New variable.
(ctf_destroy, ctf_open_dir, ctf_open): New.
(SET_INT32_FIELD, SET_ARRAY_FIELD, SET_STRING_FIELD): New
macros.
(ctf_read_tsv, ctf_read_tp, ctf_close, ctf_files_info): New.
(ctf_fetch_registers, ctf_xfer_partial): New.
(ctf_get_trace_state_variable_value): New.
(ctf_get_tpnum_from_frame_event): New.
(ctf_get_traceframe_address): New.
(ctf_trace_find, ctf_has_stack): New.
(ctf_has_registers, ctf_traceframe_info, init_ctf_ops): New.
(ctf_get_trace_status, ctf_read_status): New.
(_initialize_ctf): New.
* tracepoint.c (get_tracepoint_number): New
(get_uploaded_tsv): Remove 'static'.
(struct traceframe_info, trace_regblock_size): Move it to ...
* tracepoint.h: ... here.
(get_tracepoint_number): Declare it.
(get_uploaded_tsv): Declare it.
* NEWS: Mention new configure option.
gdb/doc/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.texinfo (Trace Files): Add "target ctf".
gdb/testsuite/
2013-04-10 Yao Qi <yao@codesourcery.com>
* gdb.trace/actions.exp: Save trace data to CTF.
Change to ctf target if GDB supports, read CTF data in ctf
target, and check the actions of tracepoints.
* gdb.trace/while-stepping.exp: Likewise.
* gdb.trace/report.exp: Test GDB saves trace data to CTF
format and read CTF trace file if GDB supports.
* gdb.trace/tstatus.exp: Save trace data to CTF. If ctf
target is supported, change to ctf target, read trace data and
check output of command "tstatus".
* gdb.trace/tsv.exp: Save trace frame to CTF. If GDB supports,
read CTF data by target ctf and call check_tsv.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 14 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/actions.exp | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/report.exp | 14 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/tstatus.exp | 14 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/tsv.exp | 13 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/while-stepping.exp | 24 |
6 files changed, 103 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 574aff8..92d8ff3 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,19 @@ 2013-04-10 Yao Qi <yao@codesourcery.com> + * gdb.trace/actions.exp: Save trace data to CTF. + Change to ctf target if GDB supports, read CTF data in ctf + target, and check the actions of tracepoints. + * gdb.trace/while-stepping.exp: Likewise. + * gdb.trace/report.exp: Test GDB saves trace data to CTF + format and read CTF trace file if GDB supports. + * gdb.trace/tstatus.exp: Save trace data to CTF. If ctf + target is supported, change to ctf target, read trace data and + check output of command "tstatus". + * gdb.trace/tsv.exp: Save trace frame to CTF. If GDB supports, + read CTF data by target ctf and call check_tsv. + +2013-04-10 Yao Qi <yao@codesourcery.com> + * gdb.trace/actions.exp (check_tracepoint): New. (top level): Start the tracing and check the actions of tracepoints. Save trace data to tfile format. Restart GDB diff --git a/gdb/testsuite/gdb.trace/actions.exp b/gdb/testsuite/gdb.trace/actions.exp index 5fa1b97..be2bb3e 100644 --- a/gdb/testsuite/gdb.trace/actions.exp +++ b/gdb/testsuite/gdb.trace/actions.exp @@ -310,6 +310,9 @@ gdb_test_no_output "tstop" "" set tracefile [standard_output_file ${testfile}] gdb_test "tsave ${tracefile}.tf" \ "Trace data saved to file '${tracefile}.tf'\.\\r" +gdb_test "tsave -ctf ${tracefile}.ctf" \ + "Trace data saved to directory '${tracefile}.ctf'\.\\r" \ + "save ctf trace file" # Restart GDB and read the trace data in tfile target. gdb_exit @@ -319,3 +322,24 @@ gdb_file_cmd $binfile gdb_test "target tfile ${tracefile}.tf" ".*" \ "change to tfile target" check_tracepoint "tfile" + +# Try to read ctf data if GDB supports. +set gdb_can_read_ctf_data 0 +gdb_test_multiple "target ctf" "" { + -re "Undefined target command: \"ctf\"\. Try \"help target\"\.\r\n$gdb_prompt $" { + set gdb_can_read_ctf_data 0 + } + -re "No CTF directory specified.*\r\n$gdb_prompt $" { + set gdb_can_read_ctf_data 1 + } +} + +if { $gdb_can_read_ctf_data } { + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ctf ${tracefile}.ctf" ".*" \ + "change to ctf target" + check_tracepoint "ctf" +} diff --git a/gdb/testsuite/gdb.trace/report.exp b/gdb/testsuite/gdb.trace/report.exp index 3c3025d..8bb71e4 100644 --- a/gdb/testsuite/gdb.trace/report.exp +++ b/gdb/testsuite/gdb.trace/report.exp @@ -412,6 +412,11 @@ gdb_test "tsave ${tracefile}.tf" \ "Trace data saved to file '${tracefile}.tf'.*" \ "save tfile trace file" +# Save trace frames to ctf. +gdb_test "tsave -ctf ${tracefile}.ctf" \ + "Trace data saved to directory '${tracefile}.ctf'.*" \ + "save ctf trace file" + # Change target to tfile. set test "change to tfile target" gdb_test_multiple "target tfile ${tracefile}.tf" "$test" { @@ -425,3 +430,12 @@ gdb_test_multiple "target tfile ${tracefile}.tf" "$test" { } # Test the collected trace frames from tfile. use_collected_data "tfile" + +# Try to read ctf data if GDB supports. +gdb_test_multiple "target ctf ${tracefile}.ctf" "" { + -re "Undefined target command: \"ctf ${tracefile}.ctf\"\. Try \"help target\"\.\r\n$gdb_prompt $" { + } + -re ".*\r\n$gdb_prompt $" { + use_collected_data "ctf" + } +} diff --git a/gdb/testsuite/gdb.trace/tstatus.exp b/gdb/testsuite/gdb.trace/tstatus.exp index 74d0c27..c709ad8 100644 --- a/gdb/testsuite/gdb.trace/tstatus.exp +++ b/gdb/testsuite/gdb.trace/tstatus.exp @@ -142,6 +142,10 @@ set tracefile [standard_output_file ${testfile}] gdb_test "tsave ${tracefile}.tf" \ "Trace data saved to file '${tracefile}.tf'.*" \ "save tfile trace file" +# Save trace frames to CTF. +gdb_test "tsave -ctf ${tracefile}.ctf" \ + "Trace data saved to directory '${tracefile}.ctf'.*" \ + "save ctf trace file" # Change target to tfile. set test "change to tfile target" @@ -162,3 +166,13 @@ set tstatus_output [string map {\) \\)} $tstatus_output] # The status should be identical to the status of live inferior. gdb_test "tstatus" "Using a trace file\.\r\n${tstatus_output}.*" \ "tstatus on tfile target" + +# Change target to ctf if GDB supports. +gdb_test_multiple "target ctf ${tracefile}.ctf" "" { + -re "Undefined target command: \"ctf ${tracefile}.ctf\"\. Try \"help target\"\.\r\n$gdb_prompt $" { + } + -re ".*\r\n$gdb_prompt $" { + gdb_test "tstatus" "Using a trace file\.\r\n${tstatus_output}.*" \ + "tstatus on ctf target" + } +} diff --git a/gdb/testsuite/gdb.trace/tsv.exp b/gdb/testsuite/gdb.trace/tsv.exp index 6e88adc..76b8645 100644 --- a/gdb/testsuite/gdb.trace/tsv.exp +++ b/gdb/testsuite/gdb.trace/tsv.exp @@ -147,6 +147,10 @@ set tracefile [standard_output_file ${testfile}] gdb_test "tsave ${tracefile}.tf" \ "Trace data saved to file '${tracefile}.tf'.*" \ "save tfile trace file" +# Save trace frames to ctf. +gdb_test "tsave -ctf ${tracefile}.ctf" \ + "Trace data saved to directory '${tracefile}.ctf'.*" \ + "save ctf trace file" proc check_tsv { data_source } { with_test_prefix "${data_source}" { @@ -174,4 +178,13 @@ gdb_test_multiple "target tfile ${tracefile}.tf" "$test" { } # Check the tsv from tfile. + check_tsv "tfile" +# Try to read ctf data if GDB supports. +gdb_test_multiple "target ctf ${tracefile}.ctf" "" { + -re "Undefined target command: \"ctf ${tracefile}.ctf\"\. Try \"help target\"\.\r\n$gdb_prompt $" { + } + -re ".*\r\n$gdb_prompt $" { + check_tsv "ctf" + } +} diff --git a/gdb/testsuite/gdb.trace/while-stepping.exp b/gdb/testsuite/gdb.trace/while-stepping.exp index 0b823a4..da9b14a 100644 --- a/gdb/testsuite/gdb.trace/while-stepping.exp +++ b/gdb/testsuite/gdb.trace/while-stepping.exp @@ -136,6 +136,9 @@ set tracefile [standard_output_file ${testfile}] gdb_test "tsave ${tracefile}.tf" \ "Trace data saved to file '${tracefile}.tf'\.\\r" \ "save tfile trace file" +gdb_test "tsave -ctf ${tracefile}.ctf" \ + "Trace data saved to directory '${tracefile}.ctf'\.\\r" \ + "save ctf trace file" # Restart GDB and read the trace data in tfile target. gdb_exit @@ -145,3 +148,24 @@ gdb_file_cmd $binfile gdb_test "target tfile ${tracefile}.tf" ".*" \ "change to tfile target" check_tracepoint "tfile" + +# Try to read ctf data if GDB supports. +set gdb_can_read_ctf_data 0 +gdb_test_multiple "target ctf" "" { + -re "Undefined target command: \"ctf\"\. Try \"help target\"\.\r\n$gdb_prompt $" { + set gdb_can_read_ctf_data 0 + } + -re "No CTF directory specified.*\r\n$gdb_prompt $" { + set gdb_can_read_ctf_data 1 + } +} + +if { $gdb_can_read_ctf_data } { + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_file_cmd $binfile + gdb_test "target ctf ${tracefile}.ctf" ".*" \ + "change to ctf target" + check_tracepoint "ctf" +} |