diff options
author | Tiago Daitx <tdaitx@sourceware.org> | 2013-01-24 20:36:03 +0000 |
---|---|---|
committer | Tiago Daitx <tdaitx@sourceware.org> | 2013-01-24 20:36:03 +0000 |
commit | 2077afddd4575079d8b4a9592a45d600242f3257 (patch) | |
tree | c4b1578abb5ca617829c6543855cd93ab315faff /gdb | |
parent | 63da4037661bdbabb8389b5090dc1cf4446935a9 (diff) | |
download | gdb-2077afddd4575079d8b4a9592a45d600242f3257.zip gdb-2077afddd4575079d8b4a9592a45d600242f3257.tar.gz gdb-2077afddd4575079d8b4a9592a45d600242f3257.tar.bz2 |
gdb/
* symtab.c (skip_prologue_using_sal): Consider a file
change the same as an increased line number
gdb/testsuite/
* gdb.base/prologue-include.c: New file.
* gdb.base/prologue-include.exp: New file.
* gdb.base/prologue-include.h: New file.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/symtab.c | 4 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/prologue-include.c | 25 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/prologue-include.exp | 26 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/prologue-include.h | 19 |
6 files changed, 85 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b6192d0..94071bf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2013-01-24 Ulrich Weigand <uweigand@de.ibm.com> + + * symtab.c (skip_prologue_using_sal): Consider a file + change the same as an increased line number + 2013-01-24 Tiago Stürmer Daitx <tdaitx@linux.vnet.ibm.com> * MAINTAINERS (Write After Approval): Add myself to the list. diff --git a/gdb/symtab.c b/gdb/symtab.c index d40436a..b200b36 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -4905,6 +4905,10 @@ skip_prologue_using_sal (struct gdbarch *gdbarch, CORE_ADDR func_addr) line mark the prologue -> body transition. */ if (sal.line >= prologue_sal.line) break; + /* Likewise if we are in a different symtab altogether + (e.g. within a file included via #include). */ + if (sal.symtab != prologue_sal.symtab) + break; /* The line number is smaller. Check that it's from the same function, not something inlined. If it's inlined, diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 62cd554..46c7c57 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-01-24 Tiago Stürmer Daitx <tdaitx@linux.vnet.ibm.com> + + * gdb.base/prologue-include.c: New file. + * gdb.base/prologue-include.exp: New file. + * gdb.base/prologue-include.h: New file. + 2013-01-24 Hafiz Abid Qadeer <abidh@codesourcery.com> PR gdb/13443 diff --git a/gdb/testsuite/gdb.base/prologue-include.c b/gdb/testsuite/gdb.base/prologue-include.c new file mode 100644 index 0000000..c393e75 --- /dev/null +++ b/gdb/testsuite/gdb.base/prologue-include.c @@ -0,0 +1,25 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2013 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 <http://www.gnu.org/licenses/>. */ + +int +main (void) +{ + int i, j; +#include "prologue-include.h" + return 0; +} + diff --git a/gdb/testsuite/gdb.base/prologue-include.exp b/gdb/testsuite/gdb.base/prologue-include.exp new file mode 100644 index 0000000..ed378b8 --- /dev/null +++ b/gdb/testsuite/gdb.base/prologue-include.exp @@ -0,0 +1,26 @@ +# Copyright (C) 2013 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 <http://www.gnu.org/licenses/>. + +standard_testfile + +if { [prepare_for_testing ${testfile}.exp ${testfile}] } { + return -1 +} + +set bp_main [gdb_get_line_number "break main" ${testfile}.h] + +gdb_test "break main" \ + "Breakpoint.*at.* file .*$testfile.h, line $bp_main\\." \ + "breakpoint main" diff --git a/gdb/testsuite/gdb.base/prologue-include.h b/gdb/testsuite/gdb.base/prologue-include.h new file mode 100644 index 0000000..77843e0 --- /dev/null +++ b/gdb/testsuite/gdb.base/prologue-include.h @@ -0,0 +1,19 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2013 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 <http://www.gnu.org/licenses/>. */ + + i = 2; /* break main should stop here */ + j = 2; |