blob: 133af257e5105d65e9d5e6415e88b29a186c3c97 [file] [log] [blame]
# Copyright 2005 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.
#
# test running programs
#
load_lib mi-support.exp
set MIFLAGS "-i=mi1"
gdb_exit
if [mi_gdb_start] {
continue
}
set testfile "nested-inlines"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if ![istarget "i\[3-6\]86-apple-darwin*"] {
verbose "Skipping x86 inlining tests."
return
}
if [target_info exists darwin64] {
verbose "i386 inlining tests not designed for x86-64, skipping."
return
}
set additional_flags "additional_flags=-O3"
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
if {$debug_default_format_is_dwarf == 0 } then {
return;
}
mi_delete_breakpoints
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
mi_run_to_main
mi_gdb_test "801-break-insert -l -1 nested-inlines.c:72" "801\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"baz\",file=\".*nested-inlines.c\",line=\"72\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\".*\",file=\".*nested-inlines.c\",line=\"72\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"baz\",file=\".*nested-inlines.c\",line=\"72\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\".*\",file=\".*nested-inlines.c\",line=\"72\",shlib=\"$binfile\",times=\"0\"\}" "Set break at end of baz"
mi_gdb_test "802-break-insert -l -1 nested-inlines.c:50" "802\\^done,bkpt=\{number=\"6\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\".*\",file=\".*nested-inlines.c\",line=\"50\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"7\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"foo\",file=\".*nested-inlines.c\",line=\"50\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"8\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\".*\",file=\".*nested-inlines.c\",line=\"50\",shlib=\"$binfile\",times=\"0\"\}" "Set break at end of bar"
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
# PLAN A
mi_gdb_test "302-exec-step" "302\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_gdb_test "303-exec-step" "303\\\*stopped,frame=\{func=\"bar \\\[inlined\\\].*line=\"43\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into second inlined function (bar)"
mi_gdb_test "304-exec-step" "304\\\*stopped,frame=\{func=\"baz \\\[inlined\\\].*line=\"62\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into third inlined function (baz)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" "63" "stepping through baz (1)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (2)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (3)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (4)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (5)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (6)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (7)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through baz (8)"
mi_continue_to ".*" "baz \\\[inlined\\\]" "" "nested-inlines.c" "72" "Continue to end of baz"
# mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" "72" "stepping through baz (9)"
mi_step_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "44" "stepping out of (inlined) baz back to bar"
mi_gdb_test "324-stack-list-frames 0 0" "324\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"bar \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"44\",dir=\".*\"\}\\\]" "Verifying location in bar"
mi_next_to "bar \\\[inlined\\\]" "" "nested-inlines.c" ".*" "stepping through bar (1)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (2)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (3)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (4)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (5)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (6)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (7)"
mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (8)"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (9)"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (10)"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (11)"
mi_continue_to ".*" "bar \\\[inlined\\\]" "" "nested-inlines.c" "50" "Continue to end of bar"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (12)"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (13)"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (14)"
# mi_next_to ".*" "" "nested-inlines.c" ".*" "stepping through bar (15)"
# mi_next_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "50" "stepping through bar (16)"
# mi_continue_to "6" "bar \\\[inlined\\\]" "" "nested-inlines.c" "50" "Continue to end of bar"
mi_step_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" "stepping out of (inlined) bar back to foo"
mi_gdb_test "345-stack-list-frames 0 0" "345\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_next_to "main" "" "nested-inlines.c" "16" "stepping out of (inlined) foo back to main"
mi_gdb_test "347-stack-list-frames 0 0" "347\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_delete_breakpoints
# TEST B
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
# mi_gdb_test "401-exec-next" ".*401\\^running.*401\\\*stopped,reason=\"end-stepping-range\",thread-id=\"1\"" "Step to first inlined call site"
mi_next_to "main" "" "nested-inlines.c" "16" "Next over inlined subroutine (foo)."
mi_gdb_test "303-stack-list-frames 0 0" "303\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in main"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST C
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "302-exec-step" "302\\\*stopped,frame=\{func=\"foo \\\[inlined\\\].*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "303-stack-list-frames 0 0" "303\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST D
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "402-exec-step" "402\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_next_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" "Next over inlined subroutine (bar)."
mi_gdb_test "404-stack-list-frames 0 0" "404\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "406-stack-list-frames 0 0" "406\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST E
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "502-exec-step" "502\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_gdb_test "503-exec-step" "503\\\*stopped,frame=\{func=\"bar \\\[inlined\\\]\".*line=\"43\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into second inlined function (bar)"
mi_finish_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" ".*" "49" "Finish out of inlined function (bar)"
mi_gdb_test "505-stack-list-frames 0 0" "505\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "507-stack-list-frames 0 0" "507\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in main"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST F
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "602-exec-step" "602\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_gdb_test "603-exec-step" "603\\\*stopped,frame=\{func=\"bar \\\[inlined\\\]\".*line=\"43\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into second inlined function (bar)"
mi_next_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "44" "Next over inlined function (baz)"
mi_gdb_test "605-stack-list-frames 0 0" "605\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"bar \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"44\",dir=\".*\"\}\\\]" "Verifying location in bar"
mi_next_to "bar \\\[inlined\\\]" "" "nested-inlines.c" ".*" "Next in bar"
mi_finish_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" ".*" "49" "Finish out of inlined function (bar)"
mi_gdb_test "608-stack-list-frames 0 0" "608\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "610-stack-list-frames 0 0" "610\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST G
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "502-exec-step" "502\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_gdb_test "503-exec-step" "503\\\*stopped,frame=\{func=\"bar \\\[inlined\\\]\".*line=\"43\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into second inlined function (bar)"
mi_gdb_test "504-exec-step" "504\\\*stopped,frame=\{func=\"baz \\\[inlined\\\]\".*line=\"62\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into third inlined function (baz)"
mi_finish_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "44" ".*" "12345" "Finish out of inlined function (baz)"
mi_gdb_test "506-stack-list-frames 0 0" "506\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"bar \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"44\",dir=\".*\"\}\\\]" "Verifying location in bar"
mi_finish_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" ".*" "49" "Finish out of inlined function (bar)"
mi_gdb_test "508-stack-list-frames 0 0" "508\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "510-stack-list-frames 0 0" "510\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in main"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST H
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "602-exec-step" "602\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_gdb_test "603-exec-step" "603\\\*stopped,frame=\{func=\"bar \\\[inlined\\\]\".*line=\"43\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into second inlined function (bar)"
mi_gdb_test "604-exec-step" "604\\\*stopped,frame=\{func=\"baz \\\[inlined\\\]\".*line=\"62\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into third inlined function (baz)"
mi_next_to "baz \\\[inlined\\\]" "" "nested-inlines.c" "63" "Next in baz"
mi_finish_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "44" ".*" "12345" "Finish out of inlined function (baz)"
mi_gdb_test "607-stack-list-frames 0 0" "607\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"bar \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"44\",dir=\".*\"\}\\\]" "Verifying location in bar"
mi_next_to "bar \\\[inlined\\\]" "" "nested-inlines.c" ".*" "Next in bar"
mi_finish_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" ".*" "49" "Finish out of inlined function (bar)"
mi_gdb_test "610-stack-list-frames 0 0" "610\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "612-stack-list-frames 0 0" "612\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in main"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST I
mi_run_to_main
mi_next_to "main" "" "nested-inlines.c" "14" "Step to first inlined call site"
mi_gdb_test "502-exec-step" "502\\\*stopped,frame=\{func=\"foo \\\[inlined\\\]\".*line=\"27\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into first inlined function (foo)"
mi_gdb_test "503-exec-step" "503\\\*stopped,frame=\{func=\"bar \\\[inlined\\\]\".*line=\"43\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into second inlined function (bar)"
mi_gdb_test "504-exec-step" "504\\\*stopped,frame=\{func=\"baz \\\[inlined\\\]\".*line=\"62\",file=\".*nested-inlines.c\",reason=\"end-stepping-range\".*" "Step into third inlined function (baz)"
# gdb_test "up" ".*bar.*inlined.*" "up (to bar)"
# gdb_test "up" ".*foo.*inlined.*" "up (to foo)"
# gdb_test "up" ".*main.*" "up (to main)"
# gdb_test "down" ".*foo.*inlined.*" "down (to foo)"
# gdb_test "down" ".*bar.*inlined.*" "down (to bar)"
# gdb_test "up" ".*foo.*inlined.*" "up (to foo)"
# gdb_test "down" ".*bar.*inlined.*" "down (to bar)"
# gdb_test "down" ".*baz.*inlined.*" "down (to baz)"
# gdb_test "up" ".*bar.*inlined.*" "up (to bar)"
# gdb_test "down" ".*baz.*inlined.*" "down (to baz)"
mi_finish_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "44" ".*" "12345" "Finish out of inlined function (baz)"
mi_gdb_test "506-stack-list-frames 0 0" "506\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"bar \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"44\",dir=\".*\"\}\\\]" "Verifying location in bar"
mi_finish_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" ".*" "49" "Finish out of inlined function (bar)"
mi_gdb_test "508-stack-list-frames 0 0" "508\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "510-stack-list-frames 0 0" "510\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in main"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
# TEST J
mi_run_to_main
mi_gdb_test "301-break-insert bar" "301\\^done,bkpt=\{number=\"18\",type=\"inlined subroutine breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"baz\",file=\".*nested-inlines.c\",line=\"38\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"19\",type=\"inlined subroutine breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\".*\",file=\".*nested-inlines.c\",line=\".*\",shlib=\"$binfile\",times=\"0\"\},bkpt=\{number=\"20\",type=\"inlined subroutine breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\".*\",file=\".*nested-inlines.c\",line=\".*\",shlib=\"$binfile\",times=\"0\"\}" "Set breakpoint on inlined function (bar)"
mi_continue_to ".*" ".*" "" "nested-inlines.c" "43" "Hit breakpoint on bar"
# mi_gdb_test "302-exec-continue" ".*302\\^running.*302\\\*stopped,reason=\"breakpoint-hit\".*" "Hit breakpoint on bar"
mi_next_to "bar \\\[inlined\\\]" "" "nested-inlines.c" "44" "Step over inlined function (baz)"
mi_finish_to "foo \\\[inlined\\\]" "" "nested-inlines.c" "29" ".*" "49" "Finish out of inlined function (bar)"
mi_gdb_test "305-stack-list-frames 0 0" "305\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*nested-inlines.c\",.*line=\"29\",dir=\".*\"\}\\\]" "Verifying location in foo"
mi_finish_to "main" "" "nested-inlines.c" "16" ".*" "39" "Finish out of inlined function (foo)"
mi_gdb_test "307-stack-list-frames 0 0" "307\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*nested-inlines.c\",.*line=\"16\",dir=\".*\"\}\\\]" "Verifying location in main"
mi_next_to "main" "" "nested-inlines.c" "19" "Next in main"
mi_gdb_exit
return 0