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] |
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] |