diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/siginfo-obj.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/siginfo-obj.exp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/siginfo-obj.exp b/gdb/testsuite/gdb.base/siginfo-obj.exp index 9ca649d..c6ab6ff 100644 --- a/gdb/testsuite/gdb.base/siginfo-obj.exp +++ b/gdb/testsuite/gdb.base/siginfo-obj.exp @@ -56,6 +56,10 @@ if { ![runto_main] } then { # Run to the signal. gdb_test "continue" ".*Program received signal SIGSEGV.*" "continue to signal" +# Try to generate a core file, for a later test. +set gcorefile [standard_output_file $testfile.gcore] +set gcore_created [gdb_gcore_cmd $gcorefile "save a core file"] + set ssi_addr "" set test "Extract si_addr" gdb_test_multiple "p \$_siginfo" "$test" { @@ -123,3 +127,21 @@ gdb_test "p ssi_addr" " = \\(void \\*\\) 0x666" gdb_test "p ssi_errno" " = 666" gdb_test "p ssi_code" " = 999" gdb_test "p ssi_signo" " = 11" + +# Test siginfo preservation in core files. +if {$gcore_created} { + clean_restart $binfile + + gdb_test "core $gcorefile" "Core was generated by.*" \ + "core [file tail $gcorefile]" + + gdb_test "p \$_siginfo.si_signo" " = $ssi_signo" \ + "p \$_siginfo.si_signo from core file" + gdb_test "p \$_siginfo.si_errno" " = $ssi_errno" \ + "p \$_siginfo.si_errno from core file" + gdb_test "p \$_siginfo.si_code" " = $ssi_code" \ + "p \$_siginfo.si_code from core file" + gdb_test "p \$_siginfo._sifields._sigfault.si_addr" \ + " = \\(void \\*\\) $ssi_addr" \ + "p \$_siginfo._sifields._sigfault.si_addr from core file" +} |