* [PATCH] Fixes testsuit/gdb.base/annota1.exp @ 2005-04-07 17:27 Paul Gilliam 2005-04-14 19:36 ` Daniel Jacobowitz 0 siblings, 1 reply; 19+ messages in thread From: Paul Gilliam @ 2005-04-07 17:27 UTC (permalink / raw) To: gdb-patches ping! This patch fixes a problem in annota1.exp First message in annota1.exp thread: http://sources.redhat.com/ml/gdb-patches/2004-09/msg00349.html Last message in in annota1.exp thread: http://sources.redhat.com/ml/gdb-patches/2004-09/msg00374.htm The annota1.exp patch was put on hold, waiting for a set backtrace patch. I submitted a set backtrace patch here: First message in set backtrace thread: http://sources.redhat.com/ml/gdb-patches/2004-10/msg00261.html last message in set backtrace thread: http://sources.redhat.com/ml/gdb-patches/2004-10/msg00443.html Then, like everyone else, I got involved in other things. But an internal bug system just reminded me these where still pending. Where do these patches sit now? -=# Paul #=- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2005-04-07 17:27 [PATCH] Fixes testsuit/gdb.base/annota1.exp Paul Gilliam @ 2005-04-14 19:36 ` Daniel Jacobowitz 2005-04-15 23:03 ` [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc Paul Gilliam ` (2 more replies) 0 siblings, 3 replies; 19+ messages in thread From: Daniel Jacobowitz @ 2005-04-14 19:36 UTC (permalink / raw) To: Paul Gilliam; +Cc: gdb-patches On Thu, Apr 07, 2005 at 09:25:11AM -0800, Paul Gilliam wrote: > ping! > > This patch fixes a problem in annota1.exp > > First message in annota1.exp thread: > http://sources.redhat.com/ml/gdb-patches/2004-09/msg00349.html > > Last message in in annota1.exp thread: > http://sources.redhat.com/ml/gdb-patches/2004-09/msg00374.htm > > The annota1.exp patch was put on hold, waiting for a set backtrace patch. > > I submitted a set backtrace patch here: > > First message in set backtrace thread: > http://sources.redhat.com/ml/gdb-patches/2004-10/msg00261.html > > last message in set backtrace thread: > http://sources.redhat.com/ml/gdb-patches/2004-10/msg00443.html > > Then, like everyone else, I got involved in other things. But an > internal bug system just reminded me these where still pending. > > Where do these patches sit now? There are too many assorted attachments in those threads, some of which are outdated. Could you repost, or at least post links to, any patch that you specifically want reviewed? -- Daniel Jacobowitz CodeSourcery, LLC ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc. 2005-04-14 19:36 ` Daniel Jacobowitz @ 2005-04-15 23:03 ` Paul Gilliam 2005-04-30 18:49 ` Daniel Jacobowitz 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' Paul Gilliam 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp Paul Gilliam 2 siblings, 1 reply; 19+ messages in thread From: Paul Gilliam @ 2005-04-15 23:03 UTC (permalink / raw) To: gdb-patches; +Cc: Daniel Jacobowitz [-- Attachment #1: Type: text/plain, Size: 918 bytes --] OK. this is in partial responce to: http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html This patch adds a new test file, setbacktrace.exp along with a new 'c' test program, setbacktrace.c. The purpose of this new test is to check backtrace releated features not tested elsewhere in the testsuit: * Check that we know what backtrace options are available. * Check that GDB will only backtrace the requested number of frames. * Check that GDB doesn't backtrace past main unless asked to do so. One problem: I don't know how to add new files in a patch. So I have attached the files and include only the ChangeLog entry here in the body of this e-mail. -=# Paul #=- 2005-04-15 Paul Gililam <pgilliam@us.ibm.com> * gdb.base/setbacktrace.exp (new file): Check backtrace releated features not tested elsewhere. * gdb.base/setbacktrace.c (new file): Test case used by above. [-- Attachment #2: setbacktrace.c --] [-- Type: text/x-csrc, Size: 1199 bytes --] /* This testcase is part of GDB, the GNU debugger. Copyright 2004 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <stdlib.h> int factorial (int n) { if (n > 0) { /* marker: factorial */ return factorial (n - 1) * n; /* marker: factorial recursion */ } else { return 1; } } int main (int argc, char *argv[]) { int depth = 3; if (argc > 1) { depth = atoi(argv[1]); } return factorial (depth); /* marker: main call */ } [-- Attachment #3: setbacktrace.exp --] [-- Type: text/plain, Size: 5550 bytes --] # This file is part of the gdb testsuite. # Copyright 2004 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Check backtrace releated features not tested elsewhere in the testsuit: # * Check that we know what backtrace options are available. # * Check that GDB will only backtrace the requested number of frames. # * Check that GDB doesn't backtrace past main unless asked to do so. if $tracelevel { strace $tracelevel } set prms_id 0 set bug_id 0 set testfile setbacktrace set srcfile ${testfile}.c set escapedsrcfile [string_to_regexp "${srcdir}/${subdir}/${srcfile}"] set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { untested "Couldn't compile ${testfile}.c" return -1 } set fact_subr_line_nbr [gdb_get_line_number "marker: factorial"] set fact_recur_line_nbr [gdb_get_line_number "marker: factorial recursion"] set main_subr_line_nbr [gdb_get_line_number "marker: main call"] # Set how deep should we go and build the expected_frames pattern list. set leadin "\[^\r\n\]*\[\r\n\]+" set subr_depth 20 set expected_frames [list "$leadin#0 factorial \\(n=0\\) at $escapedsrcfile:$fact_subr_line_nbr"] for {set ndx 1} {$ndx <= $subr_depth} {incr ndx} { lappend expected_frames [format "$leadin#%-2d $hex in factorial \\(n=$ndx\\) at $escapedsrcfile:$fact_recur_line_nbr" $ndx] } lappend expected_frames [format "$leadin#%-2d $hex in main \\(argc=2, argv=$hex\\) at $escapedsrcfile:$main_subr_line_nbr" [expr $subr_depth + 1]] #for {set ndx 0} {$ndx < [expr $subr_depth + 2]} {incr ndx} { # puts "$ndx: [lindex $expected_frames $ndx]" #} # get things started gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} gdb_test "set args $subr_depth" # Advance to main if { ![runto_main] } then { gdb_suppress_tests; } # Check that someone has not snuck in an extra backtrace option, if # they do they will need to fix this and any such fix should also be # accompanied by a corresponding SET test. set test "set backtrace" send_gdb "set backtrace\n" set backtrace_subcommands [list \ "${leadin}List of set backtrace subcommands:" \ "${leadin}set backtrace limit -- Set an upper bound on the number of backtrace levels" \ "${leadin}set backtrace past-main -- Set whether backtraces should continue past \"main\"" \ "${leadin}Type \"help set backtrace\" followed by set backtrace subcommand name for full documentation." \ "${leadin}Command name abbreviations are allowed if unambiguous."] gdb_expect_list $test ".*$gdb_prompt $" $backtrace_subcommands # Create a simple stack. gdb_test "break factorial if n == 0" gdb_continue_to_breakpoint "factorial" # Check a backtrace to main (ignore any extra). set test "full backtrace, ignore extra" send_gdb "backtrace\n" gdb_expect_list $test ".*$gdb_prompt $" $expected_frames # Check a backtrace to main (don't ignore any extra). #setup_kfail *-*-* gdb/1760 set test "full backtrace, exact" send_gdb "backtrace\n" gdb_expect_list $test "\[\n\r\]+$gdb_prompt $" $expected_frames # Check a backtrace short of main. set test "partial backtrace, via argument" set partial_depth [expr int($subr_depth / 2)] set partial_frames [lrange $expected_frames 0 [expr $partial_depth - 1]] lappend partial_frames "$leadin\\(More stack frames follow\\.\\.\\.\\)" #for {set ndx 0} {$ndx < [expr $partial_depth + 2]} {incr ndx} { # puts "$ndx: [lindex $partial_frames $ndx]" #} send_gdb "backtrace $partial_depth\n" gdb_expect_list $test "$leadin$gdb_prompt $" $partial_frames ## Check a backtrace short of main due to limit. set test "partial backtrace, via limit" set partial_frames [lrange $expected_frames 0 [expr $partial_depth - 1]] lappend partial_frames "^\[\n\r]+Backtrace limit of $partial_depth exceeded" #for {set ndx 0} {$ndx < [llength $partial_frames]} {incr ndx} { # puts "$ndx: [lindex $partial_frames $ndx]" #} gdb_test "set backtrace limit $partial_depth" ".*" "Set the backtrace limit to $partial_depth" setup_kfail *-*-* gdb/1760 send_gdb "backtrace\n" gdb_expect_list $test "\[\r\n]+$gdb_prompt $" $partial_frames # Check a backtrace past main, specify a backtrace limit so it does not fall off the end of the stack. set test "backtrace past main" set bt_limit [expr $subr_depth + 3] gdb_test "set backtrace past-main" ".*" "Set the backtrace past-main" gdb_test "set backtrace limit 0" ".*" "Set the backtrace limit to unlimited" set extra_frames $expected_frames lappend extra_frames [format "$leadin#%-2d $hex in \[^ \]+ \\(\[^\\)]*\\) \[^\r\n]*" [expr $subr_depth + 2]] lappend extra_frames "\\(More stack frames follow\\.\\.\\.\\)" #for {set ndx 0} {$ndx < [llength $extra_frames]} {incr ndx} { # puts "$ndx: [lindex $extra_frames $ndx]" #} send_gdb "backtrace $bt_limit\n" gdb_expect_list $test "$leadin$gdb_prompt $" $extra_frames ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc. 2005-04-15 23:03 ` [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc Paul Gilliam @ 2005-04-30 18:49 ` Daniel Jacobowitz 2005-05-28 23:42 ` Daniel Jacobowitz 0 siblings, 1 reply; 19+ messages in thread From: Daniel Jacobowitz @ 2005-04-30 18:49 UTC (permalink / raw) To: Paul Gilliam; +Cc: gdb-patches This test is going to need a little work still. Thanks for starting it. On Fri, Apr 15, 2005 at 03:02:39PM -0800, Paul Gilliam wrote: > OK. this is in partial responce to: > http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html > > This patch adds a new test file, setbacktrace.exp along with a new 'c' test program, > setbacktrace.c. > > The purpose of this new test is to check backtrace releated features not tested > elsewhere in the testsuit: > * Check that we know what backtrace options are available. > * Check that GDB will only backtrace the requested number of frames. > * Check that GDB doesn't backtrace past main unless asked to do so. > > One problem: I don't know how to add new files in a patch. So I have attached the files > and include only the ChangeLog entry here in the body of this e-mail. You diff it against /dev/null; either by hand or by adding a dummy line to CVS/Entries. There's also "cvsdo add" in the cvsutils package, which automates that. > 2005-04-15 Paul Gililam <pgilliam@us.ibm.com> > > * gdb.base/setbacktrace.exp (new file): Check backtrace releated > features not tested elsewhere. > * gdb.base/setbacktrace.c (new file): Test case used by above. > * gdb.base/setbacktrace.exp, gdb.base/setbacktrace.c: New files. > /* This testcase is part of GDB, the GNU debugger. > > Copyright 2004 Free Software Foundation, Inc. > # This file is part of the gdb testsuite. > > # Copyright 2004 Free Software Foundation, Inc. 2005 now. > # 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 2 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, write to the Free Software > # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. > > # Check backtrace releated features not tested elsewhere in the testsuit: "testsuite". > if $tracelevel { > strace $tracelevel > } > > set prms_id 0 > set bug_id 0 I'm pretty sure this isn't necessary any more. > # Set how deep should we go and build the expected_frames pattern list. > set leadin "\[^\r\n\]*\[\r\n\]+" This is very permissive. Do you really need to allow so much? This will accept garbage at the end of lines. Otherwise the pattern construction is very nice. > # Advance to main > if { ![runto_main] } then { > gdb_suppress_tests; > } Please don't use gdb_suppress_tests. > # Check that someone has not snuck in an extra backtrace option, if > # they do they will need to fix this and any such fix should also be > # accompanied by a corresponding SET test. > set test "set backtrace" > send_gdb "set backtrace\n" > set backtrace_subcommands [list \ > "${leadin}List of set backtrace subcommands:" \ > "${leadin}set backtrace limit -- Set an upper bound on the number of backtrace levels" \ > "${leadin}set backtrace past-main -- Set whether backtraces should continue past \"main\"" \ > "${leadin}Type \"help set backtrace\" followed by set backtrace subcommand name for full documentation." \ > "${leadin}Command name abbreviations are allowed if unambiguous."] > gdb_expect_list $test ".*$gdb_prompt $" $backtrace_subcommands Did you test this testcase? :-) There's "set backtrace past-entry" now. Also, same comment about ${leadin}. > # Check a backtrace to main (don't ignore any extra). > #setup_kfail *-*-* gdb/1760 > set test "full backtrace, exact" > send_gdb "backtrace\n" > gdb_expect_list $test "\[\n\r\]+$gdb_prompt $" $expected_frames I don't think this does what you want it to do. It won't ignore any extra, and it won't ignore garbage between frames. You probably want to construct a single regular expression using string concatenation rather than list append. That's a general comment, it applies to all the uses of gdb_expect_list. > set test "partial backtrace, via limit" > set partial_frames [lrange $expected_frames 0 [expr $partial_depth - 1]] > lappend partial_frames "^\[\n\r]+Backtrace limit of $partial_depth exceeded" > #for {set ndx 0} {$ndx < [llength $partial_frames]} {incr ndx} { > # puts "$ndx: [lindex $partial_frames $ndx]" > #} > gdb_test "set backtrace limit $partial_depth" ".*" "Set the backtrace limit to $partial_depth" > setup_kfail *-*-* gdb/1760 > send_gdb "backtrace\n" > gdb_expect_list $test "\[\r\n]+$gdb_prompt $" $partial_frames It would be better to use gdb_test_multiple and explicitly match the KFAIL. And to document what the problem is. > # Check a backtrace past main, specify a backtrace limit so it does not fall off the end of the stack. Wrap long lines where it's easy to do, please. It's not worth the trouble for most TCL, but comments are easy. > set test "backtrace past main" > set bt_limit [expr $subr_depth + 3] > gdb_test "set backtrace past-main" ".*" "Set the backtrace past-main" > gdb_test "set backtrace limit 0" ".*" "Set the backtrace limit to unlimited" > set extra_frames $expected_frames > lappend extra_frames [format "$leadin#%-2d $hex in \[^ \]+ \\(\[^\\)]*\\) \[^\r\n]*" [expr $subr_depth + 2]] > lappend extra_frames "\\(More stack frames follow\\.\\.\\.\\)" > #for {set ndx 0} {$ndx < [llength $extra_frames]} {incr ndx} { > # puts "$ndx: [lindex $extra_frames $ndx]" > #} > send_gdb "backtrace $bt_limit\n" > gdb_expect_list $test "$leadin$gdb_prompt $" $extra_frames I'm not sure how portable this is... especially since you're requiring there be at least one GDB-detectable frame past main. -- Daniel Jacobowitz CodeSourcery, LLC ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc. 2005-04-30 18:49 ` Daniel Jacobowitz @ 2005-05-28 23:42 ` Daniel Jacobowitz 0 siblings, 0 replies; 19+ messages in thread From: Daniel Jacobowitz @ 2005-05-28 23:42 UTC (permalink / raw) To: Paul Gilliam, gdb-patches Hi Paul, On Sat, Apr 30, 2005 at 02:49:14PM -0400, Daniel Jacobowitz wrote: > On Fri, Apr 15, 2005 at 03:02:39PM -0800, Paul Gilliam wrote: > > OK. this is in partial responce to: > > http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html > > > > This patch adds a new test file, setbacktrace.exp along with a new 'c' test program, > > setbacktrace.c. > > > > The purpose of this new test is to check backtrace releated features not tested > > elsewhere in the testsuit: > > * Check that we know what backtrace options are available. > > * Check that GDB will only backtrace the requested number of frames. > > * Check that GDB doesn't backtrace past main unless asked to do so. I sent you some comments on this patch in April. Here's another one that may be useful: http://sourceware.org/ml/gdb-patches/2005-05/msg00590.html This patch fixed the bug I originally wanted this test case to test for, and a couple of related bugs. If you don't have time, let me know, and I'll try to update the test myself. -- Daniel Jacobowitz CodeSourcery, LLC ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' 2005-04-14 19:36 ` Daniel Jacobowitz 2005-04-15 23:03 ` [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc Paul Gilliam @ 2005-04-15 23:38 ` Paul Gilliam 2005-04-27 15:43 ` Daniel Jacobowitz 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp Paul Gilliam 2 siblings, 1 reply; 19+ messages in thread From: Paul Gilliam @ 2005-04-15 23:38 UTC (permalink / raw) To: gdb-patches; +Cc: Daniel Jacobowitz OK. this is in partial responce to: http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html There were two problems with gdb.base/annota1.exp. This patch is only for the first one. The problem here is that, in some architectures, a breakpoints in a shared object will be adjusted once the shared object is loaded. This cause two messages not accounted for by gdb.base/annota1.exp: Breakpoint address adjusted from .... Breakpoint <n> address previously adjusted from ... -=# Paul #=- -- 2005-04-15 Paul Gilliam <pgilliam@us.ibm.com> * gdb.base/annota1.exp : Deal with messages caused by breakpoints in shared objects being adjusted. Index: gdb.base/annota1.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v retrieving revision 1.16 diff -c -3 -p -r1.16 annota1.exp *** gdb.base/annota1.exp 20 Jul 2004 00:24:41 -0000 1.16 --- gdb.base/annota1.exp 21 Sep 2004 20:42:29 -0000 *************** send_gdb "break printf\n" *** 229,234 **** --- 229,236 ---- gdb_expect { -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \ { pass "breakpoint printf" } + -re "\r\n\032\032post-prompt\r\nwarning: Breakpoint address adjusted from $hex to $hex.\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \ + { pass "breakpoint printf"} -re ".*$gdb_prompt$" { fail "break printf" } timeout { fail "break printf (timeout)" } } *************** send_gdb "continue\n" *** 240,245 **** --- 242,249 ---- gdb_expect { -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ { pass "continue to printf" } + -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\nwarning: Breakpoint 3 address previously adjusted from $hex to $hex.\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*.*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ + { pass "continue to printf" } -re ".*$gdb_prompt$" { fail "continue to printf" } timeout { fail "continue to printf (timeout)" } } ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' Paul Gilliam @ 2005-04-27 15:43 ` Daniel Jacobowitz 2005-04-27 21:47 ` [COMMIT] " Paul Gilliam 0 siblings, 1 reply; 19+ messages in thread From: Daniel Jacobowitz @ 2005-04-27 15:43 UTC (permalink / raw) To: Paul Gilliam; +Cc: gdb-patches On Fri, Apr 15, 2005 at 03:38:04PM -0800, Paul Gilliam wrote: > OK. Â this is in partial responce to: > Â Â Â Â Â Â Â Â http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html > > There were two problems with gdb.base/annota1.exp. This patch is only for the first one. > > The problem here is that, in some architectures, a breakpoints in a shared object will be > adjusted once the shared object is loaded. This cause two messages not accounted > for by gdb.base/annota1.exp: > Breakpoint address adjusted from .... > Breakpoint <n> address previously adjusted from ... > > -=# Paul #=- > > -- > 2005-04-15 Paul Gilliam <pgilliam@us.ibm.com> > > * gdb.base/annota1.exp : Deal with messages caused by breakpoints in > shared objects being adjusted. This is OK. Please update the copyright year in annota1.exp. -- Daniel Jacobowitz CodeSourcery, LLC ^ permalink raw reply [flat|nested] 19+ messages in thread
* [COMMIT] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' 2005-04-27 15:43 ` Daniel Jacobowitz @ 2005-04-27 21:47 ` Paul Gilliam 0 siblings, 0 replies; 19+ messages in thread From: Paul Gilliam @ 2005-04-27 21:47 UTC (permalink / raw) To: gdb-patches; +Cc: Daniel Jacobowitz Here is the patch I commited. -=# Paul #=- 2005-04-27 Paul Gilliam <pgilliam@us.ibm.com> * gdb.base/annota1.exp : Deal with messages caused by breakpoints in shared objects being adjusted and update copyright. Index: gdb.base/annota1.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v retrieving revision 1.16 diff -c -3 -p -r1.16 annota1.exp *** gdb.base/annota1.exp 20 Jul 2004 00:24:41 -0000 1.16 --- gdb.base/annota1.exp 27 Apr 2005 21:38:32 -0000 *************** *** 1,4 **** ! # Copyright 1999, 2000, 2001, 2002, 2003, 2004 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify --- 1,4 ---- ! # Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify *************** send_gdb "break printf\n" *** 229,234 **** --- 229,236 ---- gdb_expect { -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \ { pass "breakpoint printf" } + -re "\r\n\032\032post-prompt\r\nwarning: Breakpoint address adjusted from $hex to $hex.\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \ + { pass "breakpoint printf"} -re ".*$gdb_prompt$" { fail "break printf" } timeout { fail "break printf (timeout)" } } *************** send_gdb "continue\n" *** 240,245 **** --- 242,250 ---- gdb_expect { -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ { pass "continue to printf" } + -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\nwarning: Breakpoint 3 address previously adjusted from $hex to $hex.\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*.*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ + { pass "continue to printf" } + -re ".*$gdb_prompt$" { fail "continue to printf" } timeout { fail "continue to printf (timeout)" } } ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] Fixes testsuit/gdb.base/annota1.exp 2005-04-14 19:36 ` Daniel Jacobowitz 2005-04-15 23:03 ` [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc Paul Gilliam 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' Paul Gilliam @ 2005-04-15 23:38 ` Paul Gilliam 2005-04-27 15:49 ` Daniel Jacobowitz 2 siblings, 1 reply; 19+ messages in thread From: Paul Gilliam @ 2005-04-15 23:38 UTC (permalink / raw) To: gdb-patches; +Cc: Daniel Jacobowitz OK. this is in partial responce to: http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html There were two problems with gdb.base/annota1.exp. This patch is only for the second one. The problem here is that a bug in backtrace was causing a false nagitive in gdb.base/annota1.exp, so the feature being tested was OK, but was being failed due to some other bug that caused the backtrace to not stop at the end. NOTE: this also allows for 'doc symbols' like '.printf'. I understand that these are going away soon, but an extra '\.?' shouldn't hurt anything. -=# Paul #=- -- 2005-04-15 Paul Gilliam <pgilliam@us.ibm.com> * gdb.base/annota1.exp: Deal with backtrace 'skidding' past top-of-stack due to a bug unrealted to annotation. Index: gdb.base/annota1.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v retrieving revision 1.16 diff -c -3 -p -r1.16 annota1.exp *** gdb.base/annota1.exp 20 Jul 2004 00:24:41 -0000 1.16 --- gdb.base/annota1.exp 21 Sep 2004 20:45:39 -0000 *************** send_gdb "backtrace\n" *** 254,259 **** --- 254,261 ---- gdb_expect { -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \ { pass "backtrace from shlibrary" } + -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\n\.?printf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)\r\n\032\032error-begin\r\n.*\032\032error\r\n$gdb_prompt$" \ + { pass "backtrace from shlibrary" } -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \ { setup_xfail "*-*-*" 1270 fail "backtrace from shlibrary" } ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp Paul Gilliam @ 2005-04-27 15:49 ` Daniel Jacobowitz 2005-04-27 20:02 ` Paul Gilliam 0 siblings, 1 reply; 19+ messages in thread From: Daniel Jacobowitz @ 2005-04-27 15:49 UTC (permalink / raw) To: Paul Gilliam; +Cc: gdb-patches On Fri, Apr 15, 2005 at 03:37:55PM -0800, Paul Gilliam wrote: > OK. Â this is in partial responce to: > Â Â Â Â Â Â Â Â http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html > > There were two problems with gdb.base/annota1.exp. This patch is only for the second one. > > The problem here is that a bug in backtrace was causing a false nagitive in gdb.base/annota1.exp, > so the feature being tested was OK, but was being failed due to some other bug that caused the > backtrace to not stop at the end. > > NOTE: this also allows for 'doc symbols' like '.printf'. I understand that these are going away > soon, but an extra '\.?' shouldn't hurt anything. > > -=# Paul #=- > > -- > 2005-04-15 Paul Gilliam <pgilliam@us.ibm.com> > > * gdb.base/annota1.exp: Deal with backtrace 'skidding' past > top-of-stack due to a bug unrealted to annotation. I would strongly prefer not to include this one. This isn't a unit testsuite; all GDB tests cover multiple features. Some backtrace bugs only show up in these testcases, because they're so picky. You didn't mention when resubmitting these patches that there were objections to them. That's kind of important. I see that Andrew had the same objection that I do. -- Daniel Jacobowitz CodeSourcery, LLC ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2005-04-27 15:49 ` Daniel Jacobowitz @ 2005-04-27 20:02 ` Paul Gilliam 0 siblings, 0 replies; 19+ messages in thread From: Paul Gilliam @ 2005-04-27 20:02 UTC (permalink / raw) To: gdb-patches; +Cc: Daniel Jacobowitz On Wednesday 27 April 2005 08:47, Daniel Jacobowitz wrote: > On Fri, Apr 15, 2005 at 03:37:55PM -0800, Paul Gilliam wrote: > > OK. this is in partial responce to: > > http://sourceware.org/ml/gdb-patches/2005-04/msg00145.html > > > > There were two problems with gdb.base/annota1.exp. This patch is only for the second one. > > > > The problem here is that a bug in backtrace was causing a false nagitive in gdb.base/annota1.exp, > > so the feature being tested was OK, but was being failed due to some other bug that caused the > > backtrace to not stop at the end. > > > > NOTE: this also allows for 'doc symbols' like '.printf'. I understand that these are going away > > soon, but an extra '\.?' shouldn't hurt anything. > > > > -=# Paul #=- > > > > -- > > 2005-04-15 Paul Gilliam <pgilliam@us.ibm.com> > > > > * gdb.base/annota1.exp: Deal with backtrace 'skidding' past > > top-of-stack due to a bug unrealted to annotation. > > I would strongly prefer not to include this one. This isn't a unit > testsuite; all GDB tests cover multiple features. Some backtrace bugs > only show up in these testcases, because they're so picky. OK, I understand. I withdraw this patch. > > You didn't mention when resubmitting these patches that there were > objections to them. That's kind of important. I see that Andrew had > the same objection that I do. > Opps, Sorry. I'll be more carefull next time ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] Fixes testsuit/gdb.base/annota1.exp
@ 2004-09-21 21:43 Paul Gilliam
2004-09-22 14:01 ` Andrew Cagney
2004-09-23 17:25 ` Michael Chastain
0 siblings, 2 replies; 19+ messages in thread
From: Paul Gilliam @ 2004-09-21 21:43 UTC (permalink / raw)
To: gdb-patches; +Cc: Michael Chastain
[-- Attachment #1: Type: text/plain, Size: 744 bytes --]
On powerpc64--linux, annota1.exp has two problems:
1) A breakpoint in a shared object may be 'delayed'. This changes GDB's
responce: both when the breakpoint is set and when it is hit.
2) Due to a bug (I which I knew the number), GDB 'skids' past the top-of-stack
when doing a backtrace. This causes two extra and severial garbage stack
frames to be displayed, eventually getting an error.
I have attached three patches: seperate patches for these two problems and one
patch that fixes them both. I have also attached test logs so you can see
what's up.
Ok to commit? (which one(s)?)
-=# Paul #=-
PS: I thought the 'skidding past top-of-stack' problem was fixed. But it
doesn't seem to be in cvs-main as of last week sometime.
[-- Attachment #2: bp_adjust_patch --]
[-- Type: text/x-diff, Size: 2671 bytes --]
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/ChangeLog,v
retrieving revision 1.1013
diff -c -3 -p -r1.1013 ChangeLog
*** ChangeLog 31 Aug 2004 14:43:17 -0000 1.1013
--- ChangeLog 21 Sep 2004 20:42:29 -0000
***************
*** 1,3 ****
--- 1,9 ----
+ 2004-09-21 Paul Gilliam <pgilliam@us.ibm.com>
+
+ * gdb.base/annota1.exp (break printf): Deal with "Breakpoint
+ address adjusted". (continue to printf): Deal with
+ "Breakpoint 3 address previously adjusted".
+
2004-08-31 Andrew Cagney <cagney@gnu.org>
* gdb.base/sigstep.exp (breakpoint_to_handler_entry)
Index: gdb.base/annota1.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v
retrieving revision 1.16
diff -c -3 -p -r1.16 annota1.exp
*** gdb.base/annota1.exp 20 Jul 2004 00:24:41 -0000 1.16
--- gdb.base/annota1.exp 21 Sep 2004 20:42:29 -0000
*************** send_gdb "break printf\n"
*** 229,234 ****
--- 229,236 ----
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \
{ pass "breakpoint printf" }
+ -re "\r\n\032\032post-prompt\r\nwarning: Breakpoint address adjusted from $hex to $hex.\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \
+ { pass "breakpoint printf"}
-re ".*$gdb_prompt$" { fail "break printf" }
timeout { fail "break printf (timeout)" }
}
*************** send_gdb "continue\n"
*** 240,245 ****
--- 242,249 ----
gdb_expect {
-re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "continue to printf" }
+ -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\nwarning: Breakpoint 3 address previously adjusted from $hex to $hex.\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*.*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
+ { pass "continue to printf" }
-re ".*$gdb_prompt$" { fail "continue to printf" }
timeout { fail "continue to printf (timeout)" }
}
[-- Attachment #3: both_patches --]
[-- Type: text/x-diff, Size: 5220 bytes --]
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/ChangeLog,v
retrieving revision 1.1013
diff -c -3 -p -r1.1013 ChangeLog
*** ChangeLog 31 Aug 2004 14:43:17 -0000 1.1013
--- ChangeLog 21 Sep 2004 20:35:54 -0000
***************
*** 1,3 ****
--- 1,11 ----
+ 2004-09-21 Paul Gilliam <pgilliam@us.ibm.com>
+
+ * gdb.base/annota1.exp (break printf): Deal with "Breakpoint
+ address adjusted". (continue to printf): Deal with
+ "Breakpoint 3 address previously adjusted".
+ (backtrace from shlibrary): Deal with GDB 'skidding' past the
+ top-of-stack in a backtrace. All on powerpc64--linux.
+
2004-08-31 Andrew Cagney <cagney@gnu.org>
* gdb.base/sigstep.exp (breakpoint_to_handler_entry)
Index: gdb.base/annota1.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v
retrieving revision 1.16
diff -c -3 -p -r1.16 annota1.exp
*** gdb.base/annota1.exp 20 Jul 2004 00:24:41 -0000 1.16
--- gdb.base/annota1.exp 21 Sep 2004 20:35:54 -0000
*************** send_gdb "break printf\n"
*** 229,234 ****
--- 229,236 ----
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \
{ pass "breakpoint printf" }
+ -re "\r\n\032\032post-prompt\r\nwarning: Breakpoint address adjusted from $hex to $hex.\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" \
+ { pass "breakpoint printf"}
-re ".*$gdb_prompt$" { fail "break printf" }
timeout { fail "break printf (timeout)" }
}
*************** send_gdb "continue\n"
*** 240,245 ****
--- 242,249 ----
gdb_expect {
-re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
{ pass "continue to printf" }
+ -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\nwarning: Breakpoint 3 address previously adjusted from $hex to $hex.\r\n\r\n\032\032breakpoint 3\r\n\r\nBreakpoint 3, \r\n\032\032frame-begin 0 $hex\r\n\r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*.*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n.*\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
+ { pass "continue to printf" }
-re ".*$gdb_prompt$" { fail "continue to printf" }
timeout { fail "continue to printf (timeout)" }
}
*************** send_gdb "backtrace\n"
*** 254,259 ****
--- 258,265 ----
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \
{ pass "backtrace from shlibrary" }
+ -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)\r\n\032\032error-begin\r\n.*\032\032error\r\n$gdb_prompt$" \
+ { pass "backtrace from shlibrary" }
-re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \
{ setup_xfail "*-*-*" 1270
fail "backtrace from shlibrary" }
[-- Attachment #4: bt_skid_patch --]
[-- Type: text/x-diff, Size: 3355 bytes --]
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/ChangeLog,v
retrieving revision 1.1013
diff -c -3 -p -r1.1013 ChangeLog
*** ChangeLog 31 Aug 2004 14:43:17 -0000 1.1013
--- ChangeLog 21 Sep 2004 20:45:39 -0000
***************
*** 1,3 ****
--- 1,8 ----
+ 2004-09-21 Paul Gilliam <pgilliam@us.ibm.com>
+
+ * gdb.base/annota1.exp (backtrace from shlibrary):
+ Deal with GDB 'skidding' past the top-of-stack in a backtrace.
+
2004-08-31 Andrew Cagney <cagney@gnu.org>
* gdb.base/sigstep.exp (breakpoint_to_handler_entry)
Index: gdb.base/annota1.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v
retrieving revision 1.16
diff -c -3 -p -r1.16 annota1.exp
*** gdb.base/annota1.exp 20 Jul 2004 00:24:41 -0000 1.16
--- gdb.base/annota1.exp 21 Sep 2004 20:45:39 -0000
*************** send_gdb "backtrace\n"
*** 254,259 ****
--- 254,261 ----
gdb_expect {
-re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \
{ pass "backtrace from shlibrary" }
+ -re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\n.printf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)\r\n\032\032error-begin\r\n.*\032\032error\r\n$gdb_prompt$" \
+ { pass "backtrace from shlibrary" }
-re "\r\n\032\032post-prompt\r\n\r\n\032\032frame-begin 0 $hex\r\n.0 \r\n(\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n)*\032\032frame-function-name\r\nprintf\r\n\032\032frame-args\r\n \\(.*frame-end\r\n\r\n\032\032frame-begin 1 $hex\r\n.1 \r\n\032\032frame-address\r\n$hex\r\n\032\032frame-address-end\r\n in \r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032frame-end\r\n(\r\n\032\032frame-begin .*\r\n\r\n\032\032frame-end\r\n)*$gdb_prompt$" \
{ setup_xfail "*-*-*" 1270
fail "backtrace from shlibrary" }
[-- Attachment #5: gdb.log_after_both_patches --]
[-- Type: text/plain, Size: 13384 bytes --]
Test Run By pgilliam on Tue Sep 21 21:16:01 2004
Native configuration is powerpc64-unknown-linux-gnu
=== gdb tests ===
Schedule of variations:
unix/-m64
Running target unix/-m64
Using ./dejagnu/baseboards/unix.exp as board description file for target.
Using ./dejagnu/config/unix.exp as generic interface file for target.
Using ./config/unix.exp as tool-and-target-specific interface file.
Running ./gdb.base/annota1.exp ...
Executing on host: gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1 (timeout = 300)
spawn gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1
spawn /home/pgilliam/build-64/gdb/gdb -nw -nx
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
(gdb) set height 0
(gdb) set width 0
(gdb) dir
Reinitialize source path to empty? (y or n) y
Source directories searched: $cdir:$cwd
(gdb) dir ./gdb.base
Source directories searched: /home/pgilliam/testsuite/./gdb.base:$cdir:$cwd
(gdb) file /home/pgilliam/testsuite/gdb.base/annota1
Reading symbols from /home/pgilliam/testsuite/gdb.base/annota1...done.
Using host libthread_db library "/lib64/tls/libthread_db.so.1".
(gdb) set height 0
(gdb) break main
Breakpoint 1 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
(gdb) PASS: gdb.base/annota1.exp: breakpoint main
set annotate 2
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotation set at level 2
info break
\x1a\x1apost-prompt
\x1a\x1abreakpoints-headers
\x1a\x1afield 0
Num
\x1a\x1afield 1
Type
\x1a\x1afield 2
Disp
\x1a\x1afield 3
Enb
\x1a\x1afield 4
Address
\x1a\x1afield 5
What
\x1a\x1abreakpoints-table
\x1a\x1arecord
\x1a\x1afield 0
1
\x1a\x1afield 1
breakpoint
\x1a\x1afield 2
keep
\x1a\x1afield 3
y
\x1a\x1afield 4
0x00000000100005c4
\x1a\x1afield 5
in main at ./gdb.base/annota1.c:32
\x1a\x1abreakpoints-table-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint info
run
\x1a\x1apost-prompt
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 1
Breakpoint 1,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: run until main breakpoint
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:34:359:beg:0x100005d8
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: go after array init line
print my_array
\x1a\x1apost-prompt
\x1a\x1avalue-history-begin 1 -
$1 =
\x1a\x1avalue-history-value
{
\x1a\x1aarray-section-begin 0 -
1
\x1a\x1aelt
, 2
\x1a\x1aelt
, 3
\x1a\x1aelt
\x1a\x1aarray-section-end
}
\x1a\x1avalue-history-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print array
print non_existent_value
\x1a\x1apost-prompt
\x1a\x1aerror-begin
No symbol "non_existent_value" in current context.
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print non_existent_value
break handle_USR1
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 2 at 0x10000598: file ./gdb.base/annota1.c, line 18.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint handle_USR1
break printf
\x1a\x1apost-prompt
warning: Breakpoint address adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoints-invalid
Breakpoint 3 at 0x80c59643a8
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint printf
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
warning: Breakpoint 3 address previously adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoint 3
Breakpoint 3,
\x1a\x1aframe-begin 0 0x80c59643a8
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: continue to printf
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x80c59643a8
#0
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1000060c
#1
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c5932810
#2
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x80c5932998
#3
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x0
#4
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x0
#5
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: backtrace from shlibrary
signal SIGUSR1
\x1a\x1apost-prompt
Continuing with signal SIGUSR1.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 2
Breakpoint 2,
\x1a\x1aframe-begin 0 0x10000598
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:18:238:beg:0x10000598
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: send SIGUSR1
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x10000598
#0
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1fffffff048
#1
\x1a\x1asignal-handler-caller
<signal handler called>
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c59643a8
#2
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x1000060c
#3
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x80c5932810
#4
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x80c5932998
#5
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 6 0x0
#6
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 7 0x0
#7
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: backtrace @ signal handler
delete 1
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 1
delete 2
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 2
delete 3
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 3
break main
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 4 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 28
display value
\x1a\x1apost-prompt
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
7
\x1a\x1adisplay-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: set up display
run
\x1a\x1apost-prompt
\x1a\x1apre-query
The program being debugged has been started already.
Start it from the beginning? (y or n)
\x1a\x1aquery
y
\x1a\x1apost-query
\x1a\x1aframes-invalid
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 4
Breakpoint 4,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
0
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: re-run
break 46
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 5 at 0x1000063c: file ./gdb.base/annota1.c, line 46.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 46
ignore 5 4
\x1a\x1apost-prompt
Will ignore next 4 crossings of breakpoint 5.
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: ignore 5 4
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
value is 7
my_array[2] is 3
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 5
Breakpoint 5,
\x1a\x1aframe-begin 0 0x1000063c
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
46
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:46:559:beg:0x1000063c
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
11
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotate ignore count change
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:45:531:beg:0x10000650
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:49:579:beg:0x10000660
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint ignore count
signal SIGTRAP
\x1a\x1apost-prompt
Continuing with signal SIGTRAP.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asignalled
Program terminated with signal
\x1a\x1asignal-name
SIGTRAP
\x1a\x1asignal-name-end
,
\x1a\x1asignal-string
Trace/breakpoint trap
\x1a\x1asignal-string-end
.
The program no longer exists.
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: signal sent
Executing on build: ls core (timeout = 300)
spawn ls core
ls: core: No such file or directory
PASS: gdb.base/annota1.exp: cleanup core file (not dumped)
testcase ./gdb.base/annota1.exp completed in 1 seconds
=== gdb Summary ===
# of expected passes 25
Executing on host: /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd (timeout = 300)
spawn /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
/home/pgilliam/build-64/gdb/gdb version 2004-08-31-cvs -nx
runtest completed at Tue Sep 21 21:16:02 2004
[-- Attachment #6: gdb.log_after_bt_skid_patch --]
[-- Type: text/plain, Size: 13406 bytes --]
Test Run By pgilliam on Tue Sep 21 21:34:19 2004
Native configuration is powerpc64-unknown-linux-gnu
=== gdb tests ===
Schedule of variations:
unix/-m64
Running target unix/-m64
Using ./dejagnu/baseboards/unix.exp as board description file for target.
Using ./dejagnu/config/unix.exp as generic interface file for target.
Using ./config/unix.exp as tool-and-target-specific interface file.
Running ./gdb.base/annota1.exp ...
Executing on host: gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1 (timeout = 300)
spawn gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1
spawn /home/pgilliam/build-64/gdb/gdb -nw -nx
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
(gdb) set height 0
(gdb) set width 0
(gdb) dir
Reinitialize source path to empty? (y or n) y
Source directories searched: $cdir:$cwd
(gdb) dir ./gdb.base
Source directories searched: /home/pgilliam/testsuite/./gdb.base:$cdir:$cwd
(gdb) file /home/pgilliam/testsuite/gdb.base/annota1
Reading symbols from /home/pgilliam/testsuite/gdb.base/annota1...done.
Using host libthread_db library "/lib64/tls/libthread_db.so.1".
(gdb) set height 0
(gdb) break main
Breakpoint 1 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
(gdb) PASS: gdb.base/annota1.exp: breakpoint main
set annotate 2
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotation set at level 2
info break
\x1a\x1apost-prompt
\x1a\x1abreakpoints-headers
\x1a\x1afield 0
Num
\x1a\x1afield 1
Type
\x1a\x1afield 2
Disp
\x1a\x1afield 3
Enb
\x1a\x1afield 4
Address
\x1a\x1afield 5
What
\x1a\x1abreakpoints-table
\x1a\x1arecord
\x1a\x1afield 0
1
\x1a\x1afield 1
breakpoint
\x1a\x1afield 2
keep
\x1a\x1afield 3
y
\x1a\x1afield 4
0x00000000100005c4
\x1a\x1afield 5
in main at ./gdb.base/annota1.c:32
\x1a\x1abreakpoints-table-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint info
run
\x1a\x1apost-prompt
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 1
Breakpoint 1,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: run until main breakpoint
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:34:359:beg:0x100005d8
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: go after array init line
print my_array
\x1a\x1apost-prompt
\x1a\x1avalue-history-begin 1 -
$1 =
\x1a\x1avalue-history-value
{
\x1a\x1aarray-section-begin 0 -
1
\x1a\x1aelt
, 2
\x1a\x1aelt
, 3
\x1a\x1aelt
\x1a\x1aarray-section-end
}
\x1a\x1avalue-history-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print array
print non_existent_value
\x1a\x1apost-prompt
\x1a\x1aerror-begin
No symbol "non_existent_value" in current context.
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print non_existent_value
break handle_USR1
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 2 at 0x10000598: file ./gdb.base/annota1.c, line 18.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint handle_USR1
break printf
\x1a\x1apost-prompt
warning: Breakpoint address adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoints-invalid
Breakpoint 3 at 0x80c59643a8
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
FAIL: gdb.base/annota1.exp: break printf
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
warning: Breakpoint 3 address previously adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoint 3
Breakpoint 3,
\x1a\x1aframe-begin 0 0x80c59643a8
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
FAIL: gdb.base/annota1.exp: continue to printf
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x80c59643a8
#0
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1000060c
#1
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c5932810
#2
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x80c5932998
#3
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x0
#4
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x0
#5
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: backtrace from shlibrary
signal SIGUSR1
\x1a\x1apost-prompt
Continuing with signal SIGUSR1.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 2
Breakpoint 2,
\x1a\x1aframe-begin 0 0x10000598
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:18:238:beg:0x10000598
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: send SIGUSR1
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x10000598
#0
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1fffffff048
#1
\x1a\x1asignal-handler-caller
<signal handler called>
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c59643a8
#2
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x1000060c
#3
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x80c5932810
#4
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x80c5932998
#5
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 6 0x0
#6
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 7 0x0
#7
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: backtrace @ signal handler
delete 1
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 1
delete 2
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 2
delete 3
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 3
break main
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 4 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 28
display value
\x1a\x1apost-prompt
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
7
\x1a\x1adisplay-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: set up display
run
\x1a\x1apost-prompt
\x1a\x1apre-query
The program being debugged has been started already.
Start it from the beginning? (y or n)
\x1a\x1aquery
y
\x1a\x1apost-query
\x1a\x1aframes-invalid
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 4
Breakpoint 4,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
0
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: re-run
break 46
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 5 at 0x1000063c: file ./gdb.base/annota1.c, line 46.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 46
ignore 5 4
\x1a\x1apost-prompt
Will ignore next 4 crossings of breakpoint 5.
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: ignore 5 4
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
value is 7
my_array[2] is 3
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 5
Breakpoint 5,
\x1a\x1aframe-begin 0 0x1000063c
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
46
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:46:559:beg:0x1000063c
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
11
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotate ignore count change
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:45:531:beg:0x10000650
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:49:579:beg:0x10000660
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint ignore count
signal SIGTRAP
\x1a\x1apost-prompt
Continuing with signal SIGTRAP.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asignalled
Program terminated with signal
\x1a\x1asignal-name
SIGTRAP
\x1a\x1asignal-name-end
,
\x1a\x1asignal-string
Trace/breakpoint trap
\x1a\x1asignal-string-end
.
The program no longer exists.
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: signal sent
Executing on build: ls core (timeout = 300)
spawn ls core
ls: core: No such file or directory
PASS: gdb.base/annota1.exp: cleanup core file (not dumped)
testcase ./gdb.base/annota1.exp completed in 1 seconds
=== gdb Summary ===
# of expected passes 23
# of unexpected failures 2
Executing on host: /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd (timeout = 300)
spawn /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
/home/pgilliam/build-64/gdb/gdb version 2004-08-31-cvs -nx
runtest completed at Tue Sep 21 21:34:20 2004
[-- Attachment #7: gdb.log_after_bp_adjust_patch --]
[-- Type: text/plain, Size: 13411 bytes --]
Test Run By pgilliam on Tue Sep 21 21:40:07 2004
Native configuration is powerpc64-unknown-linux-gnu
=== gdb tests ===
Schedule of variations:
unix/-m64
Running target unix/-m64
Using ./dejagnu/baseboards/unix.exp as board description file for target.
Using ./dejagnu/config/unix.exp as generic interface file for target.
Using ./config/unix.exp as tool-and-target-specific interface file.
Running ./gdb.base/annota1.exp ...
Executing on host: gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1 (timeout = 300)
spawn gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1
spawn /home/pgilliam/build-64/gdb/gdb -nw -nx
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
(gdb) set height 0
(gdb) set width 0
(gdb) dir
Reinitialize source path to empty? (y or n) y
Source directories searched: $cdir:$cwd
(gdb) dir ./gdb.base
Source directories searched: /home/pgilliam/testsuite/./gdb.base:$cdir:$cwd
(gdb) file /home/pgilliam/testsuite/gdb.base/annota1
Reading symbols from /home/pgilliam/testsuite/gdb.base/annota1...done.
Using host libthread_db library "/lib64/tls/libthread_db.so.1".
(gdb) set height 0
(gdb) break main
Breakpoint 1 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
(gdb) PASS: gdb.base/annota1.exp: breakpoint main
set annotate 2
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotation set at level 2
info break
\x1a\x1apost-prompt
\x1a\x1abreakpoints-headers
\x1a\x1afield 0
Num
\x1a\x1afield 1
Type
\x1a\x1afield 2
Disp
\x1a\x1afield 3
Enb
\x1a\x1afield 4
Address
\x1a\x1afield 5
What
\x1a\x1abreakpoints-table
\x1a\x1arecord
\x1a\x1afield 0
1
\x1a\x1afield 1
breakpoint
\x1a\x1afield 2
keep
\x1a\x1afield 3
y
\x1a\x1afield 4
0x00000000100005c4
\x1a\x1afield 5
in main at ./gdb.base/annota1.c:32
\x1a\x1abreakpoints-table-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint info
run
\x1a\x1apost-prompt
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 1
Breakpoint 1,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: run until main breakpoint
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:34:359:beg:0x100005d8
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: go after array init line
print my_array
\x1a\x1apost-prompt
\x1a\x1avalue-history-begin 1 -
$1 =
\x1a\x1avalue-history-value
{
\x1a\x1aarray-section-begin 0 -
1
\x1a\x1aelt
, 2
\x1a\x1aelt
, 3
\x1a\x1aelt
\x1a\x1aarray-section-end
}
\x1a\x1avalue-history-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print array
print non_existent_value
\x1a\x1apost-prompt
\x1a\x1aerror-begin
No symbol "non_existent_value" in current context.
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print non_existent_value
break handle_USR1
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 2 at 0x10000598: file ./gdb.base/annota1.c, line 18.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint handle_USR1
break printf
\x1a\x1apost-prompt
warning: Breakpoint address adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoints-invalid
Breakpoint 3 at 0x80c59643a8
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint printf
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
warning: Breakpoint 3 address previously adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoint 3
Breakpoint 3,
\x1a\x1aframe-begin 0 0x80c59643a8
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: continue to printf
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x80c59643a8
#0
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1000060c
#1
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c5932810
#2
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x80c5932998
#3
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x0
#4
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x0
#5
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
FAIL: gdb.base/annota1.exp: backtrace from shlibrary
signal SIGUSR1
\x1a\x1apost-prompt
Continuing with signal SIGUSR1.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 2
Breakpoint 2,
\x1a\x1aframe-begin 0 0x10000598
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:18:238:beg:0x10000598
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: send SIGUSR1
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x10000598
#0
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1fffffff048
#1
\x1a\x1asignal-handler-caller
<signal handler called>
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c59643a8
#2
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x1000060c
#3
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x80c5932810
#4
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x80c5932998
#5
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 6 0x0
#6
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 7 0x0
#7
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: backtrace @ signal handler
delete 1
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 1
delete 2
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 2
delete 3
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 3
break main
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 4 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 28
display value
\x1a\x1apost-prompt
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
7
\x1a\x1adisplay-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: set up display
run
\x1a\x1apost-prompt
\x1a\x1apre-query
The program being debugged has been started already.
Start it from the beginning? (y or n)
\x1a\x1aquery
y
\x1a\x1apost-query
\x1a\x1aframes-invalid
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 4
Breakpoint 4,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
0
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: re-run
break 46
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 5 at 0x1000063c: file ./gdb.base/annota1.c, line 46.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 46
ignore 5 4
\x1a\x1apost-prompt
Will ignore next 4 crossings of breakpoint 5.
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: ignore 5 4
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
value is 7
my_array[2] is 3
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 5
Breakpoint 5,
\x1a\x1aframe-begin 0 0x1000063c
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
46
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:46:559:beg:0x1000063c
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
11
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotate ignore count change
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:45:531:beg:0x10000650
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:49:579:beg:0x10000660
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint ignore count
signal SIGTRAP
\x1a\x1apost-prompt
Continuing with signal SIGTRAP.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asignalled
Program terminated with signal
\x1a\x1asignal-name
SIGTRAP
\x1a\x1asignal-name-end
,
\x1a\x1asignal-string
Trace/breakpoint trap
\x1a\x1asignal-string-end
.
The program no longer exists.
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: signal sent
Executing on build: ls core (timeout = 300)
spawn ls core
ls: core: No such file or directory
PASS: gdb.base/annota1.exp: cleanup core file (not dumped)
testcase ./gdb.base/annota1.exp completed in 1 seconds
=== gdb Summary ===
# of expected passes 24
# of unexpected failures 1
Executing on host: /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd (timeout = 300)
spawn /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
/home/pgilliam/build-64/gdb/gdb version 2004-08-31-cvs -nx
runtest completed at Tue Sep 21 21:40:08 2004
[-- Attachment #8: gdb.log_before --]
[-- Type: text/plain, Size: 13406 bytes --]
Test Run By pgilliam on Tue Sep 21 21:28:46 2004
Native configuration is powerpc64-unknown-linux-gnu
=== gdb tests ===
Schedule of variations:
unix/-m64
Running target unix/-m64
Using ./dejagnu/baseboards/unix.exp as board description file for target.
Using ./dejagnu/config/unix.exp as generic interface file for target.
Using ./config/unix.exp as tool-and-target-specific interface file.
Running ./gdb.base/annota1.exp ...
Executing on host: gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1 (timeout = 300)
spawn gcc ./gdb.base/annota1.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/annota1
spawn /home/pgilliam/build-64/gdb/gdb -nw -nx
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
(gdb) set height 0
(gdb) set width 0
(gdb) dir
Reinitialize source path to empty? (y or n) y
Source directories searched: $cdir:$cwd
(gdb) dir ./gdb.base
Source directories searched: /home/pgilliam/testsuite/./gdb.base:$cdir:$cwd
(gdb) file /home/pgilliam/testsuite/gdb.base/annota1
Reading symbols from /home/pgilliam/testsuite/gdb.base/annota1...done.
Using host libthread_db library "/lib64/tls/libthread_db.so.1".
(gdb) set height 0
(gdb) break main
Breakpoint 1 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
(gdb) PASS: gdb.base/annota1.exp: breakpoint main
set annotate 2
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotation set at level 2
info break
\x1a\x1apost-prompt
\x1a\x1abreakpoints-headers
\x1a\x1afield 0
Num
\x1a\x1afield 1
Type
\x1a\x1afield 2
Disp
\x1a\x1afield 3
Enb
\x1a\x1afield 4
Address
\x1a\x1afield 5
What
\x1a\x1abreakpoints-table
\x1a\x1arecord
\x1a\x1afield 0
1
\x1a\x1afield 1
breakpoint
\x1a\x1afield 2
keep
\x1a\x1afield 3
y
\x1a\x1afield 4
0x00000000100005c4
\x1a\x1afield 5
in main at ./gdb.base/annota1.c:32
\x1a\x1abreakpoints-table-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint info
run
\x1a\x1apost-prompt
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 1
Breakpoint 1,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: run until main breakpoint
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:34:359:beg:0x100005d8
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: go after array init line
print my_array
\x1a\x1apost-prompt
\x1a\x1avalue-history-begin 1 -
$1 =
\x1a\x1avalue-history-value
{
\x1a\x1aarray-section-begin 0 -
1
\x1a\x1aelt
, 2
\x1a\x1aelt
, 3
\x1a\x1aelt
\x1a\x1aarray-section-end
}
\x1a\x1avalue-history-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print array
print non_existent_value
\x1a\x1apost-prompt
\x1a\x1aerror-begin
No symbol "non_existent_value" in current context.
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: print non_existent_value
break handle_USR1
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 2 at 0x10000598: file ./gdb.base/annota1.c, line 18.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint handle_USR1
break printf
\x1a\x1apost-prompt
warning: Breakpoint address adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoints-invalid
Breakpoint 3 at 0x80c59643a8
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
FAIL: gdb.base/annota1.exp: break printf
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
warning: Breakpoint 3 address previously adjusted from 0x80c5a66c78 to 0x80c59643a8.
\x1a\x1abreakpoint 3
Breakpoint 3,
\x1a\x1aframe-begin 0 0x80c59643a8
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
FAIL: gdb.base/annota1.exp: continue to printf
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x80c59643a8
#0
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1000060c
#1
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c5932810
#2
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x80c5932998
#3
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x0
#4
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x0
#5
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
FAIL: gdb.base/annota1.exp: backtrace from shlibrary
signal SIGUSR1
\x1a\x1apost-prompt
Continuing with signal SIGUSR1.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 2
Breakpoint 2,
\x1a\x1aframe-begin 0 0x10000598
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:18:238:beg:0x10000598
\x1a\x1aframe-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: send SIGUSR1
backtrace
\x1a\x1apost-prompt
\x1a\x1aframe-begin 0 0x10000598
#0
\x1a\x1aframe-function-name
handle_USR1
\x1a\x1aframe-args
(
\x1a\x1aarg-begin
sig
\x1a\x1aarg-name-end
=
\x1a\x1aarg-value -
10
\x1a\x1aarg-end
)
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
18
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 1 0x1fffffff048
#1
\x1a\x1asignal-handler-caller
<signal handler called>
\x1a\x1aframe-end
\x1a\x1aframe-begin 2 0x80c59643a8
#2
\x1a\x1aframe-address
0x00000080c59643a8
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.printf
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 3 0x1000060c
#3
\x1a\x1aframe-address
0x000000001000060c
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
40
\x1a\x1aframe-source-end
\x1a\x1aframe-end
\x1a\x1aframe-begin 4 0x80c5932810
#4
\x1a\x1aframe-address
0x00000080c5932810
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.generic_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 5 0x80c5932998
#5
\x1a\x1aframe-address
0x00000080c5932998
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
.__libc_start_main
\x1a\x1aframe-args
()
\x1a\x1aframe-where
from /lib64/tls/libc.so.6
\x1a\x1aframe-end
\x1a\x1aframe-begin 6 0x0
#6
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aframe-begin 7 0x0
#7
\x1a\x1aframe-address
0x0000000000000000
\x1a\x1aframe-address-end
in
\x1a\x1aframe-function-name
??
\x1a\x1aframe-args
()
\x1a\x1aframe-end
\x1a\x1aerror-begin
Previous frame identical to this frame (corrupt stack?)
\x1a\x1aerror
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: backtrace @ signal handler
delete 1
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 1
delete 2
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 2
delete 3
\x1a\x1apost-prompt
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: delete bp 3
break main
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 4 at 0x100005c4: file ./gdb.base/annota1.c, line 32.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 28
display value
\x1a\x1apost-prompt
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
7
\x1a\x1adisplay-end
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: set up display
run
\x1a\x1apost-prompt
\x1a\x1apre-query
The program being debugged has been started already.
Start it from the beginning? (y or n)
\x1a\x1aquery
y
\x1a\x1apost-query
\x1a\x1aframes-invalid
Starting program: /home/pgilliam/testsuite/gdb.base/annota1
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoints-invalid
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 4
Breakpoint 4,
\x1a\x1aframe-begin 0 0x100005c4
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
32
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:32:323:beg:0x100005c4
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
0
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: re-run
break 46
\x1a\x1apost-prompt
\x1a\x1abreakpoints-invalid
Breakpoint 5 at 0x1000063c: file ./gdb.base/annota1.c, line 46.
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: break at 46
ignore 5 4
\x1a\x1apost-prompt
Will ignore next 4 crossings of breakpoint 5.
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: ignore 5 4
continue
\x1a\x1apost-prompt
Continuing.
\x1a\x1astarting
\x1a\x1aframes-invalid
value is 7
my_array[2] is 3
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1abreakpoint 5
Breakpoint 5,
\x1a\x1aframe-begin 0 0x1000063c
\x1a\x1aframe-function-name
main
\x1a\x1aframe-args
()
\x1a\x1aframe-source-begin
at
\x1a\x1aframe-source-file
./gdb.base/annota1.c
\x1a\x1aframe-source-file-end
:
\x1a\x1aframe-source-line
46
\x1a\x1aframe-source-end
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:46:559:beg:0x1000063c
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
11
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1abreakpoints-invalid
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: annotate ignore count change
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:45:531:beg:0x10000650
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
next
\x1a\x1apost-prompt
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asource /home/pgilliam/testsuite/gdb.base/annota1.c:49:579:beg:0x10000660
\x1a\x1aframe-end
\x1a\x1adisplay-begin
1
\x1a\x1adisplay-number-end
:
\x1a\x1adisplay-format
\x1a\x1adisplay-expression
value
\x1a\x1adisplay-expression-end
=
\x1a\x1adisplay-expression
12
\x1a\x1adisplay-end
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: breakpoint ignore count
signal SIGTRAP
\x1a\x1apost-prompt
Continuing with signal SIGTRAP.
\x1a\x1astarting
\x1a\x1aframes-invalid
\x1a\x1aframes-invalid
\x1a\x1asignalled
Program terminated with signal
\x1a\x1asignal-name
SIGTRAP
\x1a\x1asignal-name-end
,
\x1a\x1asignal-string
Trace/breakpoint trap
\x1a\x1asignal-string-end
.
The program no longer exists.
\x1a\x1astopped
\x1a\x1apre-prompt
(gdb)
\x1a\x1aprompt
PASS: gdb.base/annota1.exp: signal sent
Executing on build: ls core (timeout = 300)
spawn ls core
ls: core: No such file or directory
PASS: gdb.base/annota1.exp: cleanup core file (not dumped)
testcase ./gdb.base/annota1.exp completed in 1 seconds
=== gdb Summary ===
# of expected passes 22
# of unexpected failures 3
Executing on host: /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd (timeout = 300)
spawn /home/pgilliam/build-64/gdb/gdb -nw --command gdb_cmd
GNU gdb 2004-08-31-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "powerpc64--linux".
/home/pgilliam/build-64/gdb/gdb version 2004-08-31-cvs -nx
runtest completed at Tue Sep 21 21:28:47 2004
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-21 21:43 Paul Gilliam @ 2004-09-22 14:01 ` Andrew Cagney 2004-09-22 16:56 ` Paul Gilliam 2004-09-23 17:25 ` Michael Chastain 1 sibling, 1 reply; 19+ messages in thread From: Andrew Cagney @ 2004-09-22 14:01 UTC (permalink / raw) To: pgilliam; +Cc: gdb-patches, Michael Chastain > On powerpc64--linux, annota1.exp has two problems: > > 1) A breakpoint in a shared object may be 'delayed'. This changes GDB's > responce: both when the breakpoint is set and when it is hit. I'm not sure what you mean. On i386 GNU/Linux, annota1.exp gets zero fails so this would suggest some sort of ISA specific bug? I see this lets GDB accept the ``warning: adjusting breakpoint'' message. I'm wondering if GDB should even emit the warning - it and the descriptor are very much integral parts of the ABI - and hence should be trying to always display the descriptor symbol and code address (and not display the dot symbol). What's going to happen when 64-bit PPC stops emiting those dot symbols? > 2) Due to a bug (I which I knew the number), GDB 'skids' past the top-of-stack > when doing a backtrace. This causes two extra and severial garbage stack > frames to be displayed, eventually getting an error. You mean backtracing past main - that code was recently rewritten. However, there's apparently no test case for the feature, perhaphs it it should first be added and fixed?. Anyway, I don't think we should be passing a broken backtrace. Andrew > I have attached three patches: seperate patches for these two problems and one > patch that fixes them both. I have also attached test logs so you can see > what's up. > > Ok to commit? (which one(s)?) > > -=# Paul #=- > > PS: I thought the 'skidding past top-of-stack' problem was fixed. But it > doesn't seem to be in cvs-main as of last week sometime. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-22 14:01 ` Andrew Cagney @ 2004-09-22 16:56 ` Paul Gilliam 2004-09-22 19:54 ` Andrew Cagney 0 siblings, 1 reply; 19+ messages in thread From: Paul Gilliam @ 2004-09-22 16:56 UTC (permalink / raw) To: gdb-patches; +Cc: Andrew Cagney, Michael Chastain Andrew, Thanks for your comments. See below... On Wednesday 22 September 2004 06:58, Andrew Cagney wrote: > > On powerpc64--linux, annota1.exp has two problems: > > > > 1) A breakpoint in a shared object may be 'delayed'. This changes GDB's > > responce: both when the breakpoint is set and when it is hit. > > I'm not sure what you mean. On i386 GNU/Linux, annota1.exp gets zero > fails so this would suggest some sort of ISA specific bug? The problem is specific to any ISA that uses delayed breakpoints... I think that's just the Power64. > > I see this lets GDB accept the ``warning: adjusting breakpoint'' > message. I'm wondering if GDB should even emit the warning - it and the > descriptor are very much integral parts of the ABI - and hence should be > trying to always display the descriptor symbol and code address (and not > display the dot symbol). I think I agree. Unless this level of detail is needed by the user for some reason. And I don't think they need to be reminded every time the breakpoint is hit. But that's the way the code is. The testsuite should reflect the way the code is, and to a certain extent, the way it was. > > What's going to happen when 64-bit PPC stops emiting those dot symbols? When this happens, then the regexp that I added would never be matched. So Its kind of self correcting. Some time later we can just remove the regexp. > > > 2) Due to a bug (I which I knew the number), GDB 'skids' past the > > top-of-stack when doing a backtrace. This causes two extra and severial > > garbage stack frames to be displayed, eventually getting an error. > > You mean backtracing past main - that code was recently rewritten. > However, there's apparently no test case for the feature, perhaphs it it > should first be added and fixed?. Anyway, I don't think we should be > passing a broken backtrace. > Well... this doesn't 'pass' a broken backtrace, it just doesn't let a broken backtrace stop it from testing what it is really interested in: annotations. I agree that we need a test for the 'backtracing past main' problem. I will post one later today, along with a log showing it in action. Which .exp file would you suggest I use as a model? -=# Paul #=- > Andrew > > > I have attached three patches: seperate patches for these two problems > > and one patch that fixes them both. I have also attached test logs so > > you can see what's up. > > > > Ok to commit? (which one(s)?) > > > > -=# Paul #=- > > > > PS: I thought the 'skidding past top-of-stack' problem was fixed. But > > it doesn't seem to be in cvs-main as of last week sometime. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-22 16:56 ` Paul Gilliam @ 2004-09-22 19:54 ` Andrew Cagney 2004-09-23 2:13 ` Paul Gilliam 0 siblings, 1 reply; 19+ messages in thread From: Andrew Cagney @ 2004-09-22 19:54 UTC (permalink / raw) To: pgilliam, Michael Chastain; +Cc: gdb-patches Paul, Some history For GDB, if we analize a test failure and identify a bug, we can mark it up with a KFAIL (and file a bug report). This way we leave a trail of what is analysed while not hiding the bugs. In the past people were going round XFAILing or PASSing such cases (the sole objective being to artifically deflate the fail numbers). Another past mistake was to hack test cases so that they would (incorrectly) accept bogus backtraces. Again, if we encounter this, we should KFAIL it, or better fix the bug. > Thanks for your comments. See below... > > On Wednesday 22 September 2004 06:58, Andrew Cagney wrote: > >>>> > On powerpc64--linux, annota1.exp has two problems: >>>> > >>>> > 1) A breakpoint in a shared object may be 'delayed'. This changes GDB's >>>> > responce: both when the breakpoint is set and when it is hit. >> >>> >>> I'm not sure what you mean. On i386 GNU/Linux, annota1.exp gets zero >>> fails so this would suggest some sort of ISA specific bug? > > > The problem is specific to any ISA that uses delayed breakpoints... I think > that's just the Power64. Keep going .... what problem? >>> I see this lets GDB accept the ``warning: adjusting breakpoint'' >>> message. I'm wondering if GDB should even emit the warning - it and the >>> descriptor are very much integral parts of the ABI - and hence should be >>> trying to always display the descriptor symbol and code address (and not >>> display the dot symbol). > > > I think I agree. Unless this level of detail is needed by the user for some > reason. And I don't think they need to be reminded every time the breakpoint > is hit. But that's the way the code is. The testsuite should reflect the > way the code is, and to a certain extent, the way it was. > > >>> >>> What's going to happen when 64-bit PPC stops emiting those dot symbols? > > > When this happens, then the regexp that I added would never be matched. So > Its kind of self correcting. This sounds like a KFAIL. > Some time later we can just remove the regexp. (that never happens) >>> >> >>>> > 2) Due to a bug (I which I knew the number), GDB 'skids' past the >>>> > top-of-stack when doing a backtrace. This causes two extra and severial >>>> > garbage stack frames to be displayed, eventually getting an error. >> >>> >>> You mean backtracing past main - that code was recently rewritten. >>> However, there's apparently no test case for the feature, perhaphs it it >>> should first be added and fixed?. Anyway, I don't think we should be >>> passing a broken backtrace. >>> > > > Well... this doesn't 'pass' a broken backtrace, it just doesn't let a broken > backtrace stop it from testing what it is really interested in: annotations. That sounds like a KFAIL. > I agree that we need a test for the 'backtracing past main' problem. I will > post one later today, along with a log showing it in action. Which .exp file > would you suggest I use as a model? The first half of siginfo.*? Andrew ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-22 19:54 ` Andrew Cagney @ 2004-09-23 2:13 ` Paul Gilliam 2004-09-23 17:08 ` Michael Chastain 2004-09-23 17:25 ` Michael Chastain 0 siblings, 2 replies; 19+ messages in thread From: Paul Gilliam @ 2004-09-23 2:13 UTC (permalink / raw) To: gdb-patches; +Cc: Andrew Cagney, Michael Chastain [-- Attachment #1: Type: text/plain, Size: 3066 bytes --] Andrew, (I am sorry if this is just a rehash of the past, but it's new to me :-) On Wednesday 22 September 2004 12:51, Andrew Cagney wrote: --- snip --- > > The problem is specific to any ISA that uses delayed breakpoints... I > > think that's just the Power64. > > Keep going .... what problem? > The problem of backtracing past main. It shows up when debugging a 64-bit application. it does NOT show up when debugging a 32-bit application. Both on powerpc64--linux. > >>> I see this lets GDB accept the ``warning: adjusting breakpoint'' > >>> message. I'm wondering if GDB should even emit the warning - it and > >>> the descriptor are very much integral parts of the ABI - and hence > >>> should be trying to always display the descriptor symbol and code > >>> address (and not display the dot symbol). > > > > I think I agree. Unless this level of detail is needed by the user for > > some reason. And I don't think they need to be reminded every time the > > breakpoint is hit. But that's the way the code is. The testsuite should > > reflect the way the code is, and to a certain extent, the way it was. > > > >>> What's going to happen when 64-bit PPC stops emiting those dot symbols? > > > > When this happens, then the regexp that I added would never be matched. > > So Its kind of self correcting. > > This sounds like a KFAIL. > > > Some time later we can just remove the regexp. > > (that never happens) > > >>>> > 2) Due to a bug (I which I knew the number), GDB 'skids' past the > >>>> > top-of-stack when doing a backtrace. This causes two extra and > >>>> > severial garbage stack frames to be displayed, eventually getting an > >>>> > error. > >>> > >>> You mean backtracing past main - that code was recently rewritten. > >>> However, there's apparently no test case for the feature, perhaphs it > >>> it should first be added and fixed?. Anyway, I don't think we should > >>> be passing a broken backtrace. > > > > Well... this doesn't 'pass' a broken backtrace, it just doesn't let a > > broken backtrace stop it from testing what it is really interested in: > > annotations. > > That sounds like a KFAIL. So when testing annotations, it will be a known failure on powerpc64--linux, when debugging a 64-bit application, because backtrace went past main. I agree it is a known failure. But it has nothing to do with annotations. Annotations work fine. I can see what a mess we would have if each test started trying to defend its self against bugs outside of the area being tested. It it well known that a 'KFAIL' durring a test may have nothing to do with what is being tested? Is there an equivelent failure for 'I just can't run this part of the test?' > > > I agree that we need a test for the 'backtracing past main' problem. I > > will post one later today, along with a log showing it in action. Which > > .exp file would you suggest I use as a model? > > The first half of siginfo.*? > > Andrew OK, so I wrote a test for the 'backtracing past main' problem. Here it is along with a couple of logs: [-- Attachment #2: backtrace.exp --] [-- Type: text/plain, Size: 3233 bytes --] # Copyright 2004 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: # bug-gdb@gnu.org # This file is part of the gdb testsuite. if $tracelevel { strace $tracelevel } # # Test for backtrace past main. # set prms_id 0 set bug_id 0 # should 4 digits or less set subr_depth 100 set testfile "backtrace" set srcfile "$subdir/$testfile.c" set escapedsrcfile [string_to_regexp "./$srcfile"] set binfile ${objdir}/${subdir}/${testfile} # Generate the 'c' program. set src_out [open $srcfile "w"] puts $src_out "/* Copyright 2004 Free Software Foundation, Inc. */\n" puts $src_out "/* This file is used by 'backtrace.exp', part of the gdb testsuite. */\n" puts $src_out "#include <stdio.h>\n" puts $src_out [format "void deep_sub_%04d (int up_count, int down_count)" $subr_depth] puts $src_out "{\n printf (\"At the bottom\\n\");\n}\n" for {set i [expr $subr_depth - 1]} {$i > 0} {incr i -1} { puts $src_out [format "void deep_sub_%04d (int up_count, int down_count)" $i] puts $src_out [format "{\n deep_sub_%04d (++up_count, --down_count);\n}\n" [expr $i + 1]] } puts $src_out [format "int main()\n{\n deep_sub_%04d (0, $subr_depth);\n return 0;\n}" 1] close $src_out # Compile the 'c' program. if { [gdb_compile "${srcdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } # Reset and start GDB gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} set test "backtrace past main" # Set a breakpoint at the deepest subroutine. gdb_test [format "break deep_sub_%04d" $subr_depth] "Breakpoint 1 at $hex: file $escapedsrcfile, line $decimal." "$test" # Run the test program. gdb_test "run" "Starting program:.*Breakpoint 1,.*printf \\(\"At the bottom\\\\n\"\\);" "$test" # Do the backtrace. (lots of output) set first_line [format "#0 deep_sub_%04d \\(up_count=%d, down_count=1\\) at $escapedsrcfile:$decimal" $subr_depth [expr $subr_depth - 1]] #$decimal $hex in deep_sub_$decimal .up_count=$decimal, down_count=$decimal) at ./gdb.base/backtrace.c:489 set middle_lines "#$decimal +$hex in deep_sub_$decimal \\(up_count=$decimal, down_count=$decimal\\) at $escapedsrcfile:$decimal" set last_line [format "#%d +$hex in main .. at $escapedsrcfile:$decimal\r\n" $subr_depth] gdb_test_multiple "backtrace" "$test" { -re "$first_line\r\n($middle_lines\r\n)+$last_line$gdb_prompt $" { pass "$test" } } [-- Attachment #3: gdb.log.64 --] [-- Type: text/plain, Size: 14649 bytes --] Test Run By pgilliam on Thu Sep 23 01:47:59 2004 Native configuration is powerpc64-unknown-linux-gnu === gdb tests === Schedule of variations: unix/-m64 Running target unix/-m64 Using ./dejagnu/baseboards/unix.exp as board description file for target. Using ./dejagnu/config/unix.exp as generic interface file for target. Using ./config/unix.exp as tool-and-target-specific interface file. Running ./gdb.base/backtrace.exp ... Executing on host: gcc ./gdb.base/backtrace.c -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/backtrace (timeout = 300) spawn gcc ./gdb.base/backtrace.c -g -lm -m64 -o /home/pgilliam/testsuite/gdb.base/backtrace spawn /usr/bin/gdb -nw -nx GNU gdb Red Hat Linux (6.1post-1.20040607.8rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc64-redhat-linux-gnu". (gdb) set height 0 (gdb) set width 0 (gdb) dir Reinitialize source path to empty? (y or n) y Source directories searched: $cdir:$cwd (gdb) dir ./gdb.base Source directories searched: /home/pgilliam/testsuite/./gdb.base:$cdir:$cwd (gdb) file /home/pgilliam/testsuite/gdb.base/backtrace Reading symbols from /home/pgilliam/testsuite/gdb.base/backtrace...done. Using host libthread_db library "/lib64/tls/libthread_db.so.1". (gdb) break deep_sub_0100 Breakpoint 1 at 0x10000550: file ./gdb.base/backtrace.c, line 9. (gdb) PASS: gdb.base/backtrace.exp: backtrace past main run Starting program: /home/pgilliam/testsuite/gdb.base/backtrace Breakpoint 1, deep_sub_0100 (up_count=99, down_count=1) at ./gdb.base/backtrace.c:9 9 printf ("At the bottom\n"); (gdb) PASS: gdb.base/backtrace.exp: backtrace past main backtrace #0 deep_sub_0100 (up_count=99, down_count=1) at ./gdb.base/backtrace.c:9 #1 0x00000000100005d0 in deep_sub_0099 (up_count=99, down_count=1) at ./gdb.base/backtrace.c:14 #2 0x0000000010000644 in deep_sub_0098 (up_count=98, down_count=2) at ./gdb.base/backtrace.c:19 #3 0x00000000100006b8 in deep_sub_0097 (up_count=97, down_count=3) at ./gdb.base/backtrace.c:24 #4 0x000000001000072c in deep_sub_0096 (up_count=96, down_count=4) at ./gdb.base/backtrace.c:29 #5 0x00000000100007a0 in deep_sub_0095 (up_count=95, down_count=5) at ./gdb.base/backtrace.c:34 #6 0x0000000010000814 in deep_sub_0094 (up_count=94, down_count=6) at ./gdb.base/backtrace.c:39 #7 0x0000000010000888 in deep_sub_0093 (up_count=93, down_count=7) at ./gdb.base/backtrace.c:44 #8 0x00000000100008fc in deep_sub_0092 (up_count=92, down_count=8) at ./gdb.base/backtrace.c:49 #9 0x0000000010000970 in deep_sub_0091 (up_count=91, down_count=9) at ./gdb.base/backtrace.c:54 #10 0x00000000100009e4 in deep_sub_0090 (up_count=90, down_count=10) at ./gdb.base/backtrace.c:59 #11 0x0000000010000a58 in deep_sub_0089 (up_count=89, down_count=11) at ./gdb.base/backtrace.c:64 #12 0x0000000010000acc in deep_sub_0088 (up_count=88, down_count=12) at ./gdb.base/backtrace.c:69 #13 0x0000000010000b40 in deep_sub_0087 (up_count=87, down_count=13) at ./gdb.base/backtrace.c:74 #14 0x0000000010000bb4 in deep_sub_0086 (up_count=86, down_count=14) at ./gdb.base/backtrace.c:79 #15 0x0000000010000c28 in deep_sub_0085 (up_count=85, down_count=15) at ./gdb.base/backtrace.c:84 #16 0x0000000010000c9c in deep_sub_0084 (up_count=84, down_count=16) at ./gdb.base/backtrace.c:89 #17 0x0000000010000d10 in deep_sub_0083 (up_count=83, down_count=17) at ./gdb.base/backtrace.c:94 #18 0x0000000010000d84 in deep_sub_0082 (up_count=82, down_count=18) at ./gdb.base/backtrace.c:99 #19 0x0000000010000df8 in deep_sub_0081 (up_count=81, down_count=19) at ./gdb.base/backtrace.c:104 #20 0x0000000010000e6c in deep_sub_0080 (up_count=80, down_count=20) at ./gdb.base/backtrace.c:109 #21 0x0000000010000ee0 in deep_sub_0079 (up_count=79, down_count=21) at ./gdb.base/backtrace.c:114 #22 0x0000000010000f54 in deep_sub_0078 (up_count=78, down_count=22) at ./gdb.base/backtrace.c:119 #23 0x0000000010000fc8 in deep_sub_0077 (up_count=77, down_count=23) at ./gdb.base/backtrace.c:124 #24 0x000000001000103c in deep_sub_0076 (up_count=76, down_count=24) at ./gdb.base/backtrace.c:129 #25 0x00000000100010b0 in deep_sub_0075 (up_count=75, down_count=25) at ./gdb.base/backtrace.c:134 #26 0x0000000010001124 in deep_sub_0074 (up_count=74, down_count=26) at ./gdb.base/backtrace.c:139 #27 0x0000000010001198 in deep_sub_0073 (up_count=73, down_count=27) at ./gdb.base/backtrace.c:144 #28 0x000000001000120c in deep_sub_0072 (up_count=72, down_count=28) at ./gdb.base/backtrace.c:149 #29 0x0000000010001280 in deep_sub_0071 (up_count=71, down_count=29) at ./gdb.base/backtrace.c:154 #30 0x00000000100012f4 in deep_sub_0070 (up_count=70, down_count=30) at ./gdb.base/backtrace.c:159 #31 0x0000000010001368 in deep_sub_0069 (up_count=69, down_count=31) at ./gdb.base/backtrace.c:164 #32 0x00000000100013dc in deep_sub_0068 (up_count=68, down_count=32) at ./gdb.base/backtrace.c:169 #33 0x0000000010001450 in deep_sub_0067 (up_count=67, down_count=33) at ./gdb.base/backtrace.c:174 #34 0x00000000100014c4 in deep_sub_0066 (up_count=66, down_count=34) at ./gdb.base/backtrace.c:179 #35 0x0000000010001538 in deep_sub_0065 (up_count=65, down_count=35) at ./gdb.base/backtrace.c:184 #36 0x00000000100015ac in deep_sub_0064 (up_count=64, down_count=36) at ./gdb.base/backtrace.c:189 #37 0x0000000010001620 in deep_sub_0063 (up_count=63, down_count=37) at ./gdb.base/backtrace.c:194 #38 0x0000000010001694 in deep_sub_0062 (up_count=62, down_count=38) at ./gdb.base/backtrace.c:199 #39 0x0000000010001708 in deep_sub_0061 (up_count=61, down_count=39) at ./gdb.base/backtrace.c:204 #40 0x000000001000177c in deep_sub_0060 (up_count=60, down_count=40) at ./gdb.base/backtrace.c:209 #41 0x00000000100017f0 in deep_sub_0059 (up_count=59, down_count=41) at ./gdb.base/backtrace.c:214 #42 0x0000000010001864 in deep_sub_0058 (up_count=58, down_count=42) at ./gdb.base/backtrace.c:219 #43 0x00000000100018d8 in deep_sub_0057 (up_count=57, down_count=43) at ./gdb.base/backtrace.c:224 #44 0x000000001000194c in deep_sub_0056 (up_count=56, down_count=44) at ./gdb.base/backtrace.c:229 #45 0x00000000100019c0 in deep_sub_0055 (up_count=55, down_count=45) at ./gdb.base/backtrace.c:234 #46 0x0000000010001a34 in deep_sub_0054 (up_count=54, down_count=46) at ./gdb.base/backtrace.c:239 #47 0x0000000010001aa8 in deep_sub_0053 (up_count=53, down_count=47) at ./gdb.base/backtrace.c:244 #48 0x0000000010001b1c in deep_sub_0052 (up_count=52, down_count=48) at ./gdb.base/backtrace.c:249 #49 0x0000000010001b90 in deep_sub_0051 (up_count=51, down_count=49) at ./gdb.base/backtrace.c:254 #50 0x0000000010001c04 in deep_sub_0050 (up_count=50, down_count=50) at ./gdb.base/backtrace.c:259 #51 0x0000000010001c78 in deep_sub_0049 (up_count=49, down_count=51) at ./gdb.base/backtrace.c:264 #52 0x0000000010001cec in deep_sub_0048 (up_count=48, down_count=52) at ./gdb.base/backtrace.c:269 #53 0x0000000010001d60 in deep_sub_0047 (up_count=47, down_count=53) at ./gdb.base/backtrace.c:274 #54 0x0000000010001dd4 in deep_sub_0046 (up_count=46, down_count=54) at ./gdb.base/backtrace.c:279 #55 0x0000000010001e48 in deep_sub_0045 (up_count=45, down_count=55) at ./gdb.base/backtrace.c:284 #56 0x0000000010001ebc in deep_sub_0044 (up_count=44, down_count=56) at ./gdb.base/backtrace.c:289 #57 0x0000000010001f30 in deep_sub_0043 (up_count=43, down_count=57) at ./gdb.base/backtrace.c:294 #58 0x0000000010001fa4 in deep_sub_0042 (up_count=42, down_count=58) at ./gdb.base/backtrace.c:299 #59 0x0000000010002018 in deep_sub_0041 (up_count=41, down_count=59) at ./gdb.base/backtrace.c:304 #60 0x000000001000208c in deep_sub_0040 (up_count=40, down_count=60) at ./gdb.base/backtrace.c:309 #61 0x0000000010002100 in deep_sub_0039 (up_count=39, down_count=61) at ./gdb.base/backtrace.c:314 #62 0x0000000010002174 in deep_sub_0038 (up_count=38, down_count=62) at ./gdb.base/backtrace.c:319 #63 0x00000000100021e8 in deep_sub_0037 (up_count=37, down_count=63) at ./gdb.base/backtrace.c:324 #64 0x000000001000225c in deep_sub_0036 (up_count=36, down_count=64) at ./gdb.base/backtrace.c:329 #65 0x00000000100022d0 in deep_sub_0035 (up_count=35, down_count=65) at ./gdb.base/backtrace.c:334 #66 0x0000000010002344 in deep_sub_0034 (up_count=34, down_count=66) at ./gdb.base/backtrace.c:339 #67 0x00000000100023b8 in deep_sub_0033 (up_count=33, down_count=67) at ./gdb.base/backtrace.c:344 #68 0x000000001000242c in deep_sub_0032 (up_count=32, down_count=68) at ./gdb.base/backtrace.c:349 #69 0x00000000100024a0 in deep_sub_0031 (up_count=31, down_count=69) at ./gdb.base/backtrace.c:354 #70 0x0000000010002514 in deep_sub_0030 (up_count=30, down_count=70) at ./gdb.base/backtrace.c:359 #71 0x0000000010002588 in deep_sub_0029 (up_count=29, down_count=71) at ./gdb.base/backtrace.c:364 #72 0x00000000100025fc in deep_sub_0028 (up_count=28, down_count=72) at ./gdb.base/backtrace.c:369 #73 0x0000000010002670 in deep_sub_0027 (up_count=27, down_count=73) at ./gdb.base/backtrace.c:374 #74 0x00000000100026e4 in deep_sub_0026 (up_count=26, down_count=74) at ./gdb.base/backtrace.c:379 #75 0x0000000010002758 in deep_sub_0025 (up_count=25, down_count=75) at ./gdb.base/backtrace.c:384 #76 0x00000000100027cc in deep_sub_0024 (up_count=24, down_count=76) at ./gdb.base/backtrace.c:389 #77 0x0000000010002840 in deep_sub_0023 (up_count=23, down_count=77) at ./gdb.base/backtrace.c:394 #78 0x00000000100028b4 in deep_sub_0022 (up_count=22, down_count=78) at ./gdb.base/backtrace.c:399 #79 0x0000000010002928 in deep_sub_0021 (up_count=21, down_count=79) at ./gdb.base/backtrace.c:404 #80 0x000000001000299c in deep_sub_0020 (up_count=20, down_count=80) at ./gdb.base/backtrace.c:409 #81 0x0000000010002a10 in deep_sub_0019 (up_count=19, down_count=81) at ./gdb.base/backtrace.c:414 #82 0x0000000010002a84 in deep_sub_0018 (up_count=18, down_count=82) at ./gdb.base/backtrace.c:419 #83 0x0000000010002af8 in deep_sub_0017 (up_count=17, down_count=83) at ./gdb.base/backtrace.c:424 #84 0x0000000010002b6c in deep_sub_0016 (up_count=16, down_count=84) at ./gdb.base/backtrace.c:429 #85 0x0000000010002be0 in deep_sub_0015 (up_count=15, down_count=85) at ./gdb.base/backtrace.c:434 #86 0x0000000010002c54 in deep_sub_0014 (up_count=14, down_count=86) at ./gdb.base/backtrace.c:439 #87 0x0000000010002cc8 in deep_sub_0013 (up_count=13, down_count=87) at ./gdb.base/backtrace.c:444 #88 0x0000000010002d3c in deep_sub_0012 (up_count=12, down_count=88) at ./gdb.base/backtrace.c:449 #89 0x0000000010002db0 in deep_sub_0011 (up_count=11, down_count=89) at ./gdb.base/backtrace.c:454 #90 0x0000000010002e24 in deep_sub_0010 (up_count=10, down_count=90) at ./gdb.base/backtrace.c:459 #91 0x0000000010002e98 in deep_sub_0009 (up_count=9, down_count=91) at ./gdb.base/backtrace.c:464 #92 0x0000000010002f0c in deep_sub_0008 (up_count=8, down_count=92) at ./gdb.base/backtrace.c:469 #93 0x0000000010002f80 in deep_sub_0007 (up_count=7, down_count=93) at ./gdb.base/backtrace.c:474 #94 0x0000000010002ff4 in deep_sub_0006 (up_count=6, down_count=94) at ./gdb.base/backtrace.c:479 #95 0x0000000010003068 in deep_sub_0005 (up_count=5, down_count=95) at ./gdb.base/backtrace.c:484 #96 0x00000000100030dc in deep_sub_0004 (up_count=4, down_count=96) at ./gdb.base/backtrace.c:489 #97 0x0000000010003150 in deep_sub_0003 (up_count=3, down_count=97) at ./gdb.base/backtrace.c:494 #98 0x00000000100031c4 in deep_sub_0002 (up_count=2, down_count=98) at ./gdb.base/backtrace.c:499 #99 0x0000000010003238 in deep_sub_0001 (up_count=1, down_count=99) at ./gdb.base/backtrace.c:504 #100 0x0000000010003278 in main () at ./gdb.base/backtrace.c:509 #101 0x00000080c5932810 in .generic_start_main () from /lib64/tls/libc.so.6 #102 0x00000080c5932998 in .__libc_start_main () from /lib64/tls/libc.so.6 #103 0x0000000000000000 in ?? () Previous frame identical to this frame (corrupt stack?) (gdb) FAIL: gdb.base/backtrace.exp: backtrace past main testcase ./gdb.base/backtrace.exp completed in 0 seconds Running ./gdb.trace/backtrace.exp ... spawn /usr/bin/gdb -nw -nx GNU gdb Red Hat Linux (6.1post-1.20040607.8rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc64-redhat-linux-gnu". (gdb) set height 0 (gdb) set width 0 (gdb) Executing on host: gcc ./gdb.trace/actions.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.trace/actions (timeout = 300) spawn gcc ./gdb.trace/actions.c -w -g -lm -m64 -o /home/pgilliam/testsuite/gdb.trace/actions file /home/pgilliam/testsuite/gdb.trace/actions Reading symbols from /home/pgilliam/testsuite/gdb.trace/actions...done. Using host libthread_db library "/lib64/tls/libthread_db.so.1". (gdb) tstop Trace can only be run on remote targets. (gdb) tfind none Trace can only be run on remote targets. (gdb) delete breakpoints (gdb) info breakpoints No breakpoints or watchpoints. (gdb) break main Breakpoint 1 at 0x100009f0: file ./gdb.trace/actions.c, line 125. (gdb) run Starting program: /home/pgilliam/testsuite/gdb.trace/actions Breakpoint 1, main (argc=1, argv=0x1fffffff6f8, envp=0x1fffffff708) at ./gdb.trace/actions.c:125 125 begin (); (gdb) dir Reinitialize source path to empty? (y or n) y Source directories searched: $cdir:$cwd (gdb) dir ./gdb.trace Source directories searched: /home/pgilliam/testsuite/./gdb.trace:$cdir:$cwd (gdb) tstatus Trace can only be run on remote targets. (gdb) PASS: gdb.trace/backtrace.exp: Current target does not supporst trace testcase ./gdb.trace/backtrace.exp completed in 1 seconds === gdb Summary === # of expected passes 3 # of unexpected failures 1 Executing on host: /usr/bin/gdb -nw --command gdb_cmd (timeout = 300) spawn /usr/bin/gdb -nw --command gdb_cmd GNU gdb Red Hat Linux (6.1post-1.20040607.8rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc64-redhat-linux-gnu". /usr/bin/gdb version 2004 -nx runtest completed at Thu Sep 23 01:48:00 2004 [-- Attachment #4: gdb.log.32 --] [-- Type: text/plain, Size: 13576 bytes --] Test Run By pgilliam on Thu Sep 23 01:51:24 2004 Native configuration is powerpc64-unknown-linux-gnu === gdb tests === Schedule of variations: unix/-m32 Running target unix/-m32 Using ./dejagnu/baseboards/unix.exp as board description file for target. Using ./dejagnu/config/unix.exp as generic interface file for target. Using ./config/unix.exp as tool-and-target-specific interface file. Running ./gdb.base/backtrace.exp ... Executing on host: gcc ./gdb.base/backtrace.c -g -lm -m32 -o /home/pgilliam/testsuite/gdb.base/backtrace (timeout = 300) spawn gcc ./gdb.base/backtrace.c -g -lm -m32 -o /home/pgilliam/testsuite/gdb.base/backtrace spawn /usr/bin/gdb -nw -nx GNU gdb Red Hat Linux (6.1post-1.20040607.8rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc64-redhat-linux-gnu". (gdb) set height 0 (gdb) set width 0 (gdb) dir Reinitialize source path to empty? (y or n) y Source directories searched: $cdir:$cwd (gdb) dir ./gdb.base Source directories searched: /home/pgilliam/testsuite/./gdb.base:$cdir:$cwd (gdb) file /home/pgilliam/testsuite/gdb.base/backtrace Reading symbols from /home/pgilliam/testsuite/gdb.base/backtrace...done. Using host libthread_db library "/lib64/tls/libthread_db.so.1". (gdb) break deep_sub_0100 Breakpoint 1 at 0x10000440: file ./gdb.base/backtrace.c, line 9. (gdb) PASS: gdb.base/backtrace.exp: backtrace past main run Starting program: /home/pgilliam/testsuite/gdb.base/backtrace Breakpoint 1, deep_sub_0100 (up_count=99, down_count=1) at ./gdb.base/backtrace.c:9 9 printf ("At the bottom\n"); (gdb) PASS: gdb.base/backtrace.exp: backtrace past main backtrace #0 deep_sub_0100 (up_count=99, down_count=1) at ./gdb.base/backtrace.c:9 #1 0x100004a8 in deep_sub_0099 (up_count=99, down_count=1) at ./gdb.base/backtrace.c:14 #2 0x10000504 in deep_sub_0098 (up_count=98, down_count=2) at ./gdb.base/backtrace.c:19 #3 0x10000560 in deep_sub_0097 (up_count=97, down_count=3) at ./gdb.base/backtrace.c:24 #4 0x100005bc in deep_sub_0096 (up_count=96, down_count=4) at ./gdb.base/backtrace.c:29 #5 0x10000618 in deep_sub_0095 (up_count=95, down_count=5) at ./gdb.base/backtrace.c:34 #6 0x10000674 in deep_sub_0094 (up_count=94, down_count=6) at ./gdb.base/backtrace.c:39 #7 0x100006d0 in deep_sub_0093 (up_count=93, down_count=7) at ./gdb.base/backtrace.c:44 #8 0x1000072c in deep_sub_0092 (up_count=92, down_count=8) at ./gdb.base/backtrace.c:49 #9 0x10000788 in deep_sub_0091 (up_count=91, down_count=9) at ./gdb.base/backtrace.c:54 #10 0x100007e4 in deep_sub_0090 (up_count=90, down_count=10) at ./gdb.base/backtrace.c:59 #11 0x10000840 in deep_sub_0089 (up_count=89, down_count=11) at ./gdb.base/backtrace.c:64 #12 0x1000089c in deep_sub_0088 (up_count=88, down_count=12) at ./gdb.base/backtrace.c:69 #13 0x100008f8 in deep_sub_0087 (up_count=87, down_count=13) at ./gdb.base/backtrace.c:74 #14 0x10000954 in deep_sub_0086 (up_count=86, down_count=14) at ./gdb.base/backtrace.c:79 #15 0x100009b0 in deep_sub_0085 (up_count=85, down_count=15) at ./gdb.base/backtrace.c:84 #16 0x10000a0c in deep_sub_0084 (up_count=84, down_count=16) at ./gdb.base/backtrace.c:89 #17 0x10000a68 in deep_sub_0083 (up_count=83, down_count=17) at ./gdb.base/backtrace.c:94 #18 0x10000ac4 in deep_sub_0082 (up_count=82, down_count=18) at ./gdb.base/backtrace.c:99 #19 0x10000b20 in deep_sub_0081 (up_count=81, down_count=19) at ./gdb.base/backtrace.c:104 #20 0x10000b7c in deep_sub_0080 (up_count=80, down_count=20) at ./gdb.base/backtrace.c:109 #21 0x10000bd8 in deep_sub_0079 (up_count=79, down_count=21) at ./gdb.base/backtrace.c:114 #22 0x10000c34 in deep_sub_0078 (up_count=78, down_count=22) at ./gdb.base/backtrace.c:119 #23 0x10000c90 in deep_sub_0077 (up_count=77, down_count=23) at ./gdb.base/backtrace.c:124 #24 0x10000cec in deep_sub_0076 (up_count=76, down_count=24) at ./gdb.base/backtrace.c:129 #25 0x10000d48 in deep_sub_0075 (up_count=75, down_count=25) at ./gdb.base/backtrace.c:134 #26 0x10000da4 in deep_sub_0074 (up_count=74, down_count=26) at ./gdb.base/backtrace.c:139 #27 0x10000e00 in deep_sub_0073 (up_count=73, down_count=27) at ./gdb.base/backtrace.c:144 #28 0x10000e5c in deep_sub_0072 (up_count=72, down_count=28) at ./gdb.base/backtrace.c:149 #29 0x10000eb8 in deep_sub_0071 (up_count=71, down_count=29) at ./gdb.base/backtrace.c:154 #30 0x10000f14 in deep_sub_0070 (up_count=70, down_count=30) at ./gdb.base/backtrace.c:159 #31 0x10000f70 in deep_sub_0069 (up_count=69, down_count=31) at ./gdb.base/backtrace.c:164 #32 0x10000fcc in deep_sub_0068 (up_count=68, down_count=32) at ./gdb.base/backtrace.c:169 #33 0x10001028 in deep_sub_0067 (up_count=67, down_count=33) at ./gdb.base/backtrace.c:174 #34 0x10001084 in deep_sub_0066 (up_count=66, down_count=34) at ./gdb.base/backtrace.c:179 #35 0x100010e0 in deep_sub_0065 (up_count=65, down_count=35) at ./gdb.base/backtrace.c:184 #36 0x1000113c in deep_sub_0064 (up_count=64, down_count=36) at ./gdb.base/backtrace.c:189 #37 0x10001198 in deep_sub_0063 (up_count=63, down_count=37) at ./gdb.base/backtrace.c:194 #38 0x100011f4 in deep_sub_0062 (up_count=62, down_count=38) at ./gdb.base/backtrace.c:199 #39 0x10001250 in deep_sub_0061 (up_count=61, down_count=39) at ./gdb.base/backtrace.c:204 #40 0x100012ac in deep_sub_0060 (up_count=60, down_count=40) at ./gdb.base/backtrace.c:209 #41 0x10001308 in deep_sub_0059 (up_count=59, down_count=41) at ./gdb.base/backtrace.c:214 #42 0x10001364 in deep_sub_0058 (up_count=58, down_count=42) at ./gdb.base/backtrace.c:219 #43 0x100013c0 in deep_sub_0057 (up_count=57, down_count=43) at ./gdb.base/backtrace.c:224 #44 0x1000141c in deep_sub_0056 (up_count=56, down_count=44) at ./gdb.base/backtrace.c:229 #45 0x10001478 in deep_sub_0055 (up_count=55, down_count=45) at ./gdb.base/backtrace.c:234 #46 0x100014d4 in deep_sub_0054 (up_count=54, down_count=46) at ./gdb.base/backtrace.c:239 #47 0x10001530 in deep_sub_0053 (up_count=53, down_count=47) at ./gdb.base/backtrace.c:244 #48 0x1000158c in deep_sub_0052 (up_count=52, down_count=48) at ./gdb.base/backtrace.c:249 #49 0x100015e8 in deep_sub_0051 (up_count=51, down_count=49) at ./gdb.base/backtrace.c:254 #50 0x10001644 in deep_sub_0050 (up_count=50, down_count=50) at ./gdb.base/backtrace.c:259 #51 0x100016a0 in deep_sub_0049 (up_count=49, down_count=51) at ./gdb.base/backtrace.c:264 #52 0x100016fc in deep_sub_0048 (up_count=48, down_count=52) at ./gdb.base/backtrace.c:269 #53 0x10001758 in deep_sub_0047 (up_count=47, down_count=53) at ./gdb.base/backtrace.c:274 #54 0x100017b4 in deep_sub_0046 (up_count=46, down_count=54) at ./gdb.base/backtrace.c:279 #55 0x10001810 in deep_sub_0045 (up_count=45, down_count=55) at ./gdb.base/backtrace.c:284 #56 0x1000186c in deep_sub_0044 (up_count=44, down_count=56) at ./gdb.base/backtrace.c:289 #57 0x100018c8 in deep_sub_0043 (up_count=43, down_count=57) at ./gdb.base/backtrace.c:294 #58 0x10001924 in deep_sub_0042 (up_count=42, down_count=58) at ./gdb.base/backtrace.c:299 #59 0x10001980 in deep_sub_0041 (up_count=41, down_count=59) at ./gdb.base/backtrace.c:304 #60 0x100019dc in deep_sub_0040 (up_count=40, down_count=60) at ./gdb.base/backtrace.c:309 #61 0x10001a38 in deep_sub_0039 (up_count=39, down_count=61) at ./gdb.base/backtrace.c:314 #62 0x10001a94 in deep_sub_0038 (up_count=38, down_count=62) at ./gdb.base/backtrace.c:319 #63 0x10001af0 in deep_sub_0037 (up_count=37, down_count=63) at ./gdb.base/backtrace.c:324 #64 0x10001b4c in deep_sub_0036 (up_count=36, down_count=64) at ./gdb.base/backtrace.c:329 #65 0x10001ba8 in deep_sub_0035 (up_count=35, down_count=65) at ./gdb.base/backtrace.c:334 #66 0x10001c04 in deep_sub_0034 (up_count=34, down_count=66) at ./gdb.base/backtrace.c:339 #67 0x10001c60 in deep_sub_0033 (up_count=33, down_count=67) at ./gdb.base/backtrace.c:344 #68 0x10001cbc in deep_sub_0032 (up_count=32, down_count=68) at ./gdb.base/backtrace.c:349 #69 0x10001d18 in deep_sub_0031 (up_count=31, down_count=69) at ./gdb.base/backtrace.c:354 #70 0x10001d74 in deep_sub_0030 (up_count=30, down_count=70) at ./gdb.base/backtrace.c:359 #71 0x10001dd0 in deep_sub_0029 (up_count=29, down_count=71) at ./gdb.base/backtrace.c:364 #72 0x10001e2c in deep_sub_0028 (up_count=28, down_count=72) at ./gdb.base/backtrace.c:369 #73 0x10001e88 in deep_sub_0027 (up_count=27, down_count=73) at ./gdb.base/backtrace.c:374 #74 0x10001ee4 in deep_sub_0026 (up_count=26, down_count=74) at ./gdb.base/backtrace.c:379 #75 0x10001f40 in deep_sub_0025 (up_count=25, down_count=75) at ./gdb.base/backtrace.c:384 #76 0x10001f9c in deep_sub_0024 (up_count=24, down_count=76) at ./gdb.base/backtrace.c:389 #77 0x10001ff8 in deep_sub_0023 (up_count=23, down_count=77) at ./gdb.base/backtrace.c:394 #78 0x10002054 in deep_sub_0022 (up_count=22, down_count=78) at ./gdb.base/backtrace.c:399 #79 0x100020b0 in deep_sub_0021 (up_count=21, down_count=79) at ./gdb.base/backtrace.c:404 #80 0x1000210c in deep_sub_0020 (up_count=20, down_count=80) at ./gdb.base/backtrace.c:409 #81 0x10002168 in deep_sub_0019 (up_count=19, down_count=81) at ./gdb.base/backtrace.c:414 #82 0x100021c4 in deep_sub_0018 (up_count=18, down_count=82) at ./gdb.base/backtrace.c:419 #83 0x10002220 in deep_sub_0017 (up_count=17, down_count=83) at ./gdb.base/backtrace.c:424 #84 0x1000227c in deep_sub_0016 (up_count=16, down_count=84) at ./gdb.base/backtrace.c:429 #85 0x100022d8 in deep_sub_0015 (up_count=15, down_count=85) at ./gdb.base/backtrace.c:434 #86 0x10002334 in deep_sub_0014 (up_count=14, down_count=86) at ./gdb.base/backtrace.c:439 #87 0x10002390 in deep_sub_0013 (up_count=13, down_count=87) at ./gdb.base/backtrace.c:444 #88 0x100023ec in deep_sub_0012 (up_count=12, down_count=88) at ./gdb.base/backtrace.c:449 #89 0x10002448 in deep_sub_0011 (up_count=11, down_count=89) at ./gdb.base/backtrace.c:454 #90 0x100024a4 in deep_sub_0010 (up_count=10, down_count=90) at ./gdb.base/backtrace.c:459 #91 0x10002500 in deep_sub_0009 (up_count=9, down_count=91) at ./gdb.base/backtrace.c:464 #92 0x1000255c in deep_sub_0008 (up_count=8, down_count=92) at ./gdb.base/backtrace.c:469 #93 0x100025b8 in deep_sub_0007 (up_count=7, down_count=93) at ./gdb.base/backtrace.c:474 #94 0x10002614 in deep_sub_0006 (up_count=6, down_count=94) at ./gdb.base/backtrace.c:479 #95 0x10002670 in deep_sub_0005 (up_count=5, down_count=95) at ./gdb.base/backtrace.c:484 #96 0x100026cc in deep_sub_0004 (up_count=4, down_count=96) at ./gdb.base/backtrace.c:489 #97 0x10002728 in deep_sub_0003 (up_count=3, down_count=97) at ./gdb.base/backtrace.c:494 #98 0x10002784 in deep_sub_0002 (up_count=2, down_count=98) at ./gdb.base/backtrace.c:499 #99 0x100027e0 in deep_sub_0001 (up_count=1, down_count=99) at ./gdb.base/backtrace.c:504 #100 0x10002818 in main () at ./gdb.base/backtrace.c:509 (gdb) PASS: gdb.base/backtrace.exp: backtrace past main testcase ./gdb.base/backtrace.exp completed in 1 seconds Running ./gdb.trace/backtrace.exp ... spawn /usr/bin/gdb -nw -nx GNU gdb Red Hat Linux (6.1post-1.20040607.8rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc64-redhat-linux-gnu". (gdb) set height 0 (gdb) set width 0 (gdb) Executing on host: gcc ./gdb.trace/actions.c -w -g -lm -m32 -o /home/pgilliam/testsuite/gdb.trace/actions (timeout = 300) spawn gcc ./gdb.trace/actions.c -w -g -lm -m32 -o /home/pgilliam/testsuite/gdb.trace/actions file /home/pgilliam/testsuite/gdb.trace/actions Reading symbols from /home/pgilliam/testsuite/gdb.trace/actions...done. Using host libthread_db library "/lib64/tls/libthread_db.so.1". (gdb) tstop Trace can only be run on remote targets. (gdb) tfind none Trace can only be run on remote targets. (gdb) delete breakpoints (gdb) info breakpoints No breakpoints or watchpoints. (gdb) break main Breakpoint 1 at 0x10000880: file ./gdb.trace/actions.c, line 125. (gdb) run Starting program: /home/pgilliam/testsuite/gdb.trace/actions Breakpoint 1, main (argc=1, argv=0xffffe834, envp=0xffffe83c) at ./gdb.trace/actions.c:125 125 begin (); (gdb) dir Reinitialize source path to empty? (y or n) y Source directories searched: $cdir:$cwd (gdb) dir ./gdb.trace Source directories searched: /home/pgilliam/testsuite/./gdb.trace:$cdir:$cwd (gdb) tstatus Trace can only be run on remote targets. (gdb) PASS: gdb.trace/backtrace.exp: Current target does not supporst trace testcase ./gdb.trace/backtrace.exp completed in 0 seconds === gdb Summary === # of expected passes 4 Executing on host: /usr/bin/gdb -nw --command gdb_cmd (timeout = 300) spawn /usr/bin/gdb -nw --command gdb_cmd GNU gdb Red Hat Linux (6.1post-1.20040607.8rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc64-redhat-linux-gnu". /usr/bin/gdb version 2004 -nx runtest completed at Thu Sep 23 01:51:25 2004 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-23 2:13 ` Paul Gilliam @ 2004-09-23 17:08 ` Michael Chastain 2004-09-23 17:25 ` Michael Chastain 1 sibling, 0 replies; 19+ messages in thread From: Michael Chastain @ 2004-09-23 17:08 UTC (permalink / raw) To: pgilliam, gdb-patches; +Cc: cagney I'm Trying to catch up on the thread. I'll do all the fun pontificating here and then get to the specific revised backtrace-past-main patch in another message. Let's start with the delayed breakpoint message. The actual output of gdb is: warning: Breakpoint 3 address previously adjusted from 0x80c5a66c78 to 0x80c59643a8. ^Z^Zbreakpoint 3 That's an observed fact from gdb.log_after_bp_adjust_patch There are two separate questions that arise from this fact: (1) should gdb print this warning? (2) if gdb prints this warning, is that a bug in gdb? Part of the answer to (2) is that the test script should have a separate arm in gdb_test_multiple for that warning. So you are on the right track there. The next question is what the new arm should do. It can either PASS or KFAIL. That depends on the answer to (1). If it's okay for gdb to print this warning, then the result should be PASS. If it's not okay for gdb to print this warning, then the result should be KFAIL. Sometimes you really have to hold people's feet to the fire to get an answer to (2). People will say "it would be better if gdb did not print XXX, but we kinda have to for now", and you have to keep asking "gdb prints XXX. Is that a bug or not?" If you can't get an answer, it's always safe to file a PR and KFAIL it. If it is a KFAIL, or even if it's a PASS, it's useful to put in a comment that recapitulates the discussion about the feature. Something like: "this happens on ppc-64, because blah blah, gilliam 2004-09-23". paul> It it well known that a 'KFAIL' durring a test may have nothing paul> to do with what is being tested? Yes. The very first KFAIL was in gdb.cp/annota2.exp, for PR gdb/544, which is not an annotation bug but is actually a control-c handling race in the event loop. Michael ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-23 2:13 ` Paul Gilliam 2004-09-23 17:08 ` Michael Chastain @ 2004-09-23 17:25 ` Michael Chastain 1 sibling, 0 replies; 19+ messages in thread From: Michael Chastain @ 2004-09-23 17:25 UTC (permalink / raw) To: pgilliam, gdb-patches; +Cc: cagney This is good work. Here's my nit-picking. The main issue is generating backtrace.c versus a static file. Michael . ChangeLog entry . Drop the "Please email any bugs, comments, ..." inside the file. . It's elegant to generate the C program, but there are a couple of problems. You're writing on the source tree which screws up people who run multiple test runs out of the same source tree simultaneously. And all the external calls need error checking. And there is a copyright notice in backtrace.c, but no license. Just drop the generation and supply backtrace.c like a normal file. That loses the ability to change subr_depth easily, but that's okay. . subr_depth is still cool, you just have to document that it has to match backtrace.c. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Fixes testsuit/gdb.base/annota1.exp 2004-09-21 21:43 Paul Gilliam 2004-09-22 14:01 ` Andrew Cagney @ 2004-09-23 17:25 ` Michael Chastain 1 sibling, 0 replies; 19+ messages in thread From: Michael Chastain @ 2004-09-23 17:25 UTC (permalink / raw) To: pgilliam, gdb-patches Paul Gilliam <pgilliam@us.ibm.com> wrote: > I have attached three patches: seperate patches for these two problems > and one patch that fixes them both. I have also attached test logs so > you can see what's up. > > Ok to commit? (which one(s)?) I'm going to let these go for now. When we get backtrace.exp settled, you can submit these again. Please submit each patch separately. Michael ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2005-05-28 22:55 UTC | newest] Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-04-07 17:27 [PATCH] Fixes testsuit/gdb.base/annota1.exp Paul Gilliam 2005-04-14 19:36 ` Daniel Jacobowitz 2005-04-15 23:03 ` [PATCH] add new .exp file and a 'c' testfile to test backtrace limits etc Paul Gilliam 2005-04-30 18:49 ` Daniel Jacobowitz 2005-05-28 23:42 ` Daniel Jacobowitz 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp to deal with 'Breakpoint address adjusted' Paul Gilliam 2005-04-27 15:43 ` Daniel Jacobowitz 2005-04-27 21:47 ` [COMMIT] " Paul Gilliam 2005-04-15 23:38 ` [PATCH] Fixes testsuit/gdb.base/annota1.exp Paul Gilliam 2005-04-27 15:49 ` Daniel Jacobowitz 2005-04-27 20:02 ` Paul Gilliam -- strict thread matches above, loose matches on Subject: below -- 2004-09-21 21:43 Paul Gilliam 2004-09-22 14:01 ` Andrew Cagney 2004-09-22 16:56 ` Paul Gilliam 2004-09-22 19:54 ` Andrew Cagney 2004-09-23 2:13 ` Paul Gilliam 2004-09-23 17:08 ` Michael Chastain 2004-09-23 17:25 ` Michael Chastain 2004-09-23 17:25 ` Michael Chastain
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox