diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
commit | c906108c21474dfb4ed285bcc0ac6fe02cd400cc (patch) | |
tree | a0015aa5cedc19ccbab307251353a41722a3ae13 /gdb/testsuite/gdb.base/nodebug.exp | |
parent | cd946cff9ede3f30935803403f06f6ed30cad136 (diff) | |
download | binutils-gdb-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.gz |
Initial creation of sourceware repositorygdb-4_18-branchpoint
Diffstat (limited to 'gdb/testsuite/gdb.base/nodebug.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/nodebug.exp | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/nodebug.exp b/gdb/testsuite/gdb.base/nodebug.exp new file mode 100644 index 00000000000..e4f8a355d21 --- /dev/null +++ b/gdb/testsuite/gdb.base/nodebug.exp @@ -0,0 +1,163 @@ +# Copyright (C) 1997 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# Test that things still (sort of) work when compiled without -g. + +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + +set testfile nodebug +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ""] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +# Create and source the file that provides information about the compiler +# used to compile the test case. +if [get_compiler_info ${binfile}] { + return -1; +} + +source ${binfile}.ci + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +if [runto inner] then { + + # Expect to find global/local symbols in each of text/data/bss. + + # The exact format for some of this output is not necessarily + # ideal, particularly interpreting "p top" requires a fair bit of + # savvy about gdb's workings and the meaning of the "{}" + # construct. So the details maybe could be tweaked. But the + # basic purpose should be maintained, which is (a) users should be + # able to interact with these variables with some care (they have + # to know how to interpret them according to their real type, + # since gdb doesn't know the type), but (b) users should be able + # to detect that gdb does not know the type, rather than just + # being told they are ints or functions returning int like old + # versions of gdb used to do. + + # On alpha (and other ecoff systems) the native compilers put + # out debugging info for non-aggregate return values of functions + # even without -g, which should be accepted. + # Irix5, even though it is ELF, counts as "ecoff" because it + # encapsulates ecoff debugging info in a .mdebug section. + # Irix6 gcc omits no debug info at all for static functions and + # variables, so all tests involving statics fail. + + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" } + gdb_test "p top" \ + "{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <top>" + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" } + gdb_test "whatis top" \ + "(<(text variable|function), no debug info>|short \\(\\))" + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "ptype top" "(short|int) \\((|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)" + + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } + setup_xfail "mips-sgi-irix6*" + gdb_test "p middle" \ + "{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <middle>" + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } + setup_xfail "mips-sgi-irix6*" + gdb_test "whatis middle" \ + "(<(text variable|function), no debug info>|short \\(\\))" + setup_xfail "mips-sgi-irix6*" + gdb_test "ptype middle" "(short|int) \\((|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)" + + gdb_test "p dataglobal" "= 3" + gdb_test "whatis dataglobal" \ + "<(data variable|variable), no debug info>" + gdb_test "ptype dataglobal" "<(data variable|variable), no debug info>" + + # The only symbol xcoff puts out for statics is for the TOC entry. + # Possible, but hairy, for gdb to deal. Right now it doesn't, it + # doesn't know the variables exist at all. + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "p datalocal" "= 4" + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "whatis datalocal" "<(data variable|variable), no debug info>" + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "ptype datalocal" "<(data variable|variable), no debug info>" + + gdb_test "p bssglobal" "= 0" + gdb_test "whatis bssglobal" "<(data variable|variable), no debug info>" + gdb_test "ptype bssglobal" "<(data variable|variable), no debug info>" + + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "p bsslocal" "= 0" + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "whatis bsslocal" "<(data variable|variable), no debug info>" + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "ptype bsslocal" "<(data variable|variable), no debug info>" + + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + gdb_test "backtrace 10" "#0.*inner.*#1.*middle.*#2.*top.*#3.*main.*" \ + "backtrace from inner in nodebug.exp" + # Or if that doesn't work, at least hope for the external symbols + # Commented out because if we aren't going to xfail the above test + # ever, why bother with a weaker test? + #gdb_test "backtrace 10" "#0.*inner.*#1.*#2.*top.*#3.*main.*" \ + # "backtrace from inner in nodebug.exp for externals" + + # This test is not as obscure as it might look. `p getenv ("TERM")' + # is a real-world example, at least on many systems. + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" "mips-sgi-irix6*" } + if [target_info exists gdb,cannot_call_functions] { + setup_xfail "*-*-*" 2416 + fail "p/c array_index(\"abcdef\",2)" + } else { + gdb_test {p/c array_index("abcdef",2)} " = 99 'c'" + } + + # Now, try that we can give names of file-local symbols which happen + # to be unique, and have it still work + if {$gcc_compiled} then { setup_xfail "mips-sgi-irix6*" } + if [runto middle] then { + gdb_test "backtrace 10" "#0.*middle.*#1.*top.*#2.*main.*" \ + "backtrace from middle in nodebug.exp" + } +} |