summaryrefslogtreecommitdiff
path: root/gdb/symtab.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2003-01-13 21:59:53 +0000
committerDaniel Jacobowitz <dan@debian.org>2003-01-13 21:59:53 +0000
commitacf26b1ae83bbd7b64e5764f3eb043c08a071f41 (patch)
treec93c0b078607dee83a64200830bd8c8455ec897a /gdb/symtab.c
parent62d5b5a39fdfeb4a67240039a0b985d03a1544e1 (diff)
downloadgdb-acf26b1ae83bbd7b64e5764f3eb043c08a071f41.tar.gz
* symtab.c (find_pc_sect_line): Don't consider end-of-function
lines.
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r--gdb/symtab.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 7eab19f53df..15f4c3f15b6 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1,8 +1,8 @@
/* Symbol table lookup for the GNU debugger, GDB.
Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
- 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software
- Foundation, Inc.
+ 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
This file is part of GDB.
@@ -2012,9 +2012,11 @@ find_pc_sect_line (CORE_ADDR pc, struct sec *section, int notcurrent)
the first line, prev will not be set. */
/* Is this file's best line closer than the best in the other files?
- If so, record this file, and its best line, as best so far. */
+ If so, record this file, and its best line, as best so far. Don't
+ save prev if it represents the end of a function (i.e. line number
+ 0) instead of a real line. */
- if (prev && (!best || prev->pc > best->pc))
+ if (prev && prev->line && (!best || prev->pc > best->pc))
{
best = prev;
best_symtab = s;