+2002-09-27 Kevin Buettner <kevinb@redhat.com>
+
+ * gdb.base/annota1.exp (info break): Make directory components of
+ path optional since not all compilers emit this debug information.
+
+ * gdb.base/shlib-call.exp (step inside shr2): Don't fail if first
+ step ends up stepping out of the function instead of stopping on
+ the epilogue.
+
2002-09-26 Keith Seitz <keiths@redhat.com>
* lib/insight-support.exp (gdbtk_start): Figure out where
#
send_gdb "info break\n"
gdb_expect {
- -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-headers\r\n\r\n\032\032field 0\r\nNum \r\n\032\032field 1\r\nType \r\n\032\032field 2\r\nDisp \r\n\032\032field 3\r\nEnb \r\n\032\032field 4\r\nAddress +\r\n\032\032field 5\r\nWhat\r\n\r\n\032\032breakpoints-table\r\n\r\n\032\032record\r\n\r\n\032\032field 0\r\n1 \r\n\032\032field 1\r\nbreakpoint \r\n\032\032field 2\r\nkeep \r\n\032\032field 3\r\ny \r\n\032\032field 4\r\n$hex +\r\n\032\032field 5\r\nin main at ${srcdir}/${subdir}/${srcfile}:$main_line\r\n\r\n\032\032breakpoints-table-end\r\n$gdb_prompt$" \
+ -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-headers\r\n\r\n\032\032field 0\r\nNum \r\n\032\032field 1\r\nType \r\n\032\032field 2\r\nDisp \r\n\032\032field 3\r\nEnb \r\n\032\032field 4\r\nAddress +\r\n\032\032field 5\r\nWhat\r\n\r\n\032\032breakpoints-table\r\n\r\n\032\032record\r\n\r\n\032\032field 0\r\n1 \r\n\032\032field 1\r\nbreakpoint \r\n\032\032field 2\r\nkeep \r\n\032\032field 3\r\ny \r\n\032\032field 4\r\n$hex +\r\n\032\032field 5\r\nin main at (${srcdir}/${subdir}/)?${srcfile}:$main_line\r\n\r\n\032\032breakpoints-table-end\r\n$gdb_prompt$" \
{pass "breakpoint info"}
-re ".*$gdb_prompt$" { fail "breakpoint info" }
timeout { fail "breakpoint info (timeout)" }
#step -return
send_gdb "step\n"
+ # A step at this point will either take us entirely out of
+ # the function or into the function's epilogue. The exact
+ # behavior will differ depending upon upon whether or not
+ # the compiler emits line number information for the epilogue.
gdb_expect {
- -re ".*\\\}.*$gdb_prompt $" { pass "step inside shr2 (shlib func)"}
- -re ".*$gdb_prompt $" { fail "step inside shr2 (shlib func)" }
- timeout { fail "step inside shr2 (shlib func) (timeout)" }
- }
-
- send_gdb "step\n"
- gdb_expect {
- -re "main \\(\\) at.*g = mainshr1\\(g\\);.*$gdb_prompt $" { pass "step out of shr2 to main"}
- -re ".*$gdb_prompt $" { fail "step out of shr2 to main" }
+ -re "main \\(\\) at.*g = mainshr1\\(g\\);.*$gdb_prompt $" {
+ pass "step out of shr2 to main"
+ }
+ -re ".*\\\}.*$gdb_prompt $" {
+ pass "step out of shr2 to main (stopped in shr2 epilogue)"
+ send_gdb "step\n"
+ gdb_expect {
+ -re "main \\(\\) at.*g = mainshr1\\(g\\);.*$gdb_prompt $" { pass "step out of shr2 epilogue to main"}
+ -re ".*$gdb_prompt $" { fail "step out of shr2 epilogue to main" }
+ timeout { fail "step out of shr2 epilogue to main (timeout)" }
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "step out of shr2" }
timeout { fail "step out of shr2 to main (timeout)" }
}
+
#print mainshr1(1)
send_gdb "print mainshr1(1)\n"