diff options
author | Fred Fish <fnf@specifix.com> | 1995-11-25 19:55:29 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1995-11-25 19:55:29 +0000 |
commit | 782445c7aa2722092434b23adfb27e27acfd9e06 (patch) | |
tree | 055b2886c76b645574a00b03c3aee2fe95373e00 /gdb/testsuite/gdb.base/nodebug.exp | |
parent | 9b041f69fc5372c05d5d8a067d8263c12c2a3abb (diff) | |
download | gdb-782445c7aa2722092434b23adfb27e27acfd9e06.zip gdb-782445c7aa2722092434b23adfb27e27acfd9e06.tar.gz gdb-782445c7aa2722092434b23adfb27e27acfd9e06.tar.bz2 |
From Rob Savoye (rob@poseidon.cygnus.com)
* Makefile.in, configure.in, gdb.base/{Makefile.in, configure.in},
gdb.c++/{Makefile.in, configure.in}, gdb.chill/{Makefile.in, configure.in},
gdb.disasm/{Makefile.in, configure.in}, gdb.stabs/{Makefile.in, configure.in},
gdb.threads/{Makefile.in, configure.in}: Major reworking for autoconfig.
* aclocal.m4, configure, gdb.base/configure, gdb.c++/configure,
gdb.disasm/configure, gdb.stabs/configure, gdb.stabs/default.mt : New files.
* config/unix-gdb.exp: Make GDB global.
* gdb.base/{a1-selftest.exp, a2-run.exp,bitfields.exp, break.exp, callfuncs.exp,
commands.exp, corefile.exp, crossload.exp, exprs.exp, funcargs.exp, interrupt.exp,
langs.exp, list.exp, mips_pro.exp, nodebug.exp, opaque.exp, printcmds.exp,
ptype.exp, recurse.exp, regs.exp, return.exp, scope.exp, setvar.exp, sigall.exp,
signals.exp, term.exp, twice.exp, watchpoint.exp, whatis.exp},
gdb.c++/{classes.exp, callfuncs.exp, inherit.exp, misc.exp, templates.exp,
virtfunc.exp}, gdb.chill/{callch.exp, chillvars.exp, misc.exp, pr-4975.exp,
pr-5016.exp, pr-5020.exp, pr-5022.exp, pr-5646.exp, pr-5984.exp, pr-6292.exp,
pr-6632.exp, pr-8134.exp, pr-8136.exp, result.exp, string.exp, tuples.exp},
gdb.disasm/{hppa.exp, sh3.exp}, gdb.stabs/weird.exp: Change continues
to returns as necessary, arrange for test to compile own testcase executable.
* lib/gdb.exp: Changes for testsuite to compile own test cases.
From Fred Fish (fnf@cygnus.com)
* gdb.c++/classes.exp (test_pointers_to_class_members): Add
clear_xfail at end of test which might not call either pass or fail.
* gdb.base/a1-selftest.exp: Add i*86-*-linuxaout xfail for
"backtrace through signal handler".
Diffstat (limited to 'gdb/testsuite/gdb.base/nodebug.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/nodebug.exp | 204 |
1 files changed, 108 insertions, 96 deletions
diff --git a/gdb/testsuite/gdb.base/nodebug.exp b/gdb/testsuite/gdb.base/nodebug.exp index 98b4c9f..4ad7f89 100644 --- a/gdb/testsuite/gdb.base/nodebug.exp +++ b/gdb/testsuite/gdb.base/nodebug.exp @@ -7,103 +7,115 @@ if $tracelevel then { set prms_id 0 set bug_id 0 -set binfile $objdir/$subdir/nodebug - -if ![file exists $binfile] then { - perror "$binfile does not exist." - return 0 -} else { - gdb_reinitialize_dir $srcdir/$subdir - gdb_load $binfile - source gdb.base/nodebug.ci - - 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. - - if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } - gdb_test "p top" \ - "{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <top>" - if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } - gdb_test "whatis top" \ - "(<(text variable|function), no debug info>|short \\(\\))" - gdb_test "ptype top" "(short|int) \\((|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)" - - if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } - gdb_test "p middle" \ - "{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <middle>" - if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } - gdb_test "whatis middle" \ - "(<(text variable|function), no debug info>|short \\(\\))" - 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*" - gdb_test "p datalocal" "= 4" - setup_xfail "rs6000*-*-aix*" - setup_xfail "powerpc*-*-aix*" - gdb_test "whatis datalocal" "<(data variable|variable), no debug info>" - setup_xfail "rs6000*-*-aix*" - setup_xfail "powerpc*-*-aix*" - 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*" - gdb_test "p bsslocal" "= 0" - setup_xfail "rs6000*-*-aix*" - setup_xfail "powerpc*-*-aix*" - gdb_test "whatis bsslocal" "<(data variable|variable), no debug info>" - setup_xfail "rs6000*-*-aix*" - setup_xfail "powerpc*-*-aix*" - gdb_test "ptype bsslocal" "<(data variable|variable), no debug info>" +set testfile nodebug +set srcfile ${srcdir}/$subdir/${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +if { [compile "${srcfile} -o ${binfile}"] != "" } { + perror "Couldn't compile ${srcfile}" + return -1 +} - gdb_test "backtrace" "#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" "#0.*inner.*#1.*#2.*top.*#3.*main.*" \ +execute_anywhere "rm -f ${binfile}.ci" +if { [compile "-E ${srcdir}/${subdir}/compiler.c > ${binfile}.ci"] != "" } { + perror "Couldn't make ${testfile}.ci file" + return -1 +} +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile +source ${binfile}.ci + +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. + + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } + gdb_test "p top" \ + "{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <top>" + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } + gdb_test "whatis top" \ + "(<(text variable|function), no debug info>|short \\(\\))" + gdb_test "ptype top" "(short|int) \\((|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)" + + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } + gdb_test "p middle" \ + "{(<(text variable|function), no debug info>|short \\(\\))} \[0-9a-fx]* <middle>" + if {!$gcc_compiled} then { setup_xfail "mips-sgi-irix5*" } + gdb_test "whatis middle" \ + "(<(text variable|function), no debug info>|short \\(\\))" + 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*" } + gdb_test "p datalocal" "= 4" + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + 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*" } + 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*" } + gdb_test "p bsslocal" "= 0" + setup_xfail "rs6000*-*-aix*" + setup_xfail "powerpc*-*-aix*" + if {!$gcc_compiled} then { setup_xfail "hppa*-*-hpux*" } + 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*" } + gdb_test "ptype bsslocal" "<(data variable|variable), no debug info>" + + gdb_test "backtrace" "#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" "#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. - 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 [runto middle] then { - gdb_test "backtrace" "#0.*middle.*#1.*top.*#2.*main.*" \ - "backtrace from middle in nodebug.exp" - } + + # This test is not as obscure as it might look. `p getenv ("TERM")' + # is a real-world example, at least on many systems. + 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 [runto middle] then { + gdb_test "backtrace" "#0.*middle.*#1.*top.*#2.*main.*" \ + "backtrace from middle in nodebug.exp" } } |