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
4 changed files with 76 additions and 0 deletions
|
@ -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>
|
||||
|
||||
* 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.
|
||||
@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
|
||||
|
||||
@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>
|
||||
|
||||
* 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]
|
||||
}
|
||||
|
||||
# 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…
Reference in a new issue