This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fixes testsuit/gdb.base/annota1.exp


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.
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)" }
  }
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" }
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: gdb.log_after_both_patches
Description: Text document

Attachment: gdb.log_after_bt_skid_patch
Description: Text document

Attachment: gdb.log_after_bp_adjust_patch
Description: Text document

Attachment: gdb.log_before
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]