diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/gcore.c | 70 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/system-gcore.exp | 195 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/gcore.exp | 8 |
4 files changed, 14 insertions, 265 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 333bf1c..eccae7e 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-05-07 Andreas Arnez <arnez@linux.vnet.ibm.com> + + * gdb.arch/system-gcore.exp: Remove. + * gdb.arch/gcore.c: Remove. + * gdb.base/gcore.exp: Add "info reg system". + 2013-05-07 Sergio Durigan Junior <sergiodj@redhat.com> PR breakpoints/15413: diff --git a/gdb/testsuite/gdb.arch/gcore.c b/gdb/testsuite/gdb.arch/gcore.c deleted file mode 100644 index 2dda75b..0000000 --- a/gdb/testsuite/gdb.arch/gcore.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright 2002-2013 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -/* - * Test GDB's ability to save and reload a corefile. - */ - -#include <stdlib.h> -#include <string.h> - -int extern_array[4] = {1, 2, 3, 4}; -static int static_array[4] = {5, 6, 7, 8}; -static int un_initialized_array[4]; -static char *heap_string; - -void -terminal_func () -{ - return; -} - -void -array_func () -{ - int local_array[4]; - int i; - - heap_string = (char *) malloc (80); - strcpy (heap_string, "I'm a little teapot, short and stout..."); - for (i = 0; i < 4; i++) - { - un_initialized_array[i] = extern_array[i] + 8; - local_array[i] = extern_array[i] + 12; - } - terminal_func (); -} - -#ifdef PROTOTYPES -int factorial_func (int value) -#else -int factorial_func (value) - int value; -#endif -{ - if (value > 1) { - value *= factorial_func (value - 1); - } - array_func (); - return (value); -} - -main() -{ - factorial_func (6); - return 0; -} diff --git a/gdb/testsuite/gdb.arch/system-gcore.exp b/gdb/testsuite/gdb.arch/system-gcore.exp deleted file mode 100644 index e7586da..0000000 --- a/gdb/testsuite/gdb.arch/system-gcore.exp +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright 2010-2013 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - - -if { ![istarget i?86-*-linux*] && ![istarget x86_64-*-linux* ] } { - verbose "Skipping system register gcore tests." - return -} - -set testfile "system-gcore" -set srcfile gcore.c -set binfile ${objdir}/${subdir}/${testfile} - -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { - untested system-gcore.exp - return -1 -} - -# Start with a fresh gdb. - -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} - -# Does this gdb support gcore? -send_gdb "help gcore\n" -gdb_expect { - -re "Undefined command: .gcore.*$gdb_prompt $" { - # gcore command not supported -- nothing to test here. - unsupported "gdb does not support gcore on this target" - return -1 - } - -re "Save a core file .*$gdb_prompt $" { - pass "help gcore" - } - -re ".*$gdb_prompt $" { - fail "help gcore" - } - timeout { - fail "help gcore (timeout)" - } -} - -if { ! [ runto_main ] } then { - untested system-gcore.exp - return -1 -} - -proc capture_command_output { command prefix } { - global gdb_prompt - global expect_out - - set output_string "" - gdb_test_multiple "$command" "capture_command_output for $command" { - -re "${command}\[\r\n\]+${prefix}(.*)\[\r\n\]+$gdb_prompt $" { - set output_string $expect_out(1,string) - } - } - return $output_string -} - -gdb_test "break terminal_func" "Breakpoint .* at .*${srcfile}, line .*" \ - "set breakpoint at terminal_func" - -gdb_test "continue" "Breakpoint .* terminal_func.*" \ - "continue to terminal_func" - -set print_prefix ".\[0123456789\]* = " - -set pre_corefile_backtrace [capture_command_output "backtrace" ""] -set pre_corefile_regs [capture_command_output "info registers" ""] -set pre_corefile_allregs [capture_command_output "info all-reg" ""] -set pre_corefile_sysregs [capture_command_output "info reg system" ""] -set pre_corefile_static_array \ - [capture_command_output "print static_array" "$print_prefix"] -set pre_corefile_uninit_array \ - [capture_command_output "print un_initialized_array" "$print_prefix"] -set pre_corefile_heap_string \ - [capture_command_output "print heap_string" "$print_prefix"] -set pre_corefile_local_array \ - [capture_command_output "print array_func::local_array" "$print_prefix"] -set pre_corefile_extern_array \ - [capture_command_output "print extern_array" "$print_prefix"] - -set corefile "${objdir}/${subdir}/gcore.test" -set core_supported [gdb_gcore_cmd $corefile "save a corefile"] - -if {!$core_supported} { - return -1 -} - -# Now restart gdb and load the corefile. -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} - -set core_reloaded [gdb_core_cmd $corefile "re-load generated corefile"] -if { $core_reloaded == -1 } { - # No use proceeding from here. - return -} - -gdb_test_sequence "where" "where in corefile" { - "\[\r\n\]+#0 .* terminal_func \\(\\) at " - "\[\r\n\]+#1 .* array_func \\(\\) at " - "\[\r\n\]+#2 .* factorial_func \\(value=1\\) at " - "\[\r\n\]+#3 .* factorial_func \\(value=2\\) at " - "\[\r\n\]+#4 .* factorial_func \\(value=3\\) at " - "\[\r\n\]+#5 .* factorial_func \\(value=4\\) at " - "\[\r\n\]+#6 .* factorial_func \\(value=5\\) at " - "\[\r\n\]+#7 .* factorial_func \\(value=6\\) at " - "\[\r\n\]+#8 .* main \\(.*\\) at " -} - -set post_corefile_regs [capture_command_output "info registers" ""] -if ![string compare $pre_corefile_regs $post_corefile_regs] then { - pass "corefile restored general registers" -} else { - fail "corefile restored general registers" -} - -set post_corefile_allregs [capture_command_output "info all-reg" ""] -if ![string compare $pre_corefile_allregs $post_corefile_allregs] then { - pass "corefile restored all registers" -} else { - fail "corefile restored all registers" -} - -set post_corefile_sysregs [capture_command_output "info reg system" ""] -if ![string compare $pre_corefile_sysregs $post_corefile_sysregs] then { - pass "corefile restored system registers" -} else { - fail "corefile restored system registers" -} - -set post_corefile_extern_array \ - [capture_command_output "print extern_array" "$print_prefix"] -if ![string compare $pre_corefile_extern_array $post_corefile_extern_array] { - pass "corefile restored extern array" -} else { - fail "corefile restored extern array" -} - -set post_corefile_static_array \ - [capture_command_output "print static_array" "$print_prefix"] -if ![string compare $pre_corefile_static_array $post_corefile_static_array] { - pass "corefile restored static array" -} else { - fail "corefile restored static array" -} - -set post_corefile_uninit_array \ - [capture_command_output "print un_initialized_array" "$print_prefix"] -if ![string compare $pre_corefile_uninit_array $post_corefile_uninit_array] { - pass "corefile restored un-initialized array" -} else { - fail "corefile restored un-initialized array" -} - -set post_corefile_heap_string \ - [capture_command_output "print heap_string" "$print_prefix"] -if ![string compare $pre_corefile_heap_string $post_corefile_heap_string] { - pass "corefile restored heap array" -} else { - fail "corefile restored heap array" -} - -set post_corefile_local_array \ - [capture_command_output "print array_func::local_array" "$print_prefix"] -if ![string compare $pre_corefile_local_array $post_corefile_local_array] { - pass "corefile restored stack array" -} else { - fail "corefile restored stack array" -} - -set post_corefile_backtrace [capture_command_output "backtrace" ""] -if ![string compare $pre_corefile_backtrace $post_corefile_backtrace] { - pass "corefile restored backtrace" -} else { - fail "corefile restored backtrace" -} diff --git a/gdb/testsuite/gdb.base/gcore.exp b/gdb/testsuite/gdb.base/gcore.exp index 6e3a5de..68fd874 100644 --- a/gdb/testsuite/gdb.base/gcore.exp +++ b/gdb/testsuite/gdb.base/gcore.exp @@ -74,6 +74,7 @@ set print_prefix ".\[0123456789\]* = " set pre_corefile_backtrace [capture_command_output "backtrace" ""] set pre_corefile_regs [capture_command_output "info registers" ""] set pre_corefile_allregs [capture_command_output "info all-reg" ""] +set pre_corefile_sysregs [capture_command_output "info reg system" ""] set pre_corefile_static_array \ [capture_command_output "print static_array" "$print_prefix"] set pre_corefile_uninit_array \ @@ -129,6 +130,13 @@ if ![string compare $pre_corefile_allregs $post_corefile_allregs] then { fail "corefile restored all registers" } +set post_corefile_sysregs [capture_command_output "info reg system" ""] +if ![string compare $pre_corefile_sysregs $post_corefile_sysregs] then { + pass "corefile restored system registers" +} else { + fail "corefile restored system registers" +} + set post_corefile_extern_array \ [capture_command_output "print extern_array" "$print_prefix"] if ![string compare $pre_corefile_extern_array $post_corefile_extern_array] { |