OSDN Git Service

* symtab.c (find_pc_sect_line): Don't consider end-of-function
authordrow <drow>
Mon, 13 Jan 2003 21:59:49 +0000 (21:59 +0000)
committerdrow <drow>
Mon, 13 Jan 2003 21:59:49 +0000 (21:59 +0000)
lines.

gdb/ChangeLog
gdb/symtab.c

index bb81289..82d63fd 100644 (file)
@@ -1,5 +1,10 @@
 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.
        (struct private_thread_info): Remove lwpid.  Add thread handle (th),
        thread information (ti), and valid flags (th_valid, ti_valid).
index 7eab19f..15f4c3f 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;