Add new step-line test.
This commit is contained in:
parent
25d53da1c8
commit
3207ec212c
5 changed files with 231 additions and 1 deletions
|
@ -1,3 +1,12 @@
|
|||
2001-03-26 Kevin Buettner <kevinb@redhat.com>
|
||||
|
||||
* gdb.base/Makefile.in (EXECUTABLES): Add step-line.
|
||||
* gdb.base/step-line.exp: New file. Test step/next in presence of
|
||||
#line directives.
|
||||
* gdb.base/step-line.c: New file. Test program for the above.
|
||||
* gdb.base/step-line.inp: New file. We pretend that this file has
|
||||
been transformed by some other tool into step-line.c.
|
||||
|
||||
2001-03-21 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* gdb.c++/userdef.exp: Check that GDB tolerates whitespace in
|
||||
|
|
|
@ -10,7 +10,8 @@ EXECUTABLES = all-types annota1 bitfields break \
|
|||
pointers pointers2 printcmds ptype \
|
||||
recurse reread reread1 restore return run \
|
||||
scope section_command setshow setvar shmain sigall signals \
|
||||
solib solib_sl so-impl-ld so-indr-cl step-test structs structs2 \
|
||||
solib solib_sl so-impl-ld so-indr-cl \
|
||||
step-line step-test structs structs2 \
|
||||
twice-tmp varargs vforked-prog watchpoint whatis
|
||||
|
||||
MISCELLANEOUS = coremmap.data ../foobar.baz \
|
||||
|
|
84
gdb/testsuite/gdb.base/step-line.c
Normal file
84
gdb/testsuite/gdb.base/step-line.c
Normal file
|
@ -0,0 +1,84 @@
|
|||
/* Test step/next in presence of #line directives.
|
||||
Copyright 2001
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
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. */
|
||||
|
||||
void dummy (int, int);
|
||||
int f1 (int);
|
||||
int f2 (int);
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
i = f1 (4);
|
||||
i = f1 (i);
|
||||
dummy (0, i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
f1 (int i)
|
||||
{
|
||||
#line 40 "step-line.c"
|
||||
dummy (1, i);
|
||||
#line 24 "step-line.inp"
|
||||
i = f2 (i);
|
||||
#line 44 "step-line.c"
|
||||
dummy (2, i);
|
||||
#line 25 "step-line.inp"
|
||||
i = f2 (i);
|
||||
#line 48 "step-line.c"
|
||||
dummy (3, i);
|
||||
#line 26 "step-line.inp"
|
||||
return i;
|
||||
#line 52 "step-line.c"
|
||||
}
|
||||
|
||||
int
|
||||
f2 (int i)
|
||||
{
|
||||
#line 31 "step-line.inp"
|
||||
int j;
|
||||
#line 60 "step-line.c"
|
||||
dummy (4, i);
|
||||
#line 32 "step-line.inp"
|
||||
j = i;
|
||||
#line 64 "step-line.c"
|
||||
dummy (5, i);
|
||||
dummy (6, j);
|
||||
#line 33 "step-line.inp"
|
||||
j = j + 1;
|
||||
#line 69 "step-line.c"
|
||||
dummy (7, i);
|
||||
dummy (8, j);
|
||||
#line 34 "step-line.inp"
|
||||
j = j - i;
|
||||
#line 74 "step-line.c"
|
||||
dummy (9, i);
|
||||
dummy (10, j);
|
||||
#line 35 "step-line.inp"
|
||||
return i;
|
||||
#line 79 "step-line.c"
|
||||
}
|
||||
|
||||
void
|
||||
dummy (int num, int i)
|
||||
{
|
||||
}
|
95
gdb/testsuite/gdb.base/step-line.exp
Normal file
95
gdb/testsuite/gdb.base/step-line.exp
Normal file
|
@ -0,0 +1,95 @@
|
|||
# Copyright 2001 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
|
||||
# use this to debug:
|
||||
#
|
||||
#log_user 1
|
||||
|
||||
# step-line.exp -- Expect script to test stepping in files with
|
||||
# #line directives.
|
||||
|
||||
if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
|
||||
set testfile step-line
|
||||
set srcfile ${srcdir}/${subdir}/${testfile}.c
|
||||
set binfile ${objdir}/${subdir}/${testfile}
|
||||
|
||||
remote_exec build "rm -f ${binfile}"
|
||||
if { [gdb_compile "${srcfile}" "${binfile}" executable {debug}] != "" } {
|
||||
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
|
||||
}
|
||||
|
||||
gdb_exit
|
||||
gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
if ![runto_main] then {
|
||||
fail "Can't run to main"
|
||||
return 0
|
||||
}
|
||||
|
||||
gdb_test "break f1" ".*Breakpoint 2 at .* file step-line.c.*" "break f1"
|
||||
gdb_test "continue" \
|
||||
"Continuing.*Breakpoint 2, f1 \\(i=4\\).*dummy \\(1, i\\);" \
|
||||
"continue to f1"
|
||||
gdb_test "next" \
|
||||
".*i = f2 \\(i\\);.*" \
|
||||
"next over dummy 1"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(2, i\\);.*" \
|
||||
"next to dummy 2"
|
||||
gdb_test "next" \
|
||||
".*i = f2 \\(i\\);.*" \
|
||||
"next over dummy 2"
|
||||
gdb_test "step" \
|
||||
".*f2 \\(i=4\\).*dummy \\(4, i\\);.*" \
|
||||
"step into f2"
|
||||
gdb_test "next" \
|
||||
".*j = i;.*" \
|
||||
"next over dummy 4"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(5, i\\);.*" \
|
||||
"next to dummy 5"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(6, j\\);.*" \
|
||||
"next to dummy 6"
|
||||
gdb_test "next" \
|
||||
".*j = SUCC \\(j\\);.*" \
|
||||
"next over dummy 6"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(7, i\\);.*" \
|
||||
"next to dummy 7"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(8, j\\);.*" \
|
||||
"next to dummy 8"
|
||||
gdb_test "next" \
|
||||
".*j = j - i;.*" \
|
||||
"next over dummy 8"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(9, i\\);.*" \
|
||||
"next to dummy 9"
|
||||
gdb_test "next" \
|
||||
".*dummy \\(10, j\\);.*" \
|
||||
"next to dummy 10"
|
||||
gdb_test "next" \
|
||||
".*RETURN \\(j\\);.*" \
|
||||
"next over dummy 10"
|
||||
return 0
|
41
gdb/testsuite/gdb.base/step-line.inp
Normal file
41
gdb/testsuite/gdb.base/step-line.inp
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Test step/next in presence of #line directives
|
||||
# Copyright 2001
|
||||
# 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. */
|
||||
|
||||
# We pretend that this file has been transformed by some other tool
|
||||
# into step-line.c.
|
||||
|
||||
FUNCTION f1 (i : INTEGER);
|
||||
BEGIN
|
||||
i = f2 (i);
|
||||
i = f2 (i);
|
||||
RETURN (i);
|
||||
END
|
||||
|
||||
FUNCTION f2 (i : INTEGER);
|
||||
BEGIN
|
||||
VARIABLE j : INTEGER
|
||||
j = i;
|
||||
j = SUCC (j);
|
||||
j = j - i;
|
||||
RETURN (j);
|
||||
END
|
||||
|
||||
BEGIN
|
||||
VARIABLE i : INTEGER;;
|
||||
|
||||
END
|
Loading…
Add table
Reference in a new issue