aboutsummaryrefslogtreecommitdiff
path: root/gdb/linespec.c
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2003-07-23 19:24:31 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2003-07-23 19:24:31 +0000
commit63cd419876d64ed916be1b2246505f103ce39b06 (patch)
tree88849103f84602341487ef85f08e3000d5afdf77 /gdb/linespec.c
parent686d097cefe09674e6dad9ccd7154f9176d067ed (diff)
downloadgdb-63cd419876d64ed916be1b2246505f103ce39b06.zip
gdb-63cd419876d64ed916be1b2246505f103ce39b06.tar.gz
gdb-63cd419876d64ed916be1b2246505f103ce39b06.tar.bz2
2003-07-23 Michal Ludvig <mludvig@suse.cz>
Elena Zannoni <ezannoni@redhat.com> * linespec.c (decode_line_2): Avoid crash if find_function_start_sal() returns empty record.
Diffstat (limited to 'gdb/linespec.c')
-rw-r--r--gdb/linespec.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/gdb/linespec.c b/gdb/linespec.c
index b8f7274..4b863ef 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -483,11 +483,18 @@ decode_line_2 (struct symbol *sym_arr[], int nelts, int funfirstline,
if (sym_arr[i] && SYMBOL_CLASS (sym_arr[i]) == LOC_BLOCK)
{
values.sals[i] = find_function_start_sal (sym_arr[i], funfirstline);
- printf_unfiltered ("[%d] %s at %s:%d\n",
- (i + 2),
- SYMBOL_PRINT_NAME (sym_arr[i]),
- values.sals[i].symtab->filename,
- values.sals[i].line);
+ if (values.sals[i].symtab)
+ printf_unfiltered ("[%d] %s at %s:%d\n",
+ (i + 2),
+ SYMBOL_PRINT_NAME (sym_arr[i]),
+ values.sals[i].symtab->filename,
+ values.sals[i].line);
+ else
+ printf_unfiltered ("[%d] %s at ?FILE:%d [No symtab? Probably broken debug info...]\n",
+ (i + 2),
+ SYMBOL_PRINT_NAME (sym_arr[i]),
+ values.sals[i].line);
+
}
else
printf_unfiltered ("?HERE\n");