From a35ad96ac88af299d42c45c71ac153e35c34c057 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Tue, 29 Nov 2011 16:59:45 +0000 Subject: [PATCH] New gdb.base/infoline.exp testcase. gdb/testsuite/ChangeLog: * gdb.base/infoline.c, gdb.base/infoline.exp: New files. --- gdb/testsuite/ChangeLog | 4 ++++ gdb/testsuite/gdb.base/infoline.c | 30 ++++++++++++++++++++++++++++++ gdb/testsuite/gdb.base/infoline.exp | 30 ++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 gdb/testsuite/gdb.base/infoline.c create mode 100644 gdb/testsuite/gdb.base/infoline.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 04da9f5..8070a74 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2011-11-29 Joel Brobecker + + * gdb.base/infoline.c, gdb.base/infoline.exp: New files. + 2011-11-28 Joel Brobecker * gdb.ada/fullname_bp: New testcase. diff --git a/gdb/testsuite/gdb.base/infoline.c b/gdb/testsuite/gdb.base/infoline.c new file mode 100644 index 0000000..7b0da2b --- /dev/null +++ b/gdb/testsuite/gdb.base/infoline.c @@ -0,0 +1,30 @@ +/* Copyright 2011 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 3 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, see . */ + +int twice (int i) { /* THIS LINE */ + /* We purposefully put the return type, function prototype and + opening curly brace on the same line, in an effort to make sure + that the function prologue would be associated to that line. */ + return 2 * i; +} + +int +main (void) +{ + int t = twice (1); + return 0; +} diff --git a/gdb/testsuite/gdb.base/infoline.exp b/gdb/testsuite/gdb.base/infoline.exp new file mode 100644 index 0000000..41ff894 --- /dev/null +++ b/gdb/testsuite/gdb.base/infoline.exp @@ -0,0 +1,30 @@ +# Copyright (C) 2011 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 3 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, see . + +set testfile infoline +set srcfile ${testfile}.c + +if { [prepare_for_testing ${testfile}.exp ${testfile}] } { + return -1 +} + +clean_restart ${testfile} + +# Verify that the "info line" command does not skip function prologues. +# If it did, GDB would tell us that the line we're interested in starts +# at where N is different from zero. +set fun_decl_line [gdb_get_line_number "THIS LINE"] +gdb_test "info line ${srcfile}:${fun_decl_line}" \ + "Line ${fun_decl_line} of \".*${testfile}\.c\" starts at address 0x\[0-9a-f\]+ and ends at .*" -- 2.7.4