aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/symtab.c13
2 files changed, 12 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5828b50..6d9bd88 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-26 Jim Blandy <jimb@redhat.com>
+
+ * symtab.c (find_pc_sect_line): Revert change of 2001-11-13; add
+ comment explaining that hand-written assembly code can have line
+ number info but no debug info for an enclosing function.
+
2001-11-26 Jakub Jelinek <jakub@redhat.com>
* sparc-nat.c (fetch_inferior_registers): Don't rely
diff --git a/gdb/symtab.c b/gdb/symtab.c
index baef703..ef4db9d 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1570,13 +1570,12 @@ find_pc_sect_line (CORE_ADDR pc, struct sec *section, int notcurrent)
INIT_SAL (&val); /* initialize to zeroes */
- /* Don't even think about line numbers if we can't find a function
- symbol for PC. */
- if (find_pc_function (pc) == NULL)
- {
- val.pc = pc;
- return val;
- }
+ /* It's tempting to assume that, if we can't find debugging info for
+ any function enclosing PC, that we shouldn't search for line
+ number info, either. However, GAS can emit line number info for
+ assembly files --- very helpful when debugging hand-written
+ assembly code. In such a case, we'd have no debug info for the
+ function, but we would have line info. */
if (notcurrent)
pc -= 1;