gdb/doc
* gdbint.texinfo (Testsuite): Document test transcripts. gdb/testsuite * lib/gdb.exp: Handle TRANSCRIPT. (remote_spawn, remote_close, send_gdb): New procs.
This commit is contained in:
parent
f07749bbae
commit
812f734247
@ -1,3 +1,7 @@
|
|||||||
|
2009-07-09 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* gdbint.texinfo (Testsuite): Document test transcripts.
|
||||||
|
|
||||||
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
|
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
|
||||||
|
|
||||||
* gdb.texinfo (Values From Inferior): Add length parameter
|
* gdb.texinfo (Values From Inferior): Add length parameter
|
||||||
|
@ -7560,6 +7560,27 @@ will give a result of ``UNRESOLVED'', like this:
|
|||||||
UNRESOLVED: gdb.base/example.exp: This test script does not work on a remote host.
|
UNRESOLVED: gdb.base/example.exp: This test script does not work on a remote host.
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
Sometimes it is convenient to get a transcript of the commands which
|
||||||
|
the testsuite sends to @value{GDBN}. For example, if @value{GDBN}
|
||||||
|
crashes during testing, a transcript can be used to more easily
|
||||||
|
reconstruct the failure when running @value{GDBN} under @value{GDBN}.
|
||||||
|
|
||||||
|
You can instruct the @value{GDBN} testsuite to write transcripts by
|
||||||
|
setting the DejaGNU variable @code{TRANSCRIPT} (to any value)
|
||||||
|
before invoking @code{runtest} or @kbd{make check}. The transcripts
|
||||||
|
will be written into DejaGNU's output directory. One transcript will
|
||||||
|
be made for each invocation of @value{GDBN}; they will be named
|
||||||
|
@file{transcript.@var{n}}, where @var{n} is an integer. The first
|
||||||
|
line of the transcript file will show how @value{GDBN} was invoked;
|
||||||
|
each subsequent line is a command sent as input to @value{GDBN}.
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
make check RUNTESTFLAGS=TRANSCRIPT=y
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
Note that the transcript is not always complete. In particular, tests
|
||||||
|
of completion can yield partial command lines.
|
||||||
|
|
||||||
@section Testsuite Organization
|
@section Testsuite Organization
|
||||||
|
|
||||||
@cindex test suite organization
|
@cindex test suite organization
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-07-09 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* lib/gdb.exp: Handle TRANSCRIPT.
|
||||||
|
(remote_spawn, remote_close, send_gdb): New procs.
|
||||||
|
|
||||||
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
|
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
|
||||||
|
|
||||||
* gdb.python/python-prettyprint.c: Add counted null string
|
* gdb.python/python-prettyprint.c: Add counted null string
|
||||||
|
@ -2983,3 +2983,49 @@ proc get_sizeof { type default } {
|
|||||||
return [get_integer_valueof "sizeof (${type})" $default]
|
return [get_integer_valueof "sizeof (${type})" $default]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Log gdb command line and script if requested.
|
||||||
|
if {[info exists TRANSCRIPT]} {
|
||||||
|
rename send_gdb real_send_gdb
|
||||||
|
rename remote_spawn real_remote_spawn
|
||||||
|
rename remote_close real_remote_close
|
||||||
|
|
||||||
|
global gdb_transcript
|
||||||
|
set gdb_transcript ""
|
||||||
|
|
||||||
|
global gdb_trans_count
|
||||||
|
set gdb_trans_count 1
|
||||||
|
|
||||||
|
proc remote_spawn {args} {
|
||||||
|
global gdb_transcript gdb_trans_count outdir
|
||||||
|
|
||||||
|
if {$gdb_transcript != ""} {
|
||||||
|
close $gdb_transcript
|
||||||
|
}
|
||||||
|
set gdb_transcript [open [file join $outdir transcript.$gdb_trans_count] w]
|
||||||
|
puts $gdb_transcript [lindex $args 1]
|
||||||
|
incr gdb_trans_count
|
||||||
|
|
||||||
|
return [uplevel real_remote_spawn $args]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc remote_close {args} {
|
||||||
|
global gdb_transcript
|
||||||
|
|
||||||
|
if {$gdb_transcript != ""} {
|
||||||
|
close $gdb_transcript
|
||||||
|
set gdb_transcript ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return [uplevel real_remote_close $args]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc send_gdb {args} {
|
||||||
|
global gdb_transcript
|
||||||
|
|
||||||
|
if {$gdb_transcript != ""} {
|
||||||
|
puts -nonewline $gdb_transcript [lindex $args 0]
|
||||||
|
}
|
||||||
|
|
||||||
|
return [uplevel real_send_gdb $args]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user