As discussed on IRC, gdb can crash on the following sequence: gdb b [ctrl-c before tab-completion is done] b (segmentation fault) The problem comes because the dwarf2read.c tries to discover the full linkage name of symbols, and assumes that it won't be interrupted. But the *_type_print* and *_print_type* functions do contain calls to QUIT. I'm sure it also occurs at times other than tab-completion--any time a psymtab being converted to a symtab is interrupted. This patch adjusts the functions in question to conditionally call quit based on the variable show, which is -1 when they are called to discover the full linkage name--among other times. Sterling 2011-06-10 Sterling Augustine * typeprint.h (TYPE_PRINT_QUIT): New macro. * psymtab.c (map_symbol_filenames_psymtab): Call QUIT. * p-typeprint.c (pascal_type_print_varspec_prefix): Call TYPE_PRINT_QUIT instead of QUIT. (pascal_type_print_varspec_suffix): Likewise. (pascal_type_print_base): Likewise. * m2-typeprint.c (m2_print_type): Likewise. * jv-typeprint.c (java_type_print_base): Likewise. * f-typeprint.c: Include typeprint.h. (f_type_print_varspec_prefix): Call TYPE_PRINT_QUIT instead of QUIT. (f_type_print_varspec_suffix): Likewise. (f_type_print_base): Likewise. * c-typeprint.c (c_type_print_varspec_prefix): Likewise. (c_type_print_varspec_suffix): Likewise. (c_type_print_base): Likewise. Remove extraneous calls to QUIT. * ada-typeprint.c (print_enum_type): Add show parameter. Call TYPE_PRINT_QUIT. (ada_print_type): Likewise.