blob: e2c0c0676207f152c88b1e84f9a942d5ba3ce2b6 [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_gdb_test "90-gdb-set auto-raise-load-levels 1" ".*90\\^done" "Set auto-raise-load-levels"
mi_gdb_test "93-gdb-set env SHELL /bin/tcsh" "93\\^done" "Set env SHELL"
mi_gdb_test "95-gdb-set env NSUnbufferedIO YES" "95\\^done" "Set env NSUnbufferedIO"
mi_gdb_test "97-gdb-set env DYLD_NEW_LOCAL_SHARED_REGIONS YES" "97\\^done" "Set env DYLD_NEW_LOCAL_SHARED_REGIONS"
mi_gdb_test "100-gdb-set env DYLD_NO_FIX_PREBINDING YES" "100\\^done" "Set dnv DYLD_NO_FIX_PREBINDING"
mi_gdb_test "101-gdb-set env SECURITYSESSIONID 485830" "101\\^done" "Set env SECURITYSESSIONID"
mi_gdb_test "105-gdb-set inferior-auto-start-cfm off" "105\\^done" "Set inferior-auto-start-cfm"
mi_delete_breakpoints
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
mi_gdb_test "117-exec-arguments" "117\\^done" "exec-arguments"
mi_gdb_test "118sharedlibrary apply-load-rules all" ".*118\\^done" "sharedlibrary apply-load-rules all"
mi_gdb_test "119-mi-verify-command file-fix-file-is-grooved" "119\\^done,name=\"file-fix-file-is-grooved\",defined=\"true\",implemented=\"true\"" "verify file-fix-file-is-grooved"
mi_gdb_test "120-file-fix-file-is-grooved" "120\\^done,supported=\"1\",details=\"Yes grooved!\"" "file-fix-file-is-grooved"
mi_gdb_test "121-break-insert -l -1 -f -s $binfile \"$srcfile:12\"" "121\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*$srcfile\",line=\"12\",shlib=\"$binfile\",times=\"0\"\}" "Set breakpoint at main"
send_gdb "123-exec-run\n"
gdb_expect {
-re ".*running\[\r\n]$gdb_prompt (\r\n=shlibs-added.*)*" {
pass "Exec run"
}
}
gdb_expect { -re ".*stopped.*$gdb_prompt" { pass "Stopped at first breakpoint" }
-re "$gdb_prompt $" {
fail "failed to hit first breakpoint"
}
timeout {
fail "(timeout) failed to hit first breakpoint"
}
}
mi_gdb_test "125-pid-info" "125\\^done,process-id=\"$decimal\".*" "pid-info"
mi_gdb_test "126-thread-list-ids" "126\\^done,thread-ids={thread-id=\"1\"},number-of-threads=\"1\"" "thread-list-ids"
mi_gdb_test "127-mi-verify-command stack-list-frames-lite" "127\\^done,name=\"stack-list-frames-lite\",defined=\"true\",implemented=\"true\"" "Verify stack-list-frames-lite"
mi_gdb_test "0-thread-select 1" "0\\^done,new-thread-id=\"1\",frame=\{func=\"main\",args=\\\[\{name=\"argc\",value=\"1\"\},\{name=\"argv\",value=\"$hex\"\}\\\],file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"12\"\,dir=\".*\"\},line=\"12\",file=\".*$srcfile\"" "thread-select 1"
mi_gdb_test "128-stack-list-frames-lite -limit 500" "128\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"1\"" "stack-list-frames-lite"
mi_gdb_test "129-stack-list-frames 0 0" "129\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"12\",dir=\".*\"\}\\\]" "stack-list-frames 0 0"
mi_gdb_test "10-stack-select-frame 0" "10\\^done" "Select stack frame 0"
mi_gdb_test "131-stack-list-arguments 2 0 0" "131\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[varobj=\{exp=\"argc\",value=\"1\",name=\"var1\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"argv\",value=\"$hex\",name=\"var2\",numchild=\"1\",type=\"char \\\*\\\*\",typecode=\"PTR\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]\}\\\]" "stack-list-arguments 2 0 0"
mi_gdb_test "20-stack-select-frame 0" "20\\^done" "Select stack frame 0"
mi_gdb_test "132-stack-list-locals 2 1" "132\\^done,locals=\\\[varobj=\{exp=\"x\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var3\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"result\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var4\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"false\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"n\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var5\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"false\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"i\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var6\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"false\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]" "stack-list-locals 2 1"
mi_gdb_test "133-mi-verify-command file-list-statics" "133\\^done,name=\"file-list-statics\",defined=\"true\",implemented=\"true\"" "verify file-list-statics"
mi_gdb_test "134-file-list-statics -file \"\\\*CURRENT FRAME\\\*\" -shlib \"\" --no-values -filter \"\\^_OBJC\" -constants 0" "134\\^done,statics=\\\[\\\]" "file-list-statics"
mi_gdb_test "30-stack-select-frame 0" "30\\^done" "Select stack frame 0"
mi_gdb_test "135-var-update \"var1\" \"var2\" \"var3\" \"var4\" \"var5\" \"var6\"" "135\\^done,changelist=\\\[\\\]" "var-update vars 1-6"
mi_gdb_test "136-exec-next" "136\\^running.*136\\\*stopped,reason=\"end-stepping-range\",thread-id=\"1\"" "Exec next"
mi_gdb_test "137-thread-list-ids" "137\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "thread-list-ids"
mi_gdb_test "138-stack-list-frames-lite -limit 500" "138\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"1\"" "stack-list-frames-lite"
mi_gdb_test "139-stack-list-frames 0 0" "139\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"14\",dir=\".*\"\}\\\]" "stack-list-frames 0 0"
mi_gdb_test "40-stack-select-frame 0" "40\\^done" "Select stack frame 0"
mi_gdb_test "142-var-update \"var1\" \"var2\" \"var3\" \"var4\" \"var5\" \"var6\"" "142\\^done,changelist=\\\[varobj=\{name=\"var4\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"var5\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"var6\",in_scope=\"true\",type_changed=\"false\"\}\\\]" "var-update"
mi_gdb_test "50-stack-select-frame 0" "50\\^done" "Select stack frame 0"
mi_gdb_test "143-var-evaluate-expression \"var1\"" "143\\^done,value=\"1\"" "var-evaluate-expression var1"
mi_gdb_test "60-stack-select-frame 0" "60\\^done" "Select stack frame 0"
mi_gdb_test "144-var-evaluate-expression \"var4\"" "144\\^done,value=\"<value temporarily unavailable, due to optimizations>\"" "var-evaluate-expression var4"
mi_gdb_test "70-stack-select-frame 0" "70\\^done" "Select stack frame 0"
mi_gdb_test "145-var-evaluate-expression \"var5\"" "145\\^done,value=\"<value temporarily unavailable, due to optimizations>\"" "var-evaluate-expression var5"
mi_gdb_test "80-stack-select-frame 0" "80\\^done" "Select stack frame 0"
mi_gdb_test "146-var-evaluate-expression \"var6\"" "146\\^done,value=\"<value temporarily unavailable, due to optimizations>\"" "var-evaluate-expression var6"
mi_gdb_test "90-stack-select-frame 0" "90\\^done" "Select stack frame 0"
mi_gdb_test "208-exec-step" "208\\^running.*208\\\*stopped,frame=\{func\"foo \\\inlined\\\]\".*line=\"27\",file=\".*$srcfile\",reason=\"end-stepping-range\".*208\\^done" "Exec step"
mi_gdb_test "209-thread-list-ids" ".*209\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "threat-list-ids"
mi_gdb_test "210-stack-list-frames-lite -limit 500" "210\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\},1=\{pc=\"$hex\",fp=\"$hex\"}],valid=\"1\",count=\"2\"" "stack-list-frames-lite"
mi_gdb_test "211-stack-list-frames 0 0" "211\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"27\",dir=\".*\"\}\\\]" "stack-list-frames"
mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame 0"
mi_gdb_test "214-stack-list-arguments 2 0 0" "214\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[varobj=\{exp=\"argc\",value=\"1\",name=\"var7\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"argv\",value=\"$hex\",name=\"var8\",numchild=\"1\",type=\"char \\\*\\\*\",typecode=\"PTR\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]\}\\\]" "stack-list-arguments 2 0 0"
mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame"
mi_gdb_test "215-stack-list-locals 2 1" "215\\^done,locals=\\\[varobj=\{exp=\"x\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var9\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"result\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var10\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"n\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var11\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"i\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var12\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]" "stack-list-locals"
mi_gdb_test "216-file-list-statics -file \"\\\*CURRENT FRAME\\\*\" -shlib \"\" --no-values -filter \"\\^_OBJC\" -constants 0" "216\\\^done,statics=\\\[\\\]" "file-list-statics"
# mi_gdb_test "217-data-read-memory -- 0x00000000 x 1 1 100" "217\\^done,addr=\"$hex\",nr-bytes=\"0\",total-bytes=\"100\",next-row=\"$hex\",prev-row=\"$hex\",next-page=\"$hex\",prev-page=\"$hex\",memory=\\\[\{addr=\"$hex\",data=\\\[\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\"\\\]\}\\\]" "data-read-memory"
mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame"
mi_gdb_test "218-var-update \"var7\" \"var8\" \"var9\" \"var10\" \"var11\" \"var12\"" "218\\^done,changelist=\\\[\\\]" "var-update"
mi_gdb_test "220-exec-next" "220\\^running.*220\\\*stopped,reason=\"end-stepping-range\",thread-id=\"1\"" "Exec next"
mi_gdb_test "221-thread-list-ids" "221\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "thread-list-ids"
mi_gdb_test "222-stack-list-frames-lite -limit 500" "222\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\},1=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"2\"" "stack-list-frames-lite"
mi_gdb_test "223-stack-list-frames 0 1" "223\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"29\",dir=\".*\"\},frame=\{level=\"1\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"14\",dir=\".*\"\}\\\]" "stack-list-frames 0 1"
mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame 0"
mi_gdb_test "226-var-update \"var7\" \"var8\" \"var9\" \"var10\" \"var11\" \"var12\"" "226\\^done,changelist=\\\[varobj=\{name=\"var9\",in_scope=\"true\",type_changed=\"false\"\}.*\\\]" "var update 7-12"
mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame 0"
mi_gdb_test "227-var-evaluate-expression \"var9\"" "227\\^done,value=\"12345\"" "var-evaluate var9"
mi_gdb_test "228-exec-finish" "228\\^running.*228\\\*stopped,reason=\"function-finished\",thread-id=\"1\",gdb-result-var=\".*\",return-value=\"39\"" "Exec finish"
mi_gdb_test "150-thread-list-ids" "150\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "thread-list-ids"
mi_gdb_test "151-stack-list-frames-lite -limit 500" "151\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"1\"" "stack-list-frames-lite"
mi_gdb_test "152-stack-list-frames 0 0" "152\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"16\",dir=\".*\"\}\\\]" "stack-list-frames 0 0"
mi_gdb_test "233-var-delete \"var7\"" "233\\^done,ndeleted=\"1\"" "delete var7"
mi_gdb_test "234-var-delete \"var8\"" "234\\^done,ndeleted=\"1\"" "delete var8"
mi_gdb_test "235-var-delete \"var9\"" "235\\^done,ndeleted=\"1\"" "delete var9"
mi_gdb_test "236-var-delete \"var10\"" "236\\^done,ndeleted=\"1\"" "delete var10"
mi_gdb_test "237-var-delete \"var11\"" "237\\^done,ndeleted=\"1\"" "delete var11"
mi_gdb_test "238-var-delete \"var12\"" "238\\^done,ndeleted=\"1\"" "delete var12"
mi_gdb_test "200-stack-select-frame 0" "200\\^done" "Select stack frame 0"
mi_gdb_test "155-var-update \"var1\" \"var2\" \"var3\" \"var4\" \"var5\" \"var6\"" "155\\^done,changelist=\\\[varobj=\{name=\"var3\",in_scope=\"true\",type_changed=\"false\"\}.*\\\]" "var-update"
mi_gdb_test "210-stack-select-frame 0" "210\\^done" "Select stack frame 0"
mi_gdb_test "156-var-evaluate-expression \"var3\"" "156\\^done,value=\"12345\"" "var-evaluate-expression var3"
mi_gdb_test "164-exec-continue" "164\\^running.*164\\\*stopped,reason=\"exited-normally\"" "Finish program"
mi_gdb_exit
return 0