This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add CTF support to GDB [5] Add test for CTF function


On 01/25/2013 07:09 PM, Hui Zhu wrote:
+# Get the pathname of babeltrace and set it to $which_babeltrace.
+# If host doesn't have babeltrace, $which_babeltrace will set to 0.
+if [info exists BABELTRACE] {
+    set which_babeltrace ${BABELTRACE}
+} else {
+    remote_exec host "which babeltrace" "" "/dev/null"  "babeltrace.which"
+    remote_upload host "babeltrace.which"
+    set which_babeltrace [file_contents "babeltrace.which"]
+    remote_file build delete "babeltrace.which"
+    remote_file host delete "babeltrace.which"
+}
+
+# Use $which_babeltrace check $ctfdir.
+if { $which_babeltrace == "" } then {
+    unsupported "babeltrace check ctf directory"
+} else {
+    # Let babeltrace output an error to make sure current way is right.
+    remote_exec host "$which_babeltrace not_exist" "" "/dev/null"  "babeltrace.output"
+    remote_upload host "babeltrace.output"
+    set babeltrace_output [file_contents "babeltrace.output"]
+    remote_file build delete "babeltrace.output"
+    remote_file host delete "babeltrace.output"
+    if { [string last "\[error\]" $babeltrace_output] == -1 } then {
+	unsupported "cannot handle babeltrace output"
+    } else {
+	#Call $which_babeltrace check $ctfdir.
+	remote_exec host "$which_babeltrace $ctfdir" "" "/dev/null"  "babeltrace.output"
+	remote_upload host "babeltrace.output"
+	set babeltrace_output [file_contents "babeltrace.output"]
+	remote_file build delete "babeltrace.output"
+	remote_file host delete "babeltrace.output"
+	if { [string last "\[error\]" $babeltrace_output] != -1 } then {
+	    fail "babeltrace open ctf directory"
+	}
+    }
+}

Unless I misunderstand it, it is still incorrect. IIUC, what you want to do here is to run "babeltrace" to check your trace data, you can simply do


  remote_exec host "babeltrace $ctfdir < /dev/null" "" "/dev/null"
"output"

You can tell from the return value and "output" about
 1) whether babeltrace is installed on host machine,
 2) whether babeltrace is executed successfully.

DejaGNU is smart enough to know what is the host machine, and execute this command there, which is determined by the board file. If you are testing a native gdb, the command will be run in local machine, if you are testing GDB in a remote host way (test a native mingw32 native gdb on linux machine), this command will be executed on the remote host (a windows machine).

--
Yao (éå)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]