diff options
author | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2003-07-23 19:24:31 +0000 |
---|---|---|
committer | Elena Zannoni <ezannoni@kwikemart.cygnus.com> | 2003-07-23 19:24:31 +0000 |
commit | 63cd419876d64ed916be1b2246505f103ce39b06 (patch) | |
tree | 88849103f84602341487ef85f08e3000d5afdf77 /gdb/linespec.c | |
parent | 686d097cefe09674e6dad9ccd7154f9176d067ed (diff) | |
download | gdb-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.c | 17 |
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"); |