ftmemsim-valgrind/gdbserver_tests/mcbreak.stdinB.gdb
Julian Seward b37b05d214 Improvements for testing and compilation breakage for the GDB server
on various platforms:

* In all gdbserver_tests using gdb:
  Made a more general way to remove the initial start message.

* tests using threads burning cpu modified to have only 1 thread.
  This makes them independent of the scheduler fairness.

* filter_gdb and filter_vgdb enhanced to anonymise
    some debian 6.0/ppc specific things
    some s390x/gdb 7.0, gdb 7.1  specific things

* vgdb.c: added an #include <linux/ptrace.h> to fix compilation
  on s390x fedora and suse. (Christian Boerntrager)

* fixed a bug in valgrind-low.c debug log :
  when a register size is 0, its image cannot be output (and register
  should not be transferred).

* added a parameter --keep-unfiltered to vg_regtest.in
  This will make it easier to update filter_gdb:
  in case gdbserver_tests are failing due to "artificial"
  differences to be filtered, re-run the tests using:
     perl tests/vg_regtest --keep-unfiltered gdbserver_tests
  Then a tar file with all the *.out in gdbserver_tests
  will allow me to better/faster update the filter_gdb.

* made a better detection of a working PTRACE_GETREGS at compile time
  and/or at run-time.

This is the patch on bug 214909 comment 69.
(Philippe Waroquiers, philippe.waroquiers@skynet.be)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11740
2011-05-10 11:01:07 +00:00

70 lines
1.3 KiB
Plaintext

# connect gdb to Valgrind gdbserver:
target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-mcbreak
echo vgdb launched process attached\n
monitor vg.set vgdb-error 999999
#
define checkstep
set $old_pc=$pc
step
if $old_pc == $pc
echo Bizarre the oldpc has not changed after step\n
print $oldpc
print $pc
else
echo old_pc has changed after step\n
end
end
#
# break1 and break2
break t.c:112
break t.c:117
#
continue
# first break encountered.
checkstep
checkstep
checkstep
#
monitor vg.set vgdb-error 0
#
next
print whoami("first")
print undefined
print i
checkstep
checkstep
next
print whoami("second")
print undefined
print i
next
print whoami("third")
print undefined
print i
next
print whoami("fourth")
print undefined
print i
# modify sleeps so as to have a shorter test:
print sleeps=1
#
print whoami("after next: inferior call pushed from mcbreak.stdinB.gdb")
continue
#
# encountered second break
step
finish
# delete all breaks
delete
continue
monitor vg.info n_errs_found
# inferior call "in the middle" of an instruction is not working at least
# on all platforms, so comment the below.
# print whoami("after error: inferior call pushed from mcbreak.stdinB.gdb")
checkstep
monitor vg.set vgdb-error 0
continue
# stop the process a.o. to avoid non deterministic output
monitor vg.kill
quit