* symtab.c (find_pc_sect_line): Don't consider end-of-function
authorDaniel Jacobowitz <drow@false.org>
Mon, 13 Jan 2003 21:59:53 +0000 (21:59 +0000)
committerDaniel Jacobowitz <drow@false.org>
Mon, 13 Jan 2003 21:59:53 +0000 (21:59 +0000)
lines.

gdb/ChangeLog
gdb/symtab.c

index bb81289001b8d97b4b82eb41f8f204bf16bfbe06..82d63fddf177354274c518803ef41787097d8e64 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-13  Daniel Jacobowitz  <drow@mvista.com>
+
+       * symtab.c (find_pc_sect_line): Don't consider end-of-function
+       lines.
+
 2003-01-13  Daniel Jacobowitz  <drow@mvista.com>
 
        * thread-db.c (attach_thread): Prototype.
index 7eab19f53df6222226d3e8a4d1b2aad8a2088859..15f4c3f15b6e74a93c0e1d67cb4191a777324f5a 100644 (file)
@@ -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;