binutils-gdb/gdb/testsuite/gdb.guile
Tom Tromey 86d6a90c58 Fix scm-ports.exp regression
In https://sourceware.org/ml/gdb-patches/2017-12/msg00215.html, Jan
pointed out that the scalar printing patches caused a regression in
scm-ports.exp on x86.

What happens is that on x86, this:

	set sp_reg [get_integer_valueof "\$sp" 0]

... ends up setting sp_reg to a negative value, because
get_integer_valueof uses "print/d":

    print /d $sp
    $1 = -11496

Then later the test suite does:

    gdb_test "guile (print (seek rw-mem-port (value->integer sp-reg) SEEK_SET))" \
	"= $sp_reg" \
	"seek to \$sp"

... expecting this value to be identical to the saved $sp_reg value.
However it gets:

    guile (print (seek rw-mem-port (value->integer sp-reg) SEEK_SET))
    = 4294955800

"print" is just a wrapper for guile's format:

    gdb_test_no_output "guile (define (print x) (format #t \"= ~A\" x) (newline))"

The seek function returns a scm_t_off, the printing of which is
handled by guile, not by gdb.

Tested on x86-64 Fedora 26 using an ordinary build and also a -m32
build.

2018-01-15  Tom Tromey  <tom@tromey.com>

	* gdb.guile/scm-ports.exp (test_mem_port_rw): Use get_valueof to
	compute sp_reg.
2018-01-15 11:51:29 -07:00
..
guile.exp
scm-arch.c
scm-arch.exp
scm-block.c
scm-block.exp
scm-breakpoint.c
scm-breakpoint.exp
scm-cmd.c
scm-cmd.exp
scm-disasm.c
scm-disasm.exp
scm-equal.c
scm-equal.exp
scm-error-1.scm
scm-error-2.scm
scm-error.exp
scm-frame-args.c
scm-frame-args.exp
scm-frame-args.scm
scm-frame-inline.c
scm-frame-inline.exp
scm-frame.c
scm-frame.exp
scm-gsmob.exp
scm-iterator.c
scm-iterator.exp
scm-lazy-string.c
scm-lazy-string.exp
scm-math.c
scm-math.exp
scm-objfile-script-gdb.in
scm-objfile-script.c
scm-objfile-script.exp
scm-objfile.c
scm-objfile.exp
scm-parameter.exp
scm-ports.c
scm-ports.exp
scm-pretty-print.c
scm-pretty-print.exp
scm-pretty-print.scm
scm-progspace.c
scm-progspace.exp
scm-section-script.c
scm-section-script.exp
scm-section-script.scm
scm-symbol.c
scm-symbol.exp
scm-symtab-2.c
scm-symtab.c
scm-symtab.exp
scm-type.c
scm-type.exp
scm-value-cc.cc
scm-value-cc.exp
scm-value.c
scm-value.exp
source2.scm
types-module.cc
types-module.exp