See gdb ChangeLog entry with header:
Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com> for a rather huge set of changes. I was going to put them here, but it made cvs dump core. :-(
This commit is contained in:
parent
dc88c64e2c
commit
b607efe714
537
gdb/ChangeLog
537
gdb/ChangeLog
@ -1,3 +1,540 @@
|
||||
Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
|
||||
|
||||
* Makefile.in (scm-valprint.o): Depends upon gdbcore_h.
|
||||
(arm-tdep.o): Ditto.
|
||||
(dcache.o): Ditto.
|
||||
(i386ly-tdep.o): Ditto.
|
||||
(i960-tdep.o): Ditto.
|
||||
(m68k-tdep.o): Ditto.
|
||||
(nindy-tdep.o): Ditto.
|
||||
(scm-lang.o): Ditto.
|
||||
(w65-tdep.o): Ditto.
|
||||
(z8k-tdep.o): Ditto.
|
||||
(m68k-tdep.o): Depends upon value_h and gdb_string.h
|
||||
(m2-valprint.o): Depends upon m2-lang.h.
|
||||
(sparc-tdep.o): Depends upon gdb_string.h
|
||||
(valprint.o): Depends upon valprint.h
|
||||
|
||||
* remote-e7000.c (notice_quit): Remove prototype.
|
||||
* top.c (initialize_targets): Remove prototype, now in target.h.
|
||||
* stabsread.c (resolve_cfront_continuation): Remove prototype.
|
||||
* dbxread.c (resolve_cfront_continuation): Remove prototype.
|
||||
* symfile.h (set_demangling_style): Remove prototype.
|
||||
* config/tm-sysv4.h (in_plt_section): Remove prototype, in objfiles.h.
|
||||
* config/sparc/tm-sparc.h (single_step): Remove extern decl, now in
|
||||
target.h.
|
||||
* config/arc/tm-arc.h (one_stepped, single_step): Remove extern decls,
|
||||
now in target.h.
|
||||
* ser-unix.c (hardwire_restore): Remove obsolete prototype.
|
||||
* sparc-tdep.c (single_step): Remove forward decl of isbranch.
|
||||
* scm-lang.c (find_function_in_inferior): Remove prototype.
|
||||
(value_allocate_space_in_inferior): Ditto.
|
||||
* infrun.c (write_pc_pid): Remove prototype, now in inferior.h.
|
||||
* defs.h (strchr): Remove declarations, they are declared in
|
||||
gdb_string.h also.
|
||||
(strrchr): Ditto.
|
||||
(strstr): Ditto.
|
||||
(strtok): Ditto.
|
||||
(strerror): Ditto.
|
||||
* f-valprint.c (f77_print_array_1): Remove extra arg that was being
|
||||
passed to f77_print_array_1.
|
||||
* gdbtk.c (register_changed_p): Remove unused local variable "buf".
|
||||
* gdbtypes.c (add_name): Remove unused variables lenstrlen and lenstr.
|
||||
* scm-exp.c (scm_istr2int): Remove unused variable "j".
|
||||
(scm_parse): Remove unused variable "str".
|
||||
* hp300ux-nat.c (store_inferior_register): Remove unused variable
|
||||
"buf".
|
||||
(store_inferior_registers): Remove unnecessary decl "registers".
|
||||
* m68k-tdep.c (m68k_pop_frame): Remove unused variable "fi".
|
||||
* scm-lang.c (scm_get_field): Remove unused variable "val".
|
||||
(scm_lookup_name): Remove unused variable "symval".
|
||||
* objfiles.c (map_to_file): Remove unused local variable "tempfd".
|
||||
* procfs.c (do_attach, do_detach): Remove unused variable "result".
|
||||
(last_resume_pid): Remove unused static variable.
|
||||
* alpha-tdep.c (alpha_linux_sigtramp_offset): Remove unused variable
|
||||
"res".
|
||||
* objfiles.c (map_to_address): Remove unused function.
|
||||
* f-valprint.c (print_max): Remove extraneous extern decl,
|
||||
in valprint.h.
|
||||
(calc_f77_array_dims): Remove extraneous prototype, in f-lang.h.
|
||||
* ch-exp.c (write_lower_upper_value): Remove prototype for
|
||||
type_lower_upper.
|
||||
|
||||
* gdbtypes.c (cfront_mangle_name): #ifdef out unused function.
|
||||
* ch-exp.c (parse_mode_call): Ditto.
|
||||
* f-valprint.c (there_is_a_visible_common_named): Ditto.
|
||||
* f-lang.c (clear_function_list): Ditto.
|
||||
(get_bf_for_fcn): Ditto.
|
||||
(clear_bf_list): Ditto.
|
||||
(add_common_block): Ditto.
|
||||
(patch_all_commons_by_name): Ditto.
|
||||
(find_first_common_named): Ditto.
|
||||
(add_common_entry): Ditto.
|
||||
(allocate_saved_function_node): Ditto.
|
||||
(allocate_saved_bf_node): Ditto.
|
||||
(allocate_common_entry_node): Ditto.
|
||||
(allocate_saved_f77_common_node): Ditto.
|
||||
|
||||
* arm-tdep.c (gdbcore.h): Include for necessary prototypes.
|
||||
* dcache.c (gdbcore.h): Ditto.
|
||||
* i386ly-tdep.c (gdbcore.h): Ditto.
|
||||
* i960-tdep.c (gdbcore.h): Ditto.
|
||||
* m2-valprint.c (m2-lang.h): Ditto.
|
||||
* m68k-tdep.c (gdbcore.h): Ditto.
|
||||
(value.h): Ditto.
|
||||
(gdb_string.h): Ditto.
|
||||
* nindy-tdep.c (gdbcore.h): Ditto.
|
||||
* scm-lang.c (gdbcore.h): Ditto.
|
||||
* scm-valprint.c (gdbcore.h): Ditto.
|
||||
* w65-tdep.c (gdbcore.h): Ditto.
|
||||
* z8k-tdep.c (gdbcore.h): Ditto.
|
||||
* sparc-tdep.c (gdb_string.h): Include.
|
||||
* valprint.c (valprint.h): Include.
|
||||
|
||||
* config/xm-lynx.h: Remove part of comment about INT_MIN
|
||||
redefined warnings from defs.h, since INT_MIN define in
|
||||
defs.h is now protected by #ifndef INT_MIN.
|
||||
* config/i386/xm-i386bsd.h: Ditto.
|
||||
* config/m68k/xm-hp300bsd.h: Ditto.
|
||||
* config/m68k/xm-news.h: Ditto.
|
||||
|
||||
* config/pa/xm-hppah.h (INT_MIN): Remove bogus INT_MIN
|
||||
definition as 0x80000000. The macro in defs.h is better.
|
||||
* config/i386/xm-i386m3.h (INT_MIN): Ditto.
|
||||
* config/i386/xm-i386mach.h (INT_MIN): Ditto.
|
||||
* config/ns32k/xm-ns32km3.h (INT_MIN): Ditto.
|
||||
* config/pa/xm-hppab.h: Ditto.
|
||||
|
||||
* core-aout.c (fetch_core_registers): Add prototype.
|
||||
* hp300ux-nat.c (fetch_inferior_register): Ditto.
|
||||
(store_inferior_register_1): Ditto.
|
||||
(store_inferior_register): Ditto.
|
||||
* config/m68k/tm-m68k.h (find_saved_regs): Ditto.
|
||||
*scm-valprint.c (c_val_print): Ditto.
|
||||
* procfs.c (add_fd): Ditto.
|
||||
(remove_fd): Ditto.
|
||||
(wait_fd): Ditto.
|
||||
(sigcodename): Ditto.
|
||||
(sigcodedesc): Ditto.
|
||||
(procfs_kill_inferior): Ditto.
|
||||
(procfs_xfer_memory): Ditto.
|
||||
(procfs_store_registers): Ditto.
|
||||
(create_procinfo): Ditto.
|
||||
(procfs_init_inferior): Ditto.
|
||||
(proc_set_exec_trap): Ditto.
|
||||
(procfs_attach): Ditto.
|
||||
(procfs_detach): Ditto.
|
||||
(procfs_prepare_to_store): Ditto.
|
||||
(procfs_files_info): Ditto.
|
||||
(procfs_open): Ditto.
|
||||
(procfs_wait): Ditto.
|
||||
(procfs_fetch_registers): Ditto.
|
||||
(procfs_mourn_inferior): Ditto.
|
||||
(procfs_can_run): Ditto.
|
||||
(procfs_thread_alive): Ditto.
|
||||
(procfs_stop): Ditto.
|
||||
* alpha-nat.c (fetch_core_registers): Ditto.
|
||||
* config/alpha/tm-alpha.h (alpha_osf_skip_sigtramp_frame): Ditto.
|
||||
* objfiles.c (ecoff_relocate_efi): Ditto.
|
||||
* inflow.c (pass_signal): Ditto.
|
||||
(handle_sigio): Ditto.
|
||||
* annotate.c (breakpoint_changed): Ditto.
|
||||
* callback.c (wrap): Ditto.
|
||||
(fdbad): Ditto.
|
||||
(fdmap): Ditto.
|
||||
* utils.c (malloc_botch): Ditto.
|
||||
(fputs_maybe_filtered): Ditto.
|
||||
(vfprintf_maybe_filtered): Ditto.
|
||||
* defs.h (notice_quit): Ditto.
|
||||
* defs.h (xmalloc, xrealloc): Ditto.
|
||||
* top.c (stop_sig): Ditto.
|
||||
(init_signals): Ditto.
|
||||
(user_defined_command): Ditto.
|
||||
(source_cleanup_lines): Ditto.
|
||||
(dont_repeat_command): Ditto.
|
||||
(serial_log_command): Ditto.
|
||||
(disconnect): Ditto.
|
||||
* target.h (initialize_targets): Ditto.
|
||||
* os9kread.c (read_minimal_symbols): Ditto.
|
||||
* mdebugread.c (mdebug_psymtab_to_symtab): Ditto.
|
||||
(fdr_name): Ditto.
|
||||
(push_parse_stack): Ditto.
|
||||
(pop_parse_stack): Ditto.
|
||||
(is_pending_symbol): Ditto.
|
||||
(add_pending): Ditto.
|
||||
* serial.c (serial_logchar): Ditto.
|
||||
(serial_interface_lookup): Ditto.
|
||||
* serial.h (serial_log_command): Ditto.
|
||||
* f-valprint.c (info_common_command): Ditto.
|
||||
* gdbtypes.h (print_type_scalar): Ditto.
|
||||
* scm-valprint.c (scm_scmlist_print): Ditto.
|
||||
(scm_ipruk): Ditto.
|
||||
* scm-lang.c (scm_printstr): Ditto.
|
||||
(in_eval_c): Ditto.
|
||||
(evaluate_subexp_scm): Ditto.
|
||||
* scm-exp.c (scm_read_token): Ditto.
|
||||
(scm_skip_ws): Ditto.
|
||||
(scm_lreadparen): Ditto.
|
||||
* m2-lang.c (emit_char): Ditto.
|
||||
(m2_printchar): Ditto.
|
||||
(m2_printstr): Ditto.
|
||||
(m2_create_fundamental_type): Ditto.
|
||||
* f-lang.c (emit_char): Ditto.
|
||||
(f_printchar): Ditto.
|
||||
(f_printstr): Ditto.
|
||||
(f_create_fundamental_type): Ditto.
|
||||
* ch-lang.c (chill_printchar): Ditto.
|
||||
(chill_printstr): Ditto.
|
||||
(chill_create_fundamental_type): Ditto.
|
||||
(value_chill_length): Ditto.
|
||||
(value_chill_card): Ditto.
|
||||
(value_chill_max_min): Ditto.
|
||||
(evaluate_subexp_chill): Ditto.
|
||||
* ch-exp.c (PEEK_TOKEN): Ditto.
|
||||
(peek_token_): Ditto.
|
||||
(forward_token_): Ditto.
|
||||
(parse_case_label): Ditto.
|
||||
(parse_opt_untyped_expr): Ditto.
|
||||
(parse_unary_call): Ditto.
|
||||
(parse_call): Ditto.
|
||||
(parse_named_record_element): Ditto.
|
||||
(parse_tuple_element): Ditto.
|
||||
(parse_opt_element_list): Ditto.
|
||||
(parse_tuple): Ditto.
|
||||
(parse_primval): Ditto.
|
||||
(parse_operand6): Ditto.
|
||||
(parse_operand5): Ditto.
|
||||
(parse_operand4): Ditto.
|
||||
(parse_operand3): Ditto.
|
||||
(parse_operand2): Ditto.
|
||||
(parse_operand1): Ditto.
|
||||
(parse_operand0): Ditto.
|
||||
(parse_expr): Ditto.
|
||||
(parse_then_alternative): Ditto.
|
||||
(parse_else_alternative): Ditto.
|
||||
(parse_if_expression): Ditto.
|
||||
(parse_untyped_expr): Ditto.
|
||||
(growbuf_by_size): Ditto.
|
||||
(match_simple_name_string): Ditto.
|
||||
(decode_integer_value): Ditto.
|
||||
(decode_integer_literal): Ditto.
|
||||
(match_float_literal): Ditto.
|
||||
(match_float_literal): Ditto.
|
||||
(match_string_literal): Ditto.
|
||||
(match_character_literal): Ditto.
|
||||
(match_integer_literal): Ditto.
|
||||
(match_bitstring_literal): Ditto.
|
||||
(write_lower_upper_value): Ditto.
|
||||
* ch-lang.h (type_lower_upper): Ditto.
|
||||
* c-lang.c (emit_char): Ditto.
|
||||
* dwarfread.c (free_utypes): Ditto.
|
||||
* stabsread.h (resolve_cfront_continuation): Ditto.
|
||||
* stabsread.c (get_substring): Ditto.
|
||||
(read_one_struct_field): Ditto.
|
||||
* stabsread.h (process_later): Ditto.
|
||||
* demangle.c (set_demangling_command): Ditto.
|
||||
* defs.h (set_demangling_style): Ditto.
|
||||
* maint.c (maintenance_info_command): Ditto.
|
||||
(print_section_table): Ditto.
|
||||
(maintenance_info_sections): Ditto.
|
||||
(maintenance_print_command): Ditto.
|
||||
* symtab.h (maintenance_print_statistics): Ditto.
|
||||
* objfiles.h (in_plt_section): Ditto.
|
||||
* objfiles.c (add_to_objfile_sections): Ditto.
|
||||
* bcache.c (hash): Ditto.
|
||||
(lookup_cache): Ditto.
|
||||
* exec.c (bfdsec_to_vmap): Ditto.
|
||||
(ignore): Ditto.
|
||||
* f-exp.y (growbuf_by_size, match_string_literal): Ditto.
|
||||
* language.c (unk_lang_printchar): Ditto.
|
||||
(unk_lang_printstr): Ditto.
|
||||
(unk_lang_create_fundamental_type): Ditto.
|
||||
(unk_lang_print_type): Ditto.
|
||||
(unk_lang_val_print): Ditto.
|
||||
(unk_lang_value_print): Ditto.
|
||||
* target.c (update_current_target): Ditto.
|
||||
(debug_to_open): Ditto.
|
||||
(debug_to_close): Ditto.
|
||||
(debug_to_attach): Ditto.
|
||||
(debug_to_detach): Ditto.
|
||||
(debug_to_resume): Ditto.
|
||||
(debug_to_wait): Ditto.
|
||||
(debug_to_fetch_registers): Ditto.
|
||||
(debug_to_store_registers): Ditto.
|
||||
(debug_to_prepare_to_store): Ditto.
|
||||
(debug_to_xfer_memory): Ditto.
|
||||
(debug_to_files_info): Ditto.
|
||||
(debug_to_insert_breakpoint): Ditto.
|
||||
(debug_to_remove_breakpoint): Ditto.
|
||||
(debug_to_terminal_init): Ditto.
|
||||
(debug_to_terminal_inferior): Ditto.
|
||||
(debug_to_terminal_ours_for_output): Ditto.
|
||||
(debug_to_terminal_ours): Ditto.
|
||||
(debug_to_terminal_info): Ditto.
|
||||
(debug_to_kill): Ditto.
|
||||
(debug_to_load): Ditto.
|
||||
(debug_to_lookup_symbol): Ditto.
|
||||
(debug_to_create_inferior): Ditto.
|
||||
(debug_to_mourn_inferior): Ditto.
|
||||
(debug_to_can_run): Ditto.
|
||||
(debug_to_notice_signals): Ditto.
|
||||
(debug_to_thread_alive): Ditto.
|
||||
(debug_to_stop): Ditto.
|
||||
* gdbtk.c (null_routine): Ditto.
|
||||
(gdbtk_flush): Ditto.
|
||||
(gdbtk_fputs): Ditto.
|
||||
(gdbtk_query): Ditto.
|
||||
(gdbtk_readline): Ditto.
|
||||
(gdbtk_readline_end): Ditto.
|
||||
(gdb_get_breakpoint_list): Ditto.
|
||||
(gdb_get_breakpoint_info): Ditto.
|
||||
(breakpoint_notify): Ditto.
|
||||
(gdbtk_create_breakpoint): Ditto.
|
||||
(gdbtk_delete_breakpoint): Ditto.
|
||||
(gdbtk_modify_breakpoint): Ditto.
|
||||
(gdb_loc): Ditto.
|
||||
(gdb_eval): Ditto.
|
||||
(gdb_sourcelines): Ditto.
|
||||
(map_arg_registers): Ditto.
|
||||
(get_register_name): Ditto.
|
||||
(gdb_regnames): Ditto.
|
||||
(get_register): Ditto.
|
||||
(gdb_fetch_registers): Ditto.
|
||||
(register_changed_p): Ditto.
|
||||
(gdb_changed_register_list): Ditto.
|
||||
(gdb_cmd): Ditto.
|
||||
(call_wrapper): Ditto.
|
||||
(gdb_listfiles): Ditto.
|
||||
(gdb_stop): Ditto.
|
||||
(gdbtk_dis_asm_read_memory): Ditto.
|
||||
(compare_lines): Ditto.
|
||||
(gdb_disassemble): Ditto.
|
||||
(tk_command): Ditto.
|
||||
(cleanup_init): Ditto.
|
||||
(gdbtk_interactive): Ditto.
|
||||
(x_event): Ditto.
|
||||
(gdbtk_wait): Ditto.
|
||||
(gdbtk_call_command): Ditto.
|
||||
(tk_command_loop): Ditto.
|
||||
(gdbtk_init): Ditto.
|
||||
* breakpoint.h (set_breakpoint_sal): Ditto.
|
||||
* remote-utils.c (usage): Ditto.
|
||||
* remote.c (set_thread): Ditto.
|
||||
(remote_thread_alive): Ditto.
|
||||
(get_offsets): Ditto.
|
||||
(read_frame): Ditto.
|
||||
(remote_insert_breakpoint): Ditto.
|
||||
(remote_remove_breakpoint): Ditto.
|
||||
* sparc-nat.c (fetch_core_registers): Ditto.
|
||||
* corelow.c (add_to_thread_list): Ditto.
|
||||
(ignore): Ditto.
|
||||
* inftarg.c (proc_wait): Ditto.
|
||||
* infptrace.c (udot_info): Ditto.
|
||||
(fetch_register): Ditto.
|
||||
* ser-unix.c (hardwire_noflush_set_tty_state): Ditto.
|
||||
(hardwire_print_tty_state): Ditto.
|
||||
(hardwire_flush_output): Ditto.
|
||||
(hardwire_flush_input): Ditto.
|
||||
(hardwire_send_break): Ditto.
|
||||
(hardwire_setstopbits): Ditto.
|
||||
* ser-tcp.c (tcp_return_0): Ditto.
|
||||
(tcp_noflush_set_tty_state): Ditto.
|
||||
(tcp_print_tty_state): Ditto.
|
||||
* solib.c (match_main): Ditto.
|
||||
* gdbtypes.c (print_bit_vector): Ditto.
|
||||
(print_arg_types): Ditto.
|
||||
(dump_fn_fieldlists): Ditto.
|
||||
(print_cplus_stuff): Ditto.
|
||||
* symfile.h (entry_point_address): Ditto.
|
||||
* symfile.c (decrement_reading_symtab): Ditto.
|
||||
* valops.c (value_arg_coerce): Ditto.
|
||||
* value.h (find_function_in_inferior): Ditto.
|
||||
(value_allocate_space_in_inferior): Ditto.
|
||||
* values.c (vb_match): Ditto.
|
||||
* thread.c (info_thread_command): Ditto.
|
||||
(restore_current_thread): Ditto.
|
||||
(thread_apply_all_command): Ditto.
|
||||
(thread_apply_command): Ditto.
|
||||
* inferior.h (write_pc_pid): Ditto.
|
||||
* infrun.c (delete_breakpoint_current_contents): Ditto.
|
||||
* breakpoint.c (print_it_normal): Ditto.
|
||||
(watchpoint_check): Ditto.
|
||||
(print_it_done): Ditto.
|
||||
(print_it_noop): Ditto.
|
||||
(maintenance_info_breakpoints): Ditto.
|
||||
(create_longjmp_breakpoint): Ditto.
|
||||
(hbreak_command): Ditto.
|
||||
(thbreak_command): Ditto.
|
||||
(watch_commnd_1): Ditto.
|
||||
(rwatch_command): Ditto.
|
||||
(awatch_command): Ditto.
|
||||
(do_enable_breakpoint): Ditto.
|
||||
* ch-valprint.c (chill_val_print_array_elements): Ditto.
|
||||
* eval.c (evaluate_subexp): Ditto.
|
||||
(get_label): Ditto.
|
||||
(evaluate_struct_tuple): Ditto.
|
||||
* eval.c (init_array_element): Ditto.
|
||||
|
||||
* alpha-tdep.c (push_sigtramp_desc): Add prototype and make static.
|
||||
* breakpoint.c (hw_breakpoint_used_count): Ditto.
|
||||
(hw_watchpoint_used_count): Ditto.
|
||||
* findvar.c (write_register_gen): Ditto.
|
||||
(read_register_pid): Ditto.
|
||||
* symtab.c (cplusplus_hint): Ditto.
|
||||
* infcmd.c (breakpoint_auto_delete_contents): Ditto.
|
||||
* ch-valprint.c (chill_print_type_scalar): Ditto.
|
||||
* gdbtypes.c (add_name): Ditto.
|
||||
(add_mangled_type): Ditto.
|
||||
(cfront_mangle_name): Ditto.
|
||||
* sparc-tdep.c (isbranch): Ditto.
|
||||
* inftarg.c (child_stop): Ditto.
|
||||
* win32-nat.c (child_stop): Ditto.
|
||||
* mac-nat.c (child_stop): Ditto.
|
||||
* remote-utils.c (sr_com): Ditto.
|
||||
* dbxread.c (process_now): Ditto.
|
||||
* ch-exp.c (require): Ditto.
|
||||
(check_token): Ditto.
|
||||
(expect): Ditto.
|
||||
(parse_mode_call): Ditto.
|
||||
(parse_mode_or_normal_call): Ditto.
|
||||
* scm-lang.c (scm_lookup_name): Ditto
|
||||
* f-lang.c (allocate_saved_bf_node): Ditto.
|
||||
(allocate_saved_function_node): Ditto.
|
||||
(allocate_saved_f77_common_node): Ditto.
|
||||
(allocate_common_entry_node): Ditto.
|
||||
(add_common_block): Ditto.
|
||||
(add_common_entry): Ditto.
|
||||
(find_first_common_named): Ditto.
|
||||
(patch_common_entries): Ditto.
|
||||
(patch_all_commons_by_name): Ditto.
|
||||
(clear_bf_list): Ditto.
|
||||
(get_bf_for_fcn): Ditto.
|
||||
(clear_function_list): Ditto.
|
||||
* scm-exp.c (scm_istr2int): Ditto.
|
||||
(scm_istring2number): Ditto.
|
||||
* scm-valprint.c (scm_inferior_print): Ditto.
|
||||
* f-typeprint.c (print_equivalent_f77_float_type): Ditto.
|
||||
* f-valprint.c (f77_get_dynamic_length_of_aggregate): Ditto.
|
||||
(f77_create_arrayprint_offset_tbl): Ditto.
|
||||
(f77_print_array_1): Ditto.
|
||||
(f77_print_array): Ditto.
|
||||
(list_all_visible_commons): Ditto.
|
||||
(there_is_a_visible_common_named): Ditto.
|
||||
* mdebugread.c (ecoff_relocate_efi): Ditto.
|
||||
* callback.c (os_close): Ditto.
|
||||
(os_get_errno): Ditto.
|
||||
(os_isatty): Ditto.
|
||||
(os_lseek): Ditto.
|
||||
(os_open): Ditto.
|
||||
(os_read): Ditto.
|
||||
(os_read_stdin): Ditto.
|
||||
(os_write): Ditto.
|
||||
(os_write_stdout): Ditto.
|
||||
(os_rename): Ditto.
|
||||
(os_system): Ditto.
|
||||
(os_time): Ditto.
|
||||
(os_unlink): Ditto.
|
||||
(os_shutdown): Ditto.
|
||||
(os_init): Ditto.
|
||||
(os_printf_filtered): Ditto.
|
||||
|
||||
* scm-lang.h (scm_parse): Change old style decl to prototype.
|
||||
* config/alpha/tm-alphalinux.h (alpha_linux_sigtramp_offset): Ditto.
|
||||
* top.c (init_proc): Ditto.
|
||||
(query_hook): Ditto.
|
||||
(error_hook): Ditto.
|
||||
* f-lang.c (c_value_print): Ditto.
|
||||
* ch-exp.c (parse_expression): Ditto.
|
||||
(parse_primval): Ditto.
|
||||
(parse_untyped_expr): Ditto.
|
||||
(parse_opt_untyped_expr): Ditto.
|
||||
(ch_lex): Ditto.
|
||||
* config/sparc/tm-sparc.h (sparc_init_extra_frame_info): Ditto.
|
||||
(sparc_frame_saved_pc): Ditto.
|
||||
(sparc_push_dummy_frame): Ditto.
|
||||
(sparc_pop_frame): Ditto.
|
||||
* defs.h (fclose): Ditto.
|
||||
(atof): Ditto.
|
||||
(error_hook): Ditto.
|
||||
|
||||
* arc-tdep.c (single_step): Change arg to type "enum target_signal".
|
||||
* rs6000-tdep.c (single_step): Ditto.
|
||||
* sparc-tdep.c (single_step): Ditto.
|
||||
|
||||
* breakpoint.c (cleanup_executing_breakpoints): Change unused arg type
|
||||
to PTR which is what make_cleanup expects.
|
||||
* utils.c (null_cleanup): Change arg type to PTR.
|
||||
* defs.h (null_cleanup): Change prototype to match actual function.
|
||||
* config/sparc/tm-sparc.h (struct frame_info): Move forward decl.
|
||||
* ch-valprint.c (chill_val_print): Cast 2nd arg of
|
||||
chill_print_type_scalar to LONGEST.
|
||||
* infrun.c (wait_for_inferior): Have empty switch case for
|
||||
BPSTAT_WHAT_CHECK_SHLIBS when SOLIB_ADD is not defined.
|
||||
(stop_on_solib_events): Only needed if SOLIB_ADD is defined.
|
||||
* infcmd.c (attach_command): Only need auto_solib_add if SOLIB_ADD
|
||||
is defined.
|
||||
* symfile.c (generic_load): Scan long int using a long int spec,
|
||||
not an int spec.
|
||||
* infptrace.c (udot_info): Only need local variables if KERNEL_U_SIZE
|
||||
is defined.
|
||||
(fetch_register): Only need function if FETCH_INFERIOR_REGISTERS is
|
||||
not defined.
|
||||
* inflow.c (handle_sigio): Only need prototype when the actual
|
||||
function is compiled in.
|
||||
* valprint.c (longest_to_int): Expand error message to be
|
||||
separate messages for args larger than largest signed int
|
||||
and args smaller than smallest signed int.
|
||||
* valprint.c (print_longest): Fix problems with support for case
|
||||
where compiler supports type "long long" but the runtime doesn't
|
||||
support printing them with "%ll".
|
||||
* scm-valprint.c (scm_scmlist_print, scm_scmval_print): Change
|
||||
return types to void since we don't actually return anything
|
||||
meaningful and callees ignore the values anyway.
|
||||
* procfs.c (modify_inherit_on_fork_flag): Enclose pr_flags in PIOCSET
|
||||
ifdef.
|
||||
(modify_run_on_last_close_flag): Ditto.
|
||||
(wait_fd): Enclose local variables "num_fds" and "i" LOSING_POLL
|
||||
ifdef
|
||||
* alpha-tdep.c (push_sigtramp_desc): Return proc_desc rather than
|
||||
random value.
|
||||
* infrun.c (wait_for_inferior): Ensure random_signal is not used
|
||||
uninitialized.
|
||||
* valops.c (call_function_by_hand): Ensure struct_addr is not used
|
||||
uninitialized.
|
||||
* breakpoint.c (watch_command_1): Ensure prev_frame is not used
|
||||
uninitialized.
|
||||
* utils.c (vfprintf_maybe_filtered): Change second arg from "char *"
|
||||
to "const char *".
|
||||
* gdbtk.c (gdb_fetch_registers): Cast fourth arg to map_arg_registers
|
||||
to proper pointer type, from int.
|
||||
(gdbtk_query): Change first arg to "const char *" from "char *".
|
||||
* infptrace.c (udot_info): Add two dummy args so that the type is
|
||||
correct for passing to add_info.
|
||||
* f-lang.c (saved_fcn): Move decl to head of file so it can be used
|
||||
in prototypes.
|
||||
(saved_bf_symnum): Ditto.
|
||||
(SAVED_FUNCTION): Ditto.
|
||||
(SAVED_FUNCTION_PTR): Ditto.
|
||||
(SAVED_BF): Ditto.
|
||||
(SAVED_BF_PTR): Ditto.
|
||||
* ch-exp.c (parse_named_record_element): Build error message in
|
||||
temporary buffer before passing it to expect, rather than passing
|
||||
wrong number of args to expect.
|
||||
* demangle.c (set_demangling_style): Call set_demangling_command with
|
||||
correct number of arguments.
|
||||
* inferior.h (terminal_init_inferior_with_pgrp): Change arg type to
|
||||
int to match actual function.
|
||||
(os_isatty): Call fdmap with right number of arguments, was missing
|
||||
the host_callback* arg.
|
||||
* target.c (cleanup_target): Prototype all functions casts.
|
||||
* target.h (one_stepped, single_step): Declare here and convert
|
||||
single_step to prototype.
|
||||
* infrun.c (one_stepped, single_step): Don't declare externs
|
||||
here, they have moved to target.h.
|
||||
* eval.c (init_array_element): Declare previously undeclared
|
||||
last two args as LONGEST.
|
||||
* dcache.c (dcache_xfer_memory): Change xfunc decls to prototype form.
|
||||
|
||||
Thu Jul 25 16:11:54 1996 Doug Evans <dje@canuck.cygnus.com>
|
||||
|
||||
* dsrec.c (load_srec): Protect ANSI style function parms with PARAMS.
|
||||
|
@ -1008,7 +1008,8 @@ altos-xdep.o: altos-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
|
||||
|
||||
annotate.o: annotate.c $(defs_h) annotate.h $(value_h) target.h $(gdbtypes_h)
|
||||
|
||||
arm-tdep.o: arm-tdep.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h)
|
||||
arm-tdep.o: arm-tdep.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \
|
||||
$(gdbcore_h)
|
||||
|
||||
bcache.o: bcache.c bcache.h $(defs_h)
|
||||
|
||||
@ -1092,7 +1093,7 @@ corelow.o: corelow.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
|
||||
cp-valprint.o: cp-valprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
|
||||
$(gdbtypes_h) $(symtab_h) $(value_h) gdb_string.h
|
||||
|
||||
dcache.o: dcache.c $(dcache_h) $(defs_h) $(gdbcmd_h) gdb_string.h
|
||||
dcache.o: dcache.c $(dcache_h) $(defs_h) $(gdbcmd_h) gdb_string.h $(gdbcore_h)
|
||||
|
||||
dbxread.o: dbxread.c $(breakpoint_h) buildsym.h $(command_h) \
|
||||
complaints.h $(defs_h) $(expression_h) gdb-stabs.h $(gdbcore_h) \
|
||||
@ -1178,7 +1179,7 @@ i386b-nat.o: i386b-nat.c $(defs_h)
|
||||
|
||||
i386ly-nat.o: i386ly-nat.c $(defs_h) $(frame_h) $(inferior_h) target.h
|
||||
|
||||
i386ly-tdep.o: i386ly-tdep.c $(defs_h) $(inferior_h) target.h
|
||||
i386ly-tdep.o: i386ly-tdep.c $(defs_h) $(inferior_h) target.h $(gdbcore_h)
|
||||
|
||||
i386m3-nat.o: i386m3-nat.c $(defs_h) $(inferior_h) $(floatformat_h) target.h
|
||||
|
||||
@ -1193,7 +1194,7 @@ i387-tdep.o: i387-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \
|
||||
$(inferior_h) language.h
|
||||
|
||||
i960-tdep.o: i960-tdep.c $(floatformat_h) $(defs_h) $(expression_h) \
|
||||
$(frame_h) $(gdbtypes_h) $(symtab_h) $(value_h)
|
||||
$(frame_h) $(gdbtypes_h) $(symtab_h) $(value_h) $(gdbcore_h)
|
||||
|
||||
infcmd.o: infcmd.c $(defs_h) environ.h $(gdbcmd_h) $(gdbcore_h) \
|
||||
$(inferior_h) target.h language.h gdb_string.h
|
||||
@ -1232,12 +1233,13 @@ m2-typeprint.o: m2-typeprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
|
||||
$(value_h) gdb_string.h
|
||||
|
||||
m2-valprint.o: m2-valprint.c $(defs_h) $(gdbtypes_h) $(symtab_h) \
|
||||
valprint.h
|
||||
valprint.h m2-lang.h
|
||||
|
||||
m3-nat.o: m3-nat.c $(defs_h) $(inferior_h) $(value_h) language.h target.h \
|
||||
$(wait_h) $(gdbcmd_h) $(gdbcore_h)
|
||||
|
||||
m68k-tdep.o: m68k-tdep.c $(defs_h) $(frame_h) $(symtab_h)
|
||||
m68k-tdep.o: m68k-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(value_h) \
|
||||
$(gdbcore_h) gdb_string.h
|
||||
|
||||
m68kly-nat.o: m68kly-nat.c $(defs_h) $(frame_h) $(inferior_h) target.h
|
||||
|
||||
@ -1303,7 +1305,7 @@ ns32km3-nat.o: ns32km3-nat.c $(defs_h) $(inferior_h)
|
||||
ttyflush.o: nindy-share/ttyflush.c
|
||||
$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/nindy-share/ttyflush.c
|
||||
|
||||
nindy-tdep.o: nindy-tdep.c $(defs_h) $(frame_h) $(symtab_h)
|
||||
nindy-tdep.o: nindy-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(gdbcore_h)
|
||||
|
||||
ns32k-tdep.o: ns32k-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h)
|
||||
|
||||
@ -1425,10 +1427,10 @@ scm-exp.o: $(defs_h) $(value_h) parser-defs.h language.h c-lang.h \
|
||||
scm-lang.h scm-tags.h
|
||||
|
||||
scm-lang.o: $(defs_h) $(value_h) parser-defs.h language.h c-lang.h \
|
||||
scm-lang.h scm-tags.h gdb_string.h
|
||||
scm-lang.h scm-tags.h gdb_string.h $(gdbcore_h)
|
||||
|
||||
scm-valprint.o: $(defs_h) $(value_h) parser-defs.h language.h \
|
||||
scm-lang.h valprint.h
|
||||
scm-lang.h valprint.h $(gdbcore_h)
|
||||
|
||||
ser-go32.o: ser-go32.c $(defs_h) serial.h
|
||||
|
||||
@ -1461,7 +1463,7 @@ sparc-nat.o: sparc-nat.c $(bfd_h) $(defs_h) $(inferior_h) $(gdbcore_h) \
|
||||
target.h
|
||||
|
||||
sparc-tdep.o: sparc-tdep.c $(floatformat_h) $(defs_h) $(gdbcore_h) \
|
||||
$(inferior_h) objfiles.h symfile.h target.h
|
||||
$(inferior_h) objfiles.h symfile.h target.h gdb_string.h
|
||||
|
||||
sparcl-tdep.o: sparcl-tdep.c $(defs_h) $(gdbcore_h) target.h
|
||||
|
||||
@ -1528,7 +1530,7 @@ valops.o: valops.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h \
|
||||
|
||||
valprint.o: valprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
|
||||
$(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) target.h \
|
||||
$(value_h) gdb_string.h
|
||||
$(value_h) gdb_string.h valprint.h
|
||||
|
||||
values.o: values.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \
|
||||
$(gdbcore_h) $(gdbtypes_h) $(symtab_h) target.h $(value_h) \
|
||||
@ -1536,7 +1538,7 @@ values.o: values.c $(defs_h) $(expression_h) $(frame_h) $(gdbcmd_h) \
|
||||
|
||||
vax-tdep.o: vax-tdep.c $(OP_INCLUDE)/vax.h $(defs_h) $(symtab_h)
|
||||
|
||||
w65-tdep.o : w65-tdep.c
|
||||
w65-tdep.o : w65-tdep.c $(gdbcore_h)
|
||||
|
||||
win32-nat.o: win32-nat.c $(gdbcmd_h) $(gdbcore_h) $(inferior_h) $(defs_h) \
|
||||
gdb_string.h
|
||||
@ -1562,7 +1564,7 @@ xcoffread.o: xcoffread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \
|
||||
xcoffsolib.o: xcoffsolib.c $(bfd_h) $(defs_h) xcoffsolib.h
|
||||
|
||||
z8k-tdep.o: z8k-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h) $(frame_h) \
|
||||
$(gdbcmd_h) $(gdbtypes_h) $(symtab_h)
|
||||
$(gdbcmd_h) $(gdbtypes_h) $(symtab_h) $(gdbcore_h)
|
||||
|
||||
c-exp.tab.o: c-exp.tab.c c-lang.h $(defs_h) $(expression_h) \
|
||||
$(gdbtypes_h) language.h parser-defs.h $(symtab_h) $(value_h) \
|
||||
|
@ -30,6 +30,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#endif
|
||||
#include <sys/user.h>
|
||||
|
||||
static void fetch_core_registers PARAMS ((char *, unsigned, int, unsigned));
|
||||
|
||||
/* Size of elements in jmpbuf */
|
||||
|
||||
#define JB_ELEMENT_SIZE 8
|
||||
|
@ -37,6 +37,8 @@ extern struct obstack frame_cache_obstack;
|
||||
|
||||
/* Forward declarations. */
|
||||
|
||||
static alpha_extra_func_info_t push_sigtramp_desc PARAMS ((CORE_ADDR low_addr));
|
||||
|
||||
static CORE_ADDR read_next_frame_reg PARAMS ((struct frame_info *, int));
|
||||
|
||||
static CORE_ADDR heuristic_proc_start PARAMS ((CORE_ADDR));
|
||||
@ -155,11 +157,12 @@ struct linked_proc_info
|
||||
guarantee that we are in the middle of a sigreturn syscall. Don't
|
||||
think this will be a problem in praxis, though.
|
||||
*/
|
||||
|
||||
long
|
||||
alpha_linux_sigtramp_offset (CORE_ADDR pc)
|
||||
{
|
||||
unsigned int i[3], w;
|
||||
long off, res;
|
||||
long off;
|
||||
|
||||
if (read_memory_nobpt(pc, (char *) &w, 4) != 0)
|
||||
return -1;
|
||||
@ -209,8 +212,9 @@ alpha_osf_skip_sigtramp_frame (frame, pc)
|
||||
the signal-handler return code starting at address LOW_ADDR. The
|
||||
descriptor is added to the linked_proc_desc_table. */
|
||||
|
||||
alpha_extra_func_info_t
|
||||
push_sigtramp_desc (CORE_ADDR low_addr)
|
||||
static alpha_extra_func_info_t
|
||||
push_sigtramp_desc (low_addr)
|
||||
CORE_ADDR low_addr;
|
||||
{
|
||||
struct linked_proc_info *link;
|
||||
alpha_extra_func_info_t proc_desc;
|
||||
@ -233,6 +237,7 @@ push_sigtramp_desc (CORE_ADDR low_addr)
|
||||
PROC_PC_REG (proc_desc) = 26;
|
||||
PROC_LOCALOFF (proc_desc) = 0;
|
||||
SET_PROC_DESC_IS_DYN_SIGTRAMP (proc_desc);
|
||||
return (proc_desc);
|
||||
}
|
||||
|
||||
|
||||
|
@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "breakpoint.h"
|
||||
|
||||
static void print_value_flags PARAMS ((struct type *));
|
||||
static void breakpoint_changed PARAMS ((struct breakpoint *));
|
||||
|
||||
static void
|
||||
print_value_flags (t)
|
||||
|
@ -527,7 +527,7 @@ int one_stepped;
|
||||
|
||||
void
|
||||
single_step (ignore)
|
||||
int ignore; /* sig, but we don't need it */
|
||||
enum target_signal ignore; /* sig, but we don't need it */
|
||||
{
|
||||
static CORE_ADDR next_pc, target;
|
||||
static int brktrg_p;
|
||||
|
@ -23,6 +23,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "bcache.h"
|
||||
#include "gdb_string.h" /* For memcpy declaration */
|
||||
|
||||
static unsigned int hash PARAMS ((void *, int));
|
||||
static void *lookup_cache PARAMS ((void *, int, int, struct bcache *));
|
||||
|
||||
/* FIXME: Incredibly simplistic hash generator. Probably way too expensive
|
||||
(consider long strings) and unlikely to have good distribution across hash
|
||||
values for typical input. */
|
||||
|
@ -118,7 +118,7 @@ static int
|
||||
breakpoint_cond_eval PARAMS ((char *));
|
||||
|
||||
static void
|
||||
cleanup_executing_breakpoints PARAMS ((int));
|
||||
cleanup_executing_breakpoints PARAMS ((PTR));
|
||||
|
||||
static void
|
||||
commands_command PARAMS ((char *, int));
|
||||
@ -135,6 +135,50 @@ set_breakpoint_count PARAMS ((int));
|
||||
static int
|
||||
remove_breakpoint PARAMS ((struct breakpoint *));
|
||||
|
||||
static int
|
||||
print_it_normal PARAMS ((bpstat));
|
||||
|
||||
static int
|
||||
watchpoint_check PARAMS ((char *));
|
||||
|
||||
static int
|
||||
print_it_done PARAMS ((bpstat));
|
||||
|
||||
static int
|
||||
print_it_noop PARAMS ((bpstat));
|
||||
|
||||
static void
|
||||
maintenance_info_breakpoints PARAMS ((char *, int));
|
||||
|
||||
#ifdef GET_LONGJMP_TARGET
|
||||
static void
|
||||
create_longjmp_breakpoint PARAMS ((char *));
|
||||
#endif
|
||||
|
||||
static int
|
||||
hw_breakpoint_used_count PARAMS ((void));
|
||||
|
||||
static int
|
||||
hw_watchpoint_used_count PARAMS ((enum bptype, int *));
|
||||
|
||||
static void
|
||||
hbreak_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
thbreak_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
watch_command_1 PARAMS ((char *, int, int));
|
||||
|
||||
static void
|
||||
rwatch_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
awatch_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
do_enable_breakpoint PARAMS ((struct breakpoint *, enum bpdisp));
|
||||
|
||||
extern int addressprint; /* Print machine addresses? */
|
||||
|
||||
/* Are we executing breakpoint commands? */
|
||||
@ -914,7 +958,7 @@ bpstat_clear_actions (bs)
|
||||
/* ARGSUSED */
|
||||
static void
|
||||
cleanup_executing_breakpoints (ignore)
|
||||
int ignore;
|
||||
PTR ignore;
|
||||
{
|
||||
executing_breakpoint_commands = 0;
|
||||
}
|
||||
@ -2126,7 +2170,7 @@ re_enable_breakpoints_in_shlibs ()
|
||||
|
||||
#endif
|
||||
|
||||
int
|
||||
static int
|
||||
hw_breakpoint_used_count()
|
||||
{
|
||||
register struct breakpoint *b;
|
||||
@ -2141,7 +2185,7 @@ hw_breakpoint_used_count()
|
||||
return i;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
hw_watchpoint_used_count(type, other_type_used)
|
||||
enum bptype type;
|
||||
int *other_type_used;
|
||||
@ -2545,7 +2589,8 @@ watch_command_1 (arg, accessflag, from_tty)
|
||||
struct expression *exp;
|
||||
struct block *exp_valid_block;
|
||||
struct value *val, *mark;
|
||||
struct frame_info *frame, *prev_frame;
|
||||
struct frame_info *frame;
|
||||
struct frame_info *prev_frame = NULL;
|
||||
char *exp_start = NULL;
|
||||
char *exp_end = NULL;
|
||||
char *tok, *end_tok;
|
||||
|
@ -25,6 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "language.h"
|
||||
#include "c-lang.h"
|
||||
|
||||
static void emit_char PARAMS ((int, GDB_FILE *, int));
|
||||
|
||||
/* Print the character C on STREAM as part of the contents of a literal
|
||||
string whose delimiter is QUOTER. Note that that format for printing
|
||||
characters and strings is language specific. */
|
||||
|
@ -44,7 +44,24 @@
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
static int os_init PARAMS ((host_callback *));
|
||||
static int os_shutdown PARAMS ((host_callback *));
|
||||
static int os_unlink PARAMS ((host_callback *, const char *));
|
||||
static long os_time PARAMS ((host_callback *, long *));
|
||||
static int os_system PARAMS ((host_callback *, const char *));
|
||||
static int os_rename PARAMS ((host_callback *, const char *, const char *));
|
||||
static int os_write_stdout PARAMS ((host_callback *, const char *, int));
|
||||
static int os_write PARAMS ((host_callback *, int, const char *, int));
|
||||
static int os_read_stdin PARAMS ((host_callback *, char *, int));
|
||||
static int os_read PARAMS ((host_callback *, int, char *, int));
|
||||
static int os_open PARAMS ((host_callback *, const char *, int));
|
||||
static int os_lseek PARAMS ((host_callback *, int, long, int));
|
||||
static int os_isatty PARAMS ((host_callback *, int));
|
||||
static int os_get_errno PARAMS ((host_callback *));
|
||||
static int os_close PARAMS ((host_callback *, int));
|
||||
static int fdmap PARAMS ((host_callback *, int));
|
||||
static int fdbad PARAMS ((host_callback *, int));
|
||||
static int wrap PARAMS ((host_callback *, int));
|
||||
|
||||
/* Set the callback copy of errno from what we see now. */
|
||||
static int
|
||||
@ -80,7 +97,7 @@ fdmap (p, fd)
|
||||
return p->fdmap[fd];
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_close (p, fd)
|
||||
host_callback *p;
|
||||
int fd;
|
||||
@ -94,7 +111,7 @@ os_close (p, fd)
|
||||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_get_errno (p)
|
||||
host_callback *p;
|
||||
{
|
||||
@ -103,7 +120,7 @@ os_get_errno (p)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
static int
|
||||
os_isatty (p, fd)
|
||||
host_callback *p;
|
||||
int fd;
|
||||
@ -113,11 +130,11 @@ os_isatty (p, fd)
|
||||
result = fdbad (p, fd);
|
||||
if (result)
|
||||
return result;
|
||||
result = wrap (p, isatty (fdmap (fd)));
|
||||
result = wrap (p, isatty (fdmap (p, fd)));
|
||||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_lseek (p, fd, off, way)
|
||||
host_callback *p;
|
||||
int fd;
|
||||
@ -133,7 +150,7 @@ os_lseek (p, fd, off, way)
|
||||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_open (p, name, flags)
|
||||
host_callback *p;
|
||||
const char *name;
|
||||
@ -159,7 +176,7 @@ os_open (p, name, flags)
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_read (p, fd, buf, len)
|
||||
host_callback *p;
|
||||
int fd;
|
||||
@ -175,7 +192,7 @@ os_read (p, fd, buf, len)
|
||||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_read_stdin (p, buf, len)
|
||||
host_callback *p;
|
||||
char *buf;
|
||||
@ -184,7 +201,7 @@ os_read_stdin (p, buf, len)
|
||||
return wrap (p, read (0, buf, len));
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_write (p, fd, buf, len)
|
||||
host_callback *p;
|
||||
int fd;
|
||||
@ -201,7 +218,8 @@ os_write (p, fd, buf, len)
|
||||
}
|
||||
|
||||
/* ignore the grossness of INSIDE_SIMULATOR, it will go away one day. */
|
||||
int
|
||||
|
||||
static int
|
||||
os_write_stdout (p, buf, len)
|
||||
host_callback *p;
|
||||
const char *buf;
|
||||
@ -225,7 +243,7 @@ os_write_stdout (p, buf, len)
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
os_rename (p, f1, f2)
|
||||
host_callback *p;
|
||||
const char *f1;
|
||||
@ -235,7 +253,7 @@ os_rename (p, f1, f2)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
static int
|
||||
os_system (p, s)
|
||||
host_callback *p;
|
||||
const char *s;
|
||||
@ -243,7 +261,7 @@ os_system (p, s)
|
||||
return wrap (p, system (s));
|
||||
}
|
||||
|
||||
long
|
||||
static long
|
||||
os_time (p, t)
|
||||
host_callback *p;
|
||||
long *t;
|
||||
@ -252,7 +270,7 @@ os_time (p, t)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
static int
|
||||
os_unlink (p, f1)
|
||||
host_callback *p;
|
||||
const char *f1;
|
||||
@ -261,9 +279,9 @@ os_unlink (p, f1)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
static int
|
||||
os_shutdown (p)
|
||||
host_callback *p;
|
||||
host_callback *p;
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < MAX_CALLBACK_FDS; i++)
|
||||
@ -276,8 +294,9 @@ host_callback *p;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int os_init(p)
|
||||
host_callback *p;
|
||||
static int
|
||||
os_init(p)
|
||||
host_callback *p;
|
||||
{
|
||||
int i;
|
||||
os_shutdown (p);
|
||||
@ -296,7 +315,7 @@ host_callback *p;
|
||||
move the whole file into sim/common and remove this bit. */
|
||||
|
||||
/* VARARGS */
|
||||
void
|
||||
static void
|
||||
#ifdef ANSI_PROTOTYPES
|
||||
os_printf_filtered (host_callback *p, const char *format, ...)
|
||||
#else
|
||||
|
84
gdb/ch-exp.c
84
gdb/ch-exp.c
@ -55,6 +55,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "symfile.h" /* Required by objfiles.h. */
|
||||
#include "objfiles.h" /* For have_full_symbols and have_partial_symbols */
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define INLINE __inline__
|
||||
#endif
|
||||
|
||||
typedef union
|
||||
|
||||
{
|
||||
@ -131,13 +135,55 @@ enum ch_terminal {
|
||||
};
|
||||
|
||||
/* Forward declarations. */
|
||||
static void parse_expr ();
|
||||
static void parse_primval ();
|
||||
static void parse_untyped_expr ();
|
||||
static int parse_opt_untyped_expr ();
|
||||
static void parse_if_expression_body PARAMS((void));
|
||||
|
||||
static void write_lower_upper_value PARAMS ((enum exp_opcode, struct type *));
|
||||
static enum ch_terminal ch_lex ();
|
||||
static enum ch_terminal match_bitstring_literal PARAMS ((void));
|
||||
static enum ch_terminal match_integer_literal PARAMS ((void));
|
||||
static enum ch_terminal match_character_literal PARAMS ((void));
|
||||
static enum ch_terminal match_string_literal PARAMS ((void));
|
||||
static enum ch_terminal match_float_literal PARAMS ((void));
|
||||
static enum ch_terminal match_float_literal PARAMS ((void));
|
||||
static int decode_integer_literal PARAMS ((LONGEST *, char **));
|
||||
static int decode_integer_value PARAMS ((int, char **, LONGEST *));
|
||||
static char *match_simple_name_string PARAMS ((void));
|
||||
static void growbuf_by_size PARAMS ((int));
|
||||
static void parse_untyped_expr PARAMS ((void));
|
||||
static void parse_if_expression PARAMS ((void));
|
||||
static void parse_else_alternative PARAMS ((void));
|
||||
static void parse_then_alternative PARAMS ((void));
|
||||
static void parse_expr PARAMS ((void));
|
||||
static void parse_operand0 PARAMS ((void));
|
||||
static void parse_operand1 PARAMS ((void));
|
||||
static void parse_operand2 PARAMS ((void));
|
||||
static void parse_operand3 PARAMS ((void));
|
||||
static void parse_operand4 PARAMS ((void));
|
||||
static void parse_operand5 PARAMS ((void));
|
||||
static void parse_operand6 PARAMS ((void));
|
||||
static void parse_primval PARAMS ((void));
|
||||
static void parse_tuple PARAMS ((struct type *));
|
||||
static void parse_opt_element_list PARAMS ((void));
|
||||
static void parse_tuple_element PARAMS ((void));
|
||||
static void parse_named_record_element PARAMS ((void));
|
||||
static void parse_call PARAMS ((void));
|
||||
static struct type *parse_mode_or_normal_call PARAMS ((void));
|
||||
#if 0
|
||||
static struct type *parse_mode_call PARAMS ((void));
|
||||
#endif
|
||||
static void parse_unary_call PARAMS ((void));
|
||||
static int parse_opt_untyped_expr PARAMS ((void));
|
||||
static void parse_case_label PARAMS ((void));
|
||||
static int expect PARAMS ((enum ch_terminal, char *));
|
||||
static void parse_expr PARAMS ((void));
|
||||
static void parse_primval PARAMS ((void));
|
||||
static void parse_untyped_expr PARAMS ((void));
|
||||
static int parse_opt_untyped_expr PARAMS ((void));
|
||||
static void parse_if_expression_body PARAMS((void));
|
||||
static enum ch_terminal ch_lex PARAMS ((void));
|
||||
INLINE static enum ch_terminal PEEK_TOKEN PARAMS ((void));
|
||||
static enum ch_terminal peek_token_ PARAMS ((int));
|
||||
static void forward_token_ PARAMS ((void));
|
||||
static void require PARAMS ((enum ch_terminal));
|
||||
static int check_token PARAMS ((enum ch_terminal));
|
||||
|
||||
#define MAX_LOOK_AHEAD 2
|
||||
static enum ch_terminal terminal_buffer[MAX_LOOK_AHEAD+1] = {
|
||||
@ -147,10 +193,7 @@ static YYSTYPE val_buffer[MAX_LOOK_AHEAD+1];
|
||||
|
||||
/*int current_token, lookahead_token;*/
|
||||
|
||||
#ifdef __GNUC__
|
||||
__inline__
|
||||
#endif
|
||||
static enum ch_terminal
|
||||
INLINE static enum ch_terminal
|
||||
PEEK_TOKEN()
|
||||
{
|
||||
if (terminal_buffer[0] == TOKEN_NOT_READ)
|
||||
@ -214,7 +257,7 @@ forward_token_()
|
||||
/* Skip the next token.
|
||||
if it isn't TOKEN, the parser is broken. */
|
||||
|
||||
void
|
||||
static void
|
||||
require(token)
|
||||
enum ch_terminal token;
|
||||
{
|
||||
@ -227,7 +270,7 @@ require(token)
|
||||
FORWARD_TOKEN();
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
check_token (token)
|
||||
enum ch_terminal token;
|
||||
{
|
||||
@ -240,8 +283,8 @@ check_token (token)
|
||||
/* return 0 if expected token was not found,
|
||||
else return 1.
|
||||
*/
|
||||
int
|
||||
expect(token, message)
|
||||
static int
|
||||
expect (token, message)
|
||||
enum ch_terminal token;
|
||||
char *message;
|
||||
{
|
||||
@ -408,7 +451,9 @@ parse_unary_call ()
|
||||
|
||||
/* Parse NAME '(' MODENAME ')'. */
|
||||
|
||||
struct type *
|
||||
#if 0
|
||||
|
||||
static struct type *
|
||||
parse_mode_call ()
|
||||
{
|
||||
struct type *type;
|
||||
@ -422,7 +467,9 @@ parse_mode_call ()
|
||||
return type;
|
||||
}
|
||||
|
||||
struct type *
|
||||
#endif
|
||||
|
||||
static struct type *
|
||||
parse_mode_or_normal_call ()
|
||||
{
|
||||
struct type *type;
|
||||
@ -486,9 +533,11 @@ static void
|
||||
parse_named_record_element ()
|
||||
{
|
||||
struct stoken label;
|
||||
char buf[256];
|
||||
|
||||
label = PEEK_LVAL ().sval;
|
||||
expect (FIELD_NAME, "expected a field name here `%s'", lexptr);
|
||||
sprintf (buf, "expected a field name here `%s'", lexptr);
|
||||
expect (FIELD_NAME, buf);
|
||||
if (check_token (','))
|
||||
parse_named_record_element ();
|
||||
else if (check_token (':'))
|
||||
@ -2072,7 +2121,6 @@ write_lower_upper_value (opcode, type)
|
||||
write_exp_elt_opcode (opcode);
|
||||
else
|
||||
{
|
||||
extern LONGEST type_lower_upper ();
|
||||
struct type *result_type;
|
||||
LONGEST val = type_lower_upper (opcode, type, &result_type);
|
||||
write_exp_elt_opcode (OP_LONG);
|
||||
|
@ -26,6 +26,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "language.h"
|
||||
#include "ch-lang.h"
|
||||
|
||||
static value_ptr
|
||||
evaluate_subexp_chill PARAMS ((struct type *, struct expression *, int *, enum noside));
|
||||
|
||||
static value_ptr
|
||||
value_chill_max_min PARAMS ((enum exp_opcode, value_ptr));
|
||||
|
||||
static value_ptr
|
||||
value_chill_card PARAMS ((value_ptr));
|
||||
|
||||
static value_ptr
|
||||
value_chill_length PARAMS ((value_ptr));
|
||||
|
||||
static struct type *
|
||||
chill_create_fundamental_type PARAMS ((struct objfile *, int));
|
||||
|
||||
static void
|
||||
chill_printstr PARAMS ((GDB_FILE *, char *, unsigned int, int));
|
||||
|
||||
static void
|
||||
chill_printchar PARAMS ((int, GDB_FILE *));
|
||||
|
||||
/* For now, Chill uses a simple mangling algorithm whereby you simply
|
||||
discard everything after the occurance of two successive CPLUS_MARKER
|
||||
|
@ -37,3 +37,6 @@ chill_val_print PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *, int, int,
|
||||
extern int
|
||||
chill_value_print PARAMS ((struct value *, GDB_FILE *,
|
||||
int, enum val_prettyprint));
|
||||
|
||||
extern LONGEST
|
||||
type_lower_upper PARAMS ((enum exp_opcode, struct type *, struct type **));
|
||||
|
@ -36,6 +36,13 @@ static void
|
||||
chill_print_value_fields PARAMS ((struct type *, char *, GDB_FILE *, int, int,
|
||||
enum val_prettyprint, struct type **));
|
||||
|
||||
static void
|
||||
chill_print_type_scalar PARAMS ((struct type *, LONGEST, GDB_FILE *));
|
||||
|
||||
static void
|
||||
chill_val_print_array_elements PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *,
|
||||
int, int, int, enum val_prettyprint));
|
||||
|
||||
|
||||
/* Print integral scalar data VAL, of type TYPE, onto stdio stream STREAM.
|
||||
Used to print data from type structures in a specified type. For example,
|
||||
@ -43,7 +50,7 @@ chill_print_value_fields PARAMS ((struct type *, char *, GDB_FILE *, int, int,
|
||||
allows the ranges to be printed in their "natural" form rather than as
|
||||
decimal integer values. */
|
||||
|
||||
void
|
||||
static void
|
||||
chill_print_type_scalar (type, val, stream)
|
||||
struct type *type;
|
||||
LONGEST val;
|
||||
@ -382,7 +389,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||
{
|
||||
if (need_comma)
|
||||
fputs_filtered (", ", stream);
|
||||
chill_print_type_scalar (range, i, stream);
|
||||
chill_print_type_scalar (range, (LONGEST) i, stream);
|
||||
need_comma = 1;
|
||||
|
||||
/* Look for a continuous range of true elements. */
|
||||
@ -393,7 +400,7 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||
while (i+1 <= high_bound
|
||||
&& value_bit_index (type, valaddr, ++i))
|
||||
j = i;
|
||||
chill_print_type_scalar (range, j, stream);
|
||||
chill_print_type_scalar (range, (LONGEST) j, stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include <sys/core.h>
|
||||
#endif
|
||||
|
||||
static void
|
||||
fetch_core_registers PARAMS ((char *, unsigned, int, unsigned));
|
||||
|
||||
/* Extract the register values out of the core file and store
|
||||
them where `read_register' will find them.
|
||||
|
||||
|
@ -52,6 +52,10 @@ static void core_close PARAMS ((int));
|
||||
|
||||
static void get_core_registers PARAMS ((int));
|
||||
|
||||
static void add_to_thread_list PARAMS ((bfd *, asection *, PTR));
|
||||
|
||||
static int ignore PARAMS ((CORE_ADDR, char *));
|
||||
|
||||
/* Link a new core_fns into the global core_file_fns list. Called on gdb
|
||||
startup by the _initialize routine in each core file register reader, to
|
||||
register information about each format the the reader is prepared to
|
||||
|
@ -65,11 +65,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "aout/aout64.h"
|
||||
#include "aout/stab_gnu.h" /* We always use GNU stabs, not native, now */
|
||||
|
||||
/* defined in stabsread.c; used for completing cfront stabs strings */
|
||||
extern void
|
||||
resolve_cfront_continuation PARAMS((struct objfile * objfile,
|
||||
struct symbol * sym, char * p));
|
||||
|
||||
|
||||
/* We put a pointer to this structure in the read_symtab_private field
|
||||
of the psymtab. */
|
||||
@ -211,6 +206,9 @@ static int bincls_allocated;
|
||||
|
||||
/* Local function prototypes */
|
||||
|
||||
static void
|
||||
process_now PARAMS ((struct objfile *));
|
||||
|
||||
static void
|
||||
free_header_files PARAMS ((void));
|
||||
|
||||
@ -779,7 +777,7 @@ process_later(sym,p)
|
||||
cont_count++;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
process_now(objfile)
|
||||
struct objfile * objfile;
|
||||
{
|
||||
|
10
gdb/dcache.c
10
gdb/dcache.c
@ -23,7 +23,7 @@
|
||||
#include "dcache.h"
|
||||
#include "gdbcmd.h"
|
||||
#include "gdb_string.h"
|
||||
|
||||
#include "gdbcore.h"
|
||||
|
||||
/*
|
||||
The data cache could lead to incorrect results because it doesn't know
|
||||
@ -478,8 +478,8 @@ dcache_xfer_memory (dcache, memaddr, myaddr, len, should_write)
|
||||
|
||||
if (remote_dcache)
|
||||
{
|
||||
int (*xfunc) ()
|
||||
= should_write ? dcache_poke_byte : dcache_peek_byte;
|
||||
int (*xfunc) PARAMS ((DCACHE *dcache, CORE_ADDR addr, char *ptr));
|
||||
xfunc = should_write ? dcache_poke_byte : dcache_peek_byte;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
@ -491,8 +491,8 @@ dcache_xfer_memory (dcache, memaddr, myaddr, len, should_write)
|
||||
}
|
||||
else
|
||||
{
|
||||
int (*xfunc) ()
|
||||
= should_write ? dcache->write_memory : dcache->read_memory;
|
||||
memxferfunc xfunc;
|
||||
xfunc = should_write ? dcache->write_memory : dcache->read_memory;
|
||||
|
||||
if (dcache->cache_has_stuff)
|
||||
dcache_flush (dcache);
|
||||
|
44
gdb/defs.h
44
gdb/defs.h
@ -45,6 +45,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
|
||||
#define PRIVATE_XMALLOC 1 /* Suppress libiberty decls for xmalloc/xrealloc */
|
||||
#include "libiberty.h"
|
||||
|
||||
/* libiberty.h can't declare this one, but evidently we can. */
|
||||
@ -207,6 +208,12 @@ extern char *chill_demangle PARAMS ((const char *));
|
||||
|
||||
/* From utils.c */
|
||||
|
||||
extern PTR xmalloc PARAMS ((long));
|
||||
|
||||
extern PTR xrealloc PARAMS ((PTR, long));
|
||||
|
||||
extern void notice_quit PARAMS ((void));
|
||||
|
||||
extern int strcmp_iw PARAMS ((const char *, const char *));
|
||||
|
||||
extern char *safe_strerror PARAMS ((int));
|
||||
@ -242,12 +249,17 @@ extern void restore_cleanups PARAMS ((struct cleanup *));
|
||||
|
||||
extern void free_current_contents PARAMS ((char **));
|
||||
|
||||
extern void null_cleanup PARAMS ((char **));
|
||||
extern void null_cleanup PARAMS ((PTR));
|
||||
|
||||
extern int myread PARAMS ((int, char *, int));
|
||||
|
||||
extern int query PARAMS((char *, ...))
|
||||
ATTR_FORMAT(printf, 1, 2);
|
||||
|
||||
/* From demangle.c */
|
||||
|
||||
extern void set_demangling_style PARAMS ((char *));
|
||||
|
||||
|
||||
/* Annotation stuff. */
|
||||
|
||||
@ -643,11 +655,11 @@ extern char *getenv PARAMS ((const char *));
|
||||
somewhere. */
|
||||
|
||||
#ifndef FCLOSE_PROVIDED
|
||||
extern int fclose ();
|
||||
extern int fclose PARAMS ((FILE *));
|
||||
#endif
|
||||
|
||||
#ifndef atof
|
||||
extern double atof ();
|
||||
extern double atof PARAMS ((const char *)); /* X3.159-1989 4.10.1.1 */
|
||||
#endif
|
||||
|
||||
#ifndef MALLOC_INCOMPATIBLE
|
||||
@ -660,30 +672,6 @@ extern void free ();
|
||||
|
||||
#endif /* MALLOC_INCOMPATIBLE */
|
||||
|
||||
#ifndef __WIN32__
|
||||
|
||||
#ifndef strchr
|
||||
extern char *strchr ();
|
||||
#endif
|
||||
|
||||
#ifndef strrchr
|
||||
extern char *strrchr ();
|
||||
#endif
|
||||
|
||||
#ifndef strstr
|
||||
extern char *strstr ();
|
||||
#endif
|
||||
|
||||
#ifndef strtok
|
||||
extern char *strtok ();
|
||||
#endif
|
||||
|
||||
#ifndef strerror
|
||||
extern char *strerror ();
|
||||
#endif
|
||||
|
||||
#endif /* !__WIN32__ */
|
||||
|
||||
/* Various possibilities for alloca. */
|
||||
#ifndef alloca
|
||||
# ifdef __GNUC__
|
||||
@ -998,7 +986,7 @@ extern int (*target_wait_hook) PARAMS ((int pid,
|
||||
extern void (*call_command_hook) PARAMS ((struct cmd_list_element *c,
|
||||
char *cmd, int from_tty));
|
||||
|
||||
extern NORETURN void (*error_hook) PARAMS (()) ATTR_NORETURN;
|
||||
extern NORETURN void (*error_hook) PARAMS ((void)) ATTR_NORETURN;
|
||||
|
||||
|
||||
|
||||
|
@ -70,6 +70,9 @@ static const struct demangler
|
||||
{NULL, unknown_demangling, NULL}
|
||||
};
|
||||
|
||||
static void
|
||||
set_demangling_command PARAMS ((char *, int, struct cmd_list_element *));
|
||||
|
||||
/* set current demangling style. called by the "set demangling" command
|
||||
after it has updated the current_demangling_style_string to match
|
||||
what the user has entered.
|
||||
@ -159,7 +162,7 @@ set_demangling_style (style)
|
||||
free (current_demangling_style_string);
|
||||
}
|
||||
current_demangling_style_string = savestring (style, strlen (style));
|
||||
set_demangling_command ((char *) NULL, 0);
|
||||
set_demangling_command ((char *) NULL, 0, (struct cmd_list_element *) NULL);
|
||||
}
|
||||
|
||||
/* In order to allow a single demangler executable to demangle strings
|
||||
|
@ -442,6 +442,9 @@ static const struct language_defn *cu_language_defn;
|
||||
/* Forward declarations of static functions so we don't have to worry
|
||||
about ordering within this file. */
|
||||
|
||||
static void
|
||||
free_utypes PARAMS ((PTR));
|
||||
|
||||
static int
|
||||
attribute_size PARAMS ((unsigned int));
|
||||
|
||||
|
@ -58,6 +58,10 @@ static void set_section_command PARAMS ((char *, int));
|
||||
|
||||
static void exec_files_info PARAMS ((struct target_ops *));
|
||||
|
||||
static void bfdsec_to_vmap PARAMS ((bfd *, sec_ptr, PTR));
|
||||
|
||||
static int ignore PARAMS ((CORE_ADDR, char *));
|
||||
|
||||
extern int info_verbose;
|
||||
|
||||
/* The Binary File Descriptor handle for the executable file. */
|
||||
|
@ -109,6 +109,10 @@ static int yylex PARAMS ((void));
|
||||
|
||||
void yyerror PARAMS ((char *));
|
||||
|
||||
static void growbuf_by_size PARAMS ((int));
|
||||
|
||||
static int match_string_literal PARAMS ((void));
|
||||
|
||||
%}
|
||||
|
||||
/* Although the yacc "value" of an expression is not used,
|
||||
|
132
gdb/f-lang.c
132
gdb/f-lang.c
@ -45,6 +45,47 @@ struct type *builtin_type_f_complex_s16;
|
||||
struct type *builtin_type_f_complex_s32;
|
||||
struct type *builtin_type_f_void;
|
||||
|
||||
/* Following is dubious stuff that had been in the xcoff reader. */
|
||||
|
||||
struct saved_fcn
|
||||
{
|
||||
long line_offset; /* Line offset for function */
|
||||
struct saved_fcn *next;
|
||||
};
|
||||
|
||||
|
||||
struct saved_bf_symnum
|
||||
{
|
||||
long symnum_fcn; /* Symnum of function (i.e. .function directive) */
|
||||
long symnum_bf; /* Symnum of .bf for this function */
|
||||
struct saved_bf_symnum *next;
|
||||
};
|
||||
|
||||
typedef struct saved_fcn SAVED_FUNCTION, *SAVED_FUNCTION_PTR;
|
||||
typedef struct saved_bf_symnum SAVED_BF, *SAVED_BF_PTR;
|
||||
|
||||
/* Local functions */
|
||||
|
||||
#if 0
|
||||
static void clear_function_list PARAMS ((void));
|
||||
static long get_bf_for_fcn PARAMS ((long));
|
||||
static void clear_bf_list PARAMS ((void));
|
||||
static void patch_all_commons_by_name PARAMS ((char *, CORE_ADDR, int));
|
||||
static SAVED_F77_COMMON_PTR find_first_common_named PARAMS ((char *));
|
||||
static void add_common_entry PARAMS ((struct symbol *));
|
||||
static void add_common_block PARAMS ((char *, CORE_ADDR, int, char *));
|
||||
static SAVED_FUNCTION *allocate_saved_function_node PARAMS ((void));
|
||||
static SAVED_BF_PTR allocate_saved_bf_node PARAMS ((void));
|
||||
static COMMON_ENTRY_PTR allocate_common_entry_node PARAMS ((void));
|
||||
static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node PARAMS ((void));
|
||||
#endif
|
||||
|
||||
static void patch_common_entries PARAMS ((SAVED_F77_COMMON_PTR, CORE_ADDR, int));
|
||||
static struct type *f_create_fundamental_type PARAMS ((struct objfile *, int));
|
||||
static void f_printstr PARAMS ((FILE *, char *, unsigned int, int));
|
||||
static void f_printchar PARAMS ((int, FILE *));
|
||||
static void emit_char PARAMS ((int, FILE *, int));
|
||||
|
||||
/* Print the character C on STREAM as part of the contents of a literal
|
||||
string whose delimiter is QUOTER. Note that that format for printing
|
||||
characters and strings is language specific.
|
||||
@ -413,7 +454,10 @@ struct type ** const (f_builtin_types[]) =
|
||||
0
|
||||
};
|
||||
|
||||
int c_value_print();
|
||||
/* This is declared in c-lang.h but it is silly to import that file for what
|
||||
is already just a hack. */
|
||||
extern int
|
||||
c_value_print PARAMS ((struct value *, GDB_FILE *, int, enum val_prettyprint));
|
||||
|
||||
const struct language_defn f_language_defn = {
|
||||
"fortran",
|
||||
@ -523,27 +567,9 @@ _initialize_f_language ()
|
||||
add_language (&f_language_defn);
|
||||
}
|
||||
|
||||
/* Following is dubious stuff that had been in the xcoff reader. */
|
||||
|
||||
struct saved_fcn
|
||||
{
|
||||
long line_offset; /* Line offset for function */
|
||||
struct saved_fcn *next;
|
||||
};
|
||||
|
||||
|
||||
struct saved_bf_symnum
|
||||
{
|
||||
long symnum_fcn; /* Symnum of function (i.e. .function directive) */
|
||||
long symnum_bf; /* Symnum of .bf for this function */
|
||||
struct saved_bf_symnum *next;
|
||||
};
|
||||
|
||||
typedef struct saved_fcn SAVED_FUNCTION, *SAVED_FUNCTION_PTR;
|
||||
typedef struct saved_bf_symnum SAVED_BF, *SAVED_BF_PTR;
|
||||
|
||||
|
||||
SAVED_BF_PTR allocate_saved_bf_node()
|
||||
#if 0
|
||||
static SAVED_BF_PTR
|
||||
allocate_saved_bf_node()
|
||||
{
|
||||
SAVED_BF_PTR new;
|
||||
|
||||
@ -551,7 +577,8 @@ SAVED_BF_PTR allocate_saved_bf_node()
|
||||
return(new);
|
||||
}
|
||||
|
||||
SAVED_FUNCTION *allocate_saved_function_node()
|
||||
static SAVED_FUNCTION *
|
||||
allocate_saved_function_node()
|
||||
{
|
||||
SAVED_FUNCTION *new;
|
||||
|
||||
@ -559,7 +586,7 @@ SAVED_FUNCTION *allocate_saved_function_node()
|
||||
return(new);
|
||||
}
|
||||
|
||||
SAVED_F77_COMMON_PTR allocate_saved_f77_common_node()
|
||||
static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node()
|
||||
{
|
||||
SAVED_F77_COMMON_PTR new;
|
||||
|
||||
@ -567,41 +594,38 @@ SAVED_F77_COMMON_PTR allocate_saved_f77_common_node()
|
||||
return(new);
|
||||
}
|
||||
|
||||
COMMON_ENTRY_PTR allocate_common_entry_node()
|
||||
static COMMON_ENTRY_PTR allocate_common_entry_node()
|
||||
{
|
||||
COMMON_ENTRY_PTR new;
|
||||
|
||||
new = (COMMON_ENTRY_PTR) xmalloc (sizeof (COMMON_ENTRY));
|
||||
return(new);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
SAVED_F77_COMMON_PTR head_common_list=NULL; /* Ptr to 1st saved COMMON */
|
||||
SAVED_F77_COMMON_PTR tail_common_list=NULL; /* Ptr to last saved COMMON */
|
||||
SAVED_F77_COMMON_PTR current_common=NULL; /* Ptr to current COMMON */
|
||||
|
||||
#if 0
|
||||
static SAVED_BF_PTR saved_bf_list=NULL; /* Ptr to (.bf,function)
|
||||
list*/
|
||||
#if 0
|
||||
static SAVED_BF_PTR saved_bf_list_end=NULL; /* Ptr to above list's end */
|
||||
#endif
|
||||
static SAVED_BF_PTR current_head_bf_list=NULL; /* Current head of above list
|
||||
*/
|
||||
|
||||
#if 0
|
||||
static SAVED_BF_PTR tmp_bf_ptr; /* Generic temporary for use
|
||||
in macros */
|
||||
#endif
|
||||
|
||||
/* The following function simply enters a given common block onto
|
||||
the global common block chain */
|
||||
|
||||
void add_common_block(name,offset,secnum,func_stab)
|
||||
static void
|
||||
add_common_block(name,offset,secnum,func_stab)
|
||||
char *name;
|
||||
CORE_ADDR offset;
|
||||
int secnum;
|
||||
char *func_stab;
|
||||
|
||||
{
|
||||
SAVED_F77_COMMON_PTR tmp;
|
||||
char *c,*local_copy_func_stab;
|
||||
@ -662,14 +686,15 @@ void add_common_block(name,offset,secnum,func_stab)
|
||||
tail_common_list->next = tmp;
|
||||
tail_common_list = tmp;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* The following function simply enters a given common entry onto
|
||||
the "current_common" block that has been saved away. */
|
||||
|
||||
void add_common_entry(entry_sym_ptr)
|
||||
#if 0
|
||||
static void
|
||||
add_common_entry(entry_sym_ptr)
|
||||
struct symbol *entry_sym_ptr;
|
||||
{
|
||||
COMMON_ENTRY_PTR tmp;
|
||||
@ -700,13 +725,14 @@ void add_common_entry(entry_sym_ptr)
|
||||
current_common->end_of_entries = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
/* This routine finds the first encountred COMMON block named "name" */
|
||||
|
||||
SAVED_F77_COMMON_PTR find_first_common_named(name)
|
||||
#if 0
|
||||
static SAVED_F77_COMMON_PTR
|
||||
find_first_common_named(name)
|
||||
char *name;
|
||||
{
|
||||
|
||||
@ -723,6 +749,7 @@ SAVED_F77_COMMON_PTR find_first_common_named(name)
|
||||
}
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* This routine finds the first encountred COMMON block named "name"
|
||||
that belongs to function funcname */
|
||||
@ -754,7 +781,8 @@ SAVED_F77_COMMON_PTR find_common_for_function(name, funcname)
|
||||
"name." */
|
||||
|
||||
|
||||
void patch_common_entries (blk, offset, secnum)
|
||||
static void
|
||||
patch_common_entries (blk, offset, secnum)
|
||||
SAVED_F77_COMMON_PTR blk;
|
||||
CORE_ADDR offset;
|
||||
int secnum;
|
||||
@ -782,8 +810,9 @@ void patch_common_entries (blk, offset, secnum)
|
||||
hashed-lookup. Secnum is the section number for the .bss section
|
||||
(which is where common data lives). */
|
||||
|
||||
|
||||
void patch_all_commons_by_name (name, offset, secnum)
|
||||
#if 0
|
||||
static void
|
||||
patch_all_commons_by_name (name, offset, secnum)
|
||||
char *name;
|
||||
CORE_ADDR offset;
|
||||
int secnum;
|
||||
@ -812,12 +841,8 @@ void patch_all_commons_by_name (name, offset, secnum)
|
||||
|
||||
tmp = tmp->next;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/* This macro adds the symbol-number for the start of the function
|
||||
(the symbol number of the .bf) referenced by symnum_fcn to a
|
||||
@ -856,7 +881,8 @@ else \
|
||||
|
||||
/* This function frees the entire (.bf,function) list */
|
||||
|
||||
void
|
||||
#if 0
|
||||
static void
|
||||
clear_bf_list()
|
||||
{
|
||||
|
||||
@ -871,10 +897,13 @@ void
|
||||
}
|
||||
saved_bf_list = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
int global_remote_debug;
|
||||
|
||||
long
|
||||
#if 0
|
||||
|
||||
static long
|
||||
get_bf_for_fcn (the_function)
|
||||
long the_function;
|
||||
{
|
||||
@ -924,11 +953,10 @@ get_bf_for_fcn (the_function)
|
||||
}
|
||||
|
||||
static SAVED_FUNCTION_PTR saved_function_list=NULL;
|
||||
#if 0 /* Currently unused */
|
||||
static SAVED_FUNCTION_PTR saved_function_list_end=NULL;
|
||||
#endif
|
||||
|
||||
void clear_function_list()
|
||||
static void
|
||||
clear_function_list()
|
||||
{
|
||||
SAVED_FUNCTION_PTR tmp = saved_function_list;
|
||||
SAVED_FUNCTION_PTR next = NULL;
|
||||
@ -942,3 +970,5 @@ void clear_function_list()
|
||||
|
||||
saved_function_list = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -43,6 +43,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
static void f_type_print_args PARAMS ((struct type *, FILE *));
|
||||
#endif
|
||||
|
||||
static void print_equivalent_f77_float_type PARAMS ((struct type *, FILE *));
|
||||
|
||||
static void f_type_print_varspec_suffix PARAMS ((struct type *, FILE *,
|
||||
int, int, int));
|
||||
|
||||
@ -307,7 +309,7 @@ f_type_print_varspec_suffix (type, stream, show, passed_a_ptr, demangled_args)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
print_equivalent_f77_float_type (type, stream)
|
||||
struct type *type;
|
||||
FILE *stream;
|
||||
|
@ -33,9 +33,20 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "gdbcore.h"
|
||||
#include "command.h"
|
||||
|
||||
extern unsigned int print_max; /* No of array elements to print */
|
||||
#if 0
|
||||
static int there_is_a_visible_common_named PARAMS ((char *));
|
||||
#endif
|
||||
|
||||
extern int calc_f77_array_dims PARAMS ((struct type *));
|
||||
static void info_common_command PARAMS ((char *, int));
|
||||
static void list_all_visible_commons PARAMS ((char *));
|
||||
static void f77_print_array PARAMS ((struct type *, char *, CORE_ADDR,
|
||||
FILE *, int, int, int,
|
||||
enum val_prettyprint));
|
||||
static void f77_print_array_1 PARAMS ((int, int, struct type *, char *,
|
||||
CORE_ADDR, FILE *, int, int, int,
|
||||
enum val_prettyprint));
|
||||
static void f77_create_arrayprint_offset_tbl PARAMS ((struct type *, FILE *));
|
||||
static void f77_get_dynamic_length_of_aggregate PARAMS ((struct type *));
|
||||
|
||||
int f77_array_offset_tbl[MAX_FORTRAN_DIMS+1][2];
|
||||
|
||||
@ -178,7 +189,7 @@ f77_get_dynamic_upperbound (type, upper_bound)
|
||||
|
||||
/* Obtain F77 adjustable array dimensions */
|
||||
|
||||
void
|
||||
static void
|
||||
f77_get_dynamic_length_of_aggregate (type)
|
||||
struct type *type;
|
||||
{
|
||||
@ -217,7 +228,7 @@ f77_get_dynamic_length_of_aggregate (type)
|
||||
/* Function that sets up the array offset,size table for the array
|
||||
type "type". */
|
||||
|
||||
void
|
||||
static void
|
||||
f77_create_arrayprint_offset_tbl (type, stream)
|
||||
struct type *type;
|
||||
FILE *stream;
|
||||
@ -266,13 +277,13 @@ f77_create_arrayprint_offset_tbl (type, stream)
|
||||
/* Actual function which prints out F77 arrays, Valaddr == address in
|
||||
the superior. Address == the address in the inferior. */
|
||||
|
||||
void
|
||||
static void
|
||||
f77_print_array_1 (nss, ndimensions, type, valaddr, address,
|
||||
stream, format, deref_ref, recurse, pretty)
|
||||
int nss;
|
||||
int ndimensions;
|
||||
char *valaddr;
|
||||
struct type *type;
|
||||
char *valaddr;
|
||||
CORE_ADDR address;
|
||||
FILE *stream;
|
||||
int format;
|
||||
@ -290,7 +301,7 @@ f77_print_array_1 (nss, ndimensions, type, valaddr, address,
|
||||
f77_print_array_1 (nss + 1, ndimensions, TYPE_TARGET_TYPE (type),
|
||||
valaddr + i * F77_DIM_OFFSET (nss),
|
||||
address + i * F77_DIM_OFFSET (nss),
|
||||
stream, format, deref_ref, recurse, pretty, i);
|
||||
stream, format, deref_ref, recurse, pretty);
|
||||
fprintf_filtered (stream, ") ");
|
||||
}
|
||||
}
|
||||
@ -315,7 +326,7 @@ f77_print_array_1 (nss, ndimensions, type, valaddr, address,
|
||||
/* This function gets called to print an F77 array, we set up some
|
||||
stuff and then immediately call f77_print_array_1() */
|
||||
|
||||
void
|
||||
static void
|
||||
f77_print_array (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||
pretty)
|
||||
struct type *type;
|
||||
@ -561,7 +572,7 @@ f_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
list_all_visible_commons (funname)
|
||||
char *funname;
|
||||
{
|
||||
@ -680,7 +691,8 @@ info_common_command (comname, from_tty)
|
||||
/* This function is used to determine whether there is a
|
||||
F77 common block visible at the current scope called 'comname'. */
|
||||
|
||||
int
|
||||
#if 0
|
||||
static int
|
||||
there_is_a_visible_common_named (comname)
|
||||
char *comname;
|
||||
{
|
||||
@ -739,6 +751,7 @@ there_is_a_visible_common_named (comname)
|
||||
|
||||
return (the_common ? 1 : 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
_initialize_f_valprint ()
|
||||
|
@ -28,11 +28,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
# else
|
||||
# include <strings.h>
|
||||
# endif
|
||||
extern char *strchr();
|
||||
extern char *strrchr();
|
||||
extern char *strstr();
|
||||
extern char *strtok();
|
||||
extern char *strerror();
|
||||
|
||||
#ifndef strchr
|
||||
extern char *strchr PARAMS ((const char *, int)); /* X3.159-1989 4.11.5.2 */
|
||||
#endif
|
||||
|
||||
#ifndef strrchr
|
||||
extern char *strrchr PARAMS ((const char *, int)); /* X3.159-1989 4.11.5.5 */
|
||||
#endif
|
||||
|
||||
#ifndef strstr
|
||||
extern char *strstr PARAMS ((const char *, const char *)); /* X3.159-1989 4.11.5.7 */
|
||||
#endif
|
||||
|
||||
#ifndef strtok
|
||||
extern char *strtok PARAMS ((char *, const char *)); /* X3.159-1989 4.11.5.8 */
|
||||
#endif
|
||||
|
||||
#ifndef strerror
|
||||
extern char *strerror PARAMS ((int)); /* X3.159-1989 4.11.6.2 */
|
||||
#endif
|
||||
|
||||
# ifdef HAVE_MEMORY_H
|
||||
# include <memory.h>
|
||||
# else
|
||||
@ -43,6 +59,6 @@ extern int memcmp();
|
||||
# endif
|
||||
#endif
|
||||
|
||||
extern char *strdup();
|
||||
extern char *strdup ();
|
||||
|
||||
#endif /* !defined(GDB_STRING_H) */
|
||||
|
48
gdb/gdbtk.c
48
gdb/gdbtk.c
@ -55,6 +55,44 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#undef SIOCSPGRP
|
||||
#endif
|
||||
|
||||
static void null_routine PARAMS ((int));
|
||||
static void gdbtk_flush PARAMS ((FILE *));
|
||||
static void gdbtk_fputs PARAMS ((const char *, FILE *));
|
||||
static int gdbtk_query PARAMS ((const char *, va_list));
|
||||
static char *gdbtk_readline PARAMS ((char *));
|
||||
static void gdbtk_init PARAMS ((void));
|
||||
static void tk_command_loop PARAMS ((void));
|
||||
static void gdbtk_call_command PARAMS ((struct cmd_list_element *, char *, int));
|
||||
static int gdbtk_wait PARAMS ((int, struct target_waitstatus *));
|
||||
static void x_event PARAMS ((int));
|
||||
static void gdbtk_interactive PARAMS ((void));
|
||||
static void cleanup_init PARAMS ((int));
|
||||
static void tk_command PARAMS ((char *, int));
|
||||
static int gdb_disassemble PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int compare_lines PARAMS ((const PTR, const PTR));
|
||||
static int gdbtk_dis_asm_read_memory PARAMS ((bfd_vma, bfd_byte *, int, disassemble_info *));
|
||||
static int gdb_stop PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_listfiles PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int call_wrapper PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_cmd PARAMS ((ClientData, Tcl_Interp *, int, char *argv[]));
|
||||
static int gdb_fetch_registers PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static void gdbtk_readline_end PARAMS ((void));
|
||||
static int gdb_changed_register_list PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static void register_changed_p PARAMS ((int, void *));
|
||||
static int gdb_get_breakpoint_list PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_get_breakpoint_info PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static void breakpoint_notify PARAMS ((struct breakpoint *, const char *));
|
||||
static void gdbtk_create_breakpoint PARAMS ((struct breakpoint *));
|
||||
static void gdbtk_delete_breakpoint PARAMS ((struct breakpoint *));
|
||||
static void gdbtk_modify_breakpoint PARAMS ((struct breakpoint *));
|
||||
static int gdb_loc PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_eval PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_sourcelines PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int map_arg_registers PARAMS ((int, char *[], void (*) (int, void *), void *));
|
||||
static void get_register_name PARAMS ((int, void *));
|
||||
static int gdb_regnames PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static void get_register PARAMS ((int, void *));
|
||||
|
||||
/* Handle for TCL interpreter */
|
||||
|
||||
static Tcl_Interp *interp = NULL;
|
||||
@ -166,7 +204,7 @@ gdbtk_fputs (ptr, stream)
|
||||
|
||||
static int
|
||||
gdbtk_query (query, args)
|
||||
char *query;
|
||||
const char *query;
|
||||
va_list args;
|
||||
{
|
||||
char buf[200], *merge[2];
|
||||
@ -591,7 +629,7 @@ gdb_regnames (clientData, interp, argc, argv)
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
return map_arg_registers (argc, argv, get_register_name, 0);
|
||||
return map_arg_registers (argc, argv, get_register_name, NULL);
|
||||
}
|
||||
|
||||
#ifndef REGISTER_CONVERTIBLE
|
||||
@ -667,7 +705,7 @@ gdb_fetch_registers (clientData, interp, argc, argv)
|
||||
argc--;
|
||||
format = **argv++;
|
||||
|
||||
return map_arg_registers (argc, argv, get_register, format);
|
||||
return map_arg_registers (argc, argv, get_register, (void *) format);
|
||||
}
|
||||
|
||||
/* This contains the previous values of the registers, since the last call to
|
||||
@ -681,7 +719,6 @@ register_changed_p (regnum, argp)
|
||||
void *argp; /* Ignored */
|
||||
{
|
||||
char raw_buffer[MAX_REGISTER_RAW_SIZE];
|
||||
char buf[100];
|
||||
|
||||
if (read_relative_register_raw_bytes (regnum, raw_buffer))
|
||||
return;
|
||||
@ -1251,7 +1288,8 @@ gdbtk_init ()
|
||||
gdb_get_breakpoint_info, NULL);
|
||||
|
||||
command_loop_hook = tk_command_loop;
|
||||
print_frame_info_listing_hook = null_routine;
|
||||
print_frame_info_listing_hook =
|
||||
(void (*) PARAMS ((struct symtab *, int, int, int))) null_routine;
|
||||
query_hook = gdbtk_query;
|
||||
flush_hook = gdbtk_flush;
|
||||
create_breakpoint_hook = gdbtk_create_breakpoint;
|
||||
|
@ -54,6 +54,18 @@ struct type *builtin_type_complex;
|
||||
struct type *builtin_type_double_complex;
|
||||
struct type *builtin_type_string;
|
||||
|
||||
struct extra { char str[128]; int len; }; /* maximum extention is 128! FIXME */
|
||||
|
||||
static void add_name PARAMS ((struct extra *, char *));
|
||||
static void add_mangled_type PARAMS ((struct extra *, struct type *));
|
||||
#if 0
|
||||
static void cfront_mangle_name PARAMS ((struct type *, int, int));
|
||||
#endif
|
||||
static void print_bit_vector PARAMS ((B_TYPE *, int));
|
||||
static void print_arg_types PARAMS ((struct type **, int));
|
||||
static void dump_fn_fieldlists PARAMS ((struct type *, int));
|
||||
static void print_cplus_stuff PARAMS ((struct type *, int));
|
||||
|
||||
/* Alloc a new type structure and fill it with some defaults. If
|
||||
OBJFILE is non-NULL, then allocate the space for the type structure
|
||||
in that objfile's type_obstack. */
|
||||
@ -979,21 +991,21 @@ check_typedef (type)
|
||||
#include <ctype.h>
|
||||
#define INIT_EXTRA { pextras->len=0; pextras->str[0]='\0'; }
|
||||
#define ADD_EXTRA(c) { pextras->str[pextras->len++]=c; }
|
||||
struct extra { char str[128]; int len; }; /* maximum extention is 128! FIXME */
|
||||
void
|
||||
|
||||
static void
|
||||
add_name(pextras,n)
|
||||
struct extra * pextras;
|
||||
char * n;
|
||||
{
|
||||
char lenstr[512]; /* FIXME! hardcoded :-( */
|
||||
int nlen, lenstrlen;
|
||||
int nlen;
|
||||
|
||||
if ((nlen = (n ? strlen(n) : 0))==0)
|
||||
return;
|
||||
sprintf(pextras->str+pextras->len,"%d%s",nlen,n);
|
||||
pextras->len=strlen(pextras->str);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
add_mangled_type(pextras,t)
|
||||
struct extra * pextras;
|
||||
struct type * t;
|
||||
@ -1116,7 +1128,8 @@ add_mangled_type(pextras,t)
|
||||
add_mangled_type(pextras,t->target_type);
|
||||
}
|
||||
|
||||
char *
|
||||
#if 0
|
||||
void
|
||||
cfront_mangle_name(type, i, j)
|
||||
struct type *type;
|
||||
int i;
|
||||
@ -1165,6 +1178,8 @@ cfront_mangle_name(type, i, j)
|
||||
mangled_name = arm_mangled_name;
|
||||
}
|
||||
}
|
||||
#endif /* 0 */
|
||||
|
||||
#undef ADD_EXTRA
|
||||
/* End of new code added to support parsing of Cfront stabs strings */
|
||||
|
||||
|
@ -786,4 +786,8 @@ extern int can_dereference PARAMS ((struct type *));
|
||||
extern void maintenance_print_type PARAMS ((char *, int));
|
||||
#endif
|
||||
|
||||
/* typeprint.c */
|
||||
|
||||
extern void print_type_scalar PARAMS ((struct type *, LONGEST, GDB_FILE *));
|
||||
|
||||
#endif /* GDBTYPES_H */
|
||||
|
@ -34,6 +34,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <sys/file.h>
|
||||
|
||||
static void
|
||||
fetch_inferior_register PARAMS ((int, unsigned int));
|
||||
|
||||
static void
|
||||
store_inferior_register_1 PARAMS ((int, unsigned int, int));
|
||||
|
||||
static void
|
||||
store_inferior_register PARAMS ((int, unsigned int));
|
||||
|
||||
/* Get kernel_u_addr using HPUX-style nlist(). */
|
||||
CORE_ADDR kernel_u_addr;
|
||||
|
||||
@ -138,7 +147,6 @@ store_inferior_register (regno, regaddr)
|
||||
else
|
||||
#endif /* not HPUX_VERSION_5 */
|
||||
{
|
||||
char buf[MAX_REGISTER_RAW_SIZE];
|
||||
register int i;
|
||||
extern char registers[];
|
||||
|
||||
@ -185,7 +193,6 @@ store_inferior_registers (regno)
|
||||
{
|
||||
struct user u;
|
||||
register unsigned int ar0_offset;
|
||||
extern char registers[];
|
||||
|
||||
if (regno >= FP0_REGNUM)
|
||||
{
|
||||
|
@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "defs.h"
|
||||
#include "inferior.h"
|
||||
#include "target.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
/* Return the PC of the caller from the call frame. Assumes the subr prologue
|
||||
has already been executed, and the frame pointer setup. If this is the
|
||||
|
@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "frame.h"
|
||||
#include "floatformat.h"
|
||||
#include "target.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
static CORE_ADDR next_insn PARAMS ((CORE_ADDR memaddr,
|
||||
unsigned int *pword1,
|
||||
|
13
gdb/infcmd.c
13
gdb/infcmd.c
@ -82,6 +82,8 @@ static void step_command PARAMS ((char *, int));
|
||||
|
||||
static void run_command PARAMS ((char *, int));
|
||||
|
||||
static void breakpoint_auto_delete_contents PARAMS ((PTR));
|
||||
|
||||
#define ERROR_NO_INFERIOR \
|
||||
if (!target_has_execution) error ("The program is not being run.");
|
||||
|
||||
@ -500,7 +502,8 @@ signal_command (signum_exp, from_tty)
|
||||
|
||||
/* Call breakpoint_auto_delete on the current contents of the bpstat
|
||||
pointed to by arg (which is really a bpstat *). */
|
||||
void
|
||||
|
||||
static void
|
||||
breakpoint_auto_delete_contents (arg)
|
||||
PTR arg;
|
||||
{
|
||||
@ -1019,7 +1022,11 @@ do_registers_info (regnum, fpregs)
|
||||
|
||||
printf_filtered ("\t(raw 0x");
|
||||
for (j = 0; j < REGISTER_RAW_SIZE (i); j++)
|
||||
printf_filtered ("%02x", (unsigned char)raw_buffer[j]);
|
||||
{
|
||||
register int idx = TARGET_BYTE_ORDER == BIG_ENDIAN ? j
|
||||
: REGISTER_RAW_SIZE (i) - 1 - j;
|
||||
printf_filtered ("%02x", (unsigned char)raw_buffer[idx]);
|
||||
}
|
||||
printf_filtered (")");
|
||||
}
|
||||
|
||||
@ -1137,7 +1144,9 @@ attach_command (args, from_tty)
|
||||
char *args;
|
||||
int from_tty;
|
||||
{
|
||||
#ifdef SOLIB_ADD
|
||||
extern int auto_solib_add;
|
||||
#endif
|
||||
|
||||
dont_repeat (); /* Not for the faint of heart */
|
||||
|
||||
|
@ -47,6 +47,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#endif
|
||||
#endif /* sgtty */
|
||||
|
||||
#if defined (SIGIO) && defined (FASYNC) && defined (FD_SET) && defined (F_SETOWN)
|
||||
static void
|
||||
handle_sigio PARAMS ((int));
|
||||
#endif
|
||||
|
||||
static void
|
||||
pass_signal PARAMS ((int));
|
||||
|
||||
static void
|
||||
kill_command PARAMS ((char *, int));
|
||||
|
||||
@ -82,6 +90,7 @@ PROCESS_GROUP_TYPE inferior_process_group;
|
||||
inferior only. If we have job control, that takes care of it. If not,
|
||||
we save our handlers in these two variables and set SIGINT and SIGQUIT
|
||||
to SIG_IGN. */
|
||||
|
||||
static void (*sigint_ours) ();
|
||||
static void (*sigquit_ours) ();
|
||||
|
||||
|
42
gdb/infrun.c
42
gdb/infrun.c
@ -55,6 +55,8 @@ static void resume_cleanups PARAMS ((int));
|
||||
|
||||
static int hook_stop_stub PARAMS ((char *));
|
||||
|
||||
static void delete_breakpoint_current_contents PARAMS ((PTR));
|
||||
|
||||
/* GET_LONGJMP_TARGET returns the PC at which longjmp() will resume the
|
||||
program. It needs to examine the jmp_buf argument and extract the PC
|
||||
from it. The return value is non-zero on success, zero otherwise. */
|
||||
@ -151,9 +153,11 @@ static struct symbol *step_start_function;
|
||||
|
||||
static int trap_expected;
|
||||
|
||||
#ifdef SOLIB_ADD
|
||||
/* Nonzero if we want to give control to the user when we're notified
|
||||
of shared library events by the dynamic linker. */
|
||||
static int stop_on_solib_events;
|
||||
#endif
|
||||
|
||||
#ifdef HP_OS_BUG
|
||||
/* Nonzero if the next time we try to continue the inferior, it will
|
||||
@ -195,13 +199,6 @@ static int breakpoints_failed;
|
||||
|
||||
static int stop_print_frame;
|
||||
|
||||
#ifdef NO_SINGLE_STEP
|
||||
extern int one_stepped; /* From machine dependent code */
|
||||
extern void single_step (); /* Same. */
|
||||
#endif /* NO_SINGLE_STEP */
|
||||
|
||||
extern void write_pc_pid PARAMS ((CORE_ADDR, int));
|
||||
|
||||
|
||||
/* Things to clean up if we QUIT out of resume (). */
|
||||
/* ARGSUSED */
|
||||
@ -455,7 +452,7 @@ wait_for_inferior ()
|
||||
struct cleanup *old_cleanups;
|
||||
struct target_waitstatus w;
|
||||
int another_trap;
|
||||
int random_signal;
|
||||
int random_signal = 0;
|
||||
CORE_ADDR stop_func_start;
|
||||
CORE_ADDR stop_func_end;
|
||||
char *stop_func_name;
|
||||
@ -1063,8 +1060,8 @@ wait_for_inferior ()
|
||||
another_trap = 1;
|
||||
break;
|
||||
|
||||
#ifdef SOLIB_ADD
|
||||
case BPSTAT_WHAT_CHECK_SHLIBS:
|
||||
#ifdef SOLIB_ADD
|
||||
{
|
||||
extern int auto_solib_add;
|
||||
|
||||
@ -1104,6 +1101,7 @@ wait_for_inferior ()
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
case BPSTAT_WHAT_LAST:
|
||||
/* Not a real code, but listed here to shut up gcc -Wall. */
|
||||
@ -1187,7 +1185,8 @@ wait_for_inferior ()
|
||||
|
||||
/* Did we just take a signal? */
|
||||
if (IN_SIGTRAMP (stop_pc, stop_func_name)
|
||||
&& !IN_SIGTRAMP (prev_pc, prev_func_name))
|
||||
&& !IN_SIGTRAMP (prev_pc, prev_func_name)
|
||||
&& read_sp () INNER_THAN step_sp)
|
||||
{
|
||||
/* We've just taken a signal; go until we are back to
|
||||
the point where we took it and one more. */
|
||||
@ -1251,16 +1250,17 @@ wait_for_inferior ()
|
||||
SKIP_PROLOGUE (prologue_pc);
|
||||
}
|
||||
|
||||
if ((/* Might be a non-recursive call. If the symbols are missing
|
||||
enough that stop_func_start == prev_func_start even though
|
||||
they are really two functions, we will treat some calls as
|
||||
jumps. */
|
||||
stop_func_start != prev_func_start
|
||||
if (!(step_sp INNER_THAN read_sp ()) /* don't mistake (sig)return as a call */
|
||||
&& (/* Might be a non-recursive call. If the symbols are missing
|
||||
enough that stop_func_start == prev_func_start even though
|
||||
they are really two functions, we will treat some calls as
|
||||
jumps. */
|
||||
stop_func_start != prev_func_start
|
||||
|
||||
/* Might be a recursive call if either we have a prologue
|
||||
or the call instruction itself saves the PC on the stack. */
|
||||
|| prologue_pc != stop_func_start
|
||||
|| read_sp () != step_sp)
|
||||
/* Might be a recursive call if either we have a prologue
|
||||
or the call instruction itself saves the PC on the stack. */
|
||||
|| prologue_pc != stop_func_start
|
||||
|| read_sp () != step_sp)
|
||||
&& (/* PC is completely out of bounds of any known objfiles. Treat
|
||||
like a subroutine call. */
|
||||
! stop_func_start
|
||||
@ -1519,12 +1519,14 @@ step_into_function:
|
||||
}
|
||||
step_range_start = sal.pc;
|
||||
step_range_end = sal.end;
|
||||
step_frame_address = FRAME_FP (get_current_frame ());
|
||||
goto keep_going;
|
||||
|
||||
check_sigtramp2:
|
||||
if (trap_expected
|
||||
&& IN_SIGTRAMP (stop_pc, stop_func_name)
|
||||
&& !IN_SIGTRAMP (prev_pc, prev_func_name))
|
||||
&& !IN_SIGTRAMP (prev_pc, prev_func_name)
|
||||
&& read_sp () INNER_THAN step_sp)
|
||||
{
|
||||
/* What has happened here is that we have just stepped the inferior
|
||||
with a signal (because it is a signal which shouldn't make
|
||||
|
@ -88,6 +88,25 @@ set_check PARAMS ((char *, int));
|
||||
static void
|
||||
set_type_range PARAMS ((void));
|
||||
|
||||
static void
|
||||
unk_lang_printchar PARAMS ((int, GDB_FILE *));
|
||||
|
||||
static void
|
||||
unk_lang_printstr PARAMS ((GDB_FILE *, char *, unsigned int, int));
|
||||
|
||||
static struct type *
|
||||
unk_lang_create_fundamental_type PARAMS ((struct objfile *, int));
|
||||
|
||||
static void
|
||||
unk_lang_print_type PARAMS ((struct type *, char *, GDB_FILE *, int, int));
|
||||
|
||||
static int
|
||||
unk_lang_val_print PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *,
|
||||
int, int, int, enum val_prettyprint));
|
||||
|
||||
static int
|
||||
unk_lang_value_print PARAMS ((value_ptr, GDB_FILE *, int, enum val_prettyprint));
|
||||
|
||||
/* Forward declaration */
|
||||
extern const struct language_defn unknown_language_defn;
|
||||
extern char *warning_pre_print;
|
||||
@ -1219,7 +1238,7 @@ unk_lang_create_fundamental_type (objfile, typeid)
|
||||
error ("internal error - unimplemented function unk_lang_create_fundamental_type called.");
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
unk_lang_print_type (type, varstring, stream, show, level)
|
||||
struct type *type;
|
||||
char *varstring;
|
||||
@ -1230,7 +1249,7 @@ unk_lang_print_type (type, varstring, stream, show, level)
|
||||
error ("internal error - unimplemented function unk_lang_print_type called.");
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
unk_lang_val_print (type, valaddr, address, stream, format, deref_ref,
|
||||
recurse, pretty)
|
||||
struct type *type;
|
||||
@ -1245,7 +1264,7 @@ unk_lang_val_print (type, valaddr, address, stream, format, deref_ref,
|
||||
error ("internal error - unimplemented function unk_lang_val_print called.");
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
unk_lang_value_print (val, stream, format, pretty)
|
||||
value_ptr val;
|
||||
GDB_FILE *stream;
|
||||
|
@ -26,6 +26,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "m2-lang.h"
|
||||
#include "c-lang.h"
|
||||
|
||||
static struct type *m2_create_fundamental_type PARAMS ((struct objfile *, int));
|
||||
static void m2_printstr PARAMS ((GDB_FILE *, char *, unsigned int, int));
|
||||
static void m2_printchar PARAMS ((int, GDB_FILE *));
|
||||
static void emit_char PARAMS ((int, GDB_FILE *, int));
|
||||
|
||||
/* Print the character C on STREAM as part of the contents of a literal
|
||||
string whose delimiter is QUOTER. Note that that format for printing
|
||||
characters and strings is language specific.
|
||||
|
@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "symtab.h"
|
||||
#include "gdbtypes.h"
|
||||
#include "valprint.h"
|
||||
#include "m2-lang.h"
|
||||
|
||||
/* FIXME: For now, just explicitly declare c_val_print and use it instead */
|
||||
|
||||
|
@ -45,6 +45,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
extern struct target_ops child_ops;
|
||||
|
||||
static void child_stop PARAMS ((void));
|
||||
|
||||
static void
|
||||
child_fetch_inferior_registers (int r)
|
||||
{
|
||||
@ -224,7 +226,7 @@ child_mourn_inferior ()
|
||||
generic_mourn_inferior ();
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
child_stop ()
|
||||
{
|
||||
}
|
||||
|
@ -49,6 +49,14 @@ static void maintenance_time_display PARAMS ((char *, int));
|
||||
|
||||
static void maintenance_space_display PARAMS ((char *, int));
|
||||
|
||||
static void maintenance_info_command PARAMS ((char *, int));
|
||||
|
||||
static void print_section_table PARAMS ((bfd *, asection *, PTR));
|
||||
|
||||
static void maintenance_info_sections PARAMS ((char *, int));
|
||||
|
||||
static void maintenance_print_command PARAMS ((char *, int));
|
||||
|
||||
/* Set this to the maximum number of seconds to wait instead of waiting forever
|
||||
in target_wait(). If this timer times out, then it generates an error and
|
||||
the command is aborted. This replaces most of the need for timeouts in the
|
||||
|
@ -305,6 +305,24 @@ static int found_ecoff_debugging_info;
|
||||
|
||||
/* Forward declarations */
|
||||
|
||||
static void
|
||||
add_pending PARAMS ((FDR *, char *, struct type *));
|
||||
|
||||
static struct mdebug_pending *
|
||||
is_pending_symbol PARAMS ((FDR *, char *));
|
||||
|
||||
static void
|
||||
pop_parse_stack PARAMS ((void));
|
||||
|
||||
static void
|
||||
push_parse_stack PARAMS ((void));
|
||||
|
||||
static char *
|
||||
fdr_name PARAMS ((FDR *));
|
||||
|
||||
static void
|
||||
mdebug_psymtab_to_symtab PARAMS ((struct partial_symtab *));
|
||||
|
||||
static int
|
||||
upgrade_type PARAMS ((int, struct type **, int, union aux_ext *, int, char *));
|
||||
|
||||
|
@ -24,6 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "defs.h"
|
||||
#include "symtab.h"
|
||||
#include "frame.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
/* 'start_frame' is a variable in the NINDY runtime startup routine
|
||||
that contains the frame pointer of the 'start' routine (the routine
|
||||
|
@ -35,6 +35,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "obstack.h"
|
||||
#include "gdb_string.h"
|
||||
|
||||
/* FIXME: imported from mdebugread.c */
|
||||
|
||||
extern void ecoff_relocate_efi PARAMS ((struct symbol *, CORE_ADDR));
|
||||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
#if !defined(NO_MMALLOC) && defined(HAVE_MMAP)
|
||||
@ -45,14 +49,14 @@ open_existing_mapped_file PARAMS ((char *, long, int));
|
||||
static int
|
||||
open_mapped_file PARAMS ((char *filename, long mtime, int mapped));
|
||||
|
||||
static CORE_ADDR
|
||||
map_to_address PARAMS ((void));
|
||||
|
||||
static PTR
|
||||
map_to_file PARAMS ((int));
|
||||
|
||||
#endif /* !defined(NO_MMALLOC) && defined(HAVE_MMAP) */
|
||||
|
||||
static void
|
||||
add_to_objfile_sections PARAMS ((bfd *, sec_ptr, PTR));
|
||||
|
||||
/* Externally visible variables that are owned by this module.
|
||||
See declarations in objfile.h for more info. */
|
||||
|
||||
@ -543,7 +547,7 @@ objfile_relocate (objfile, new_offsets)
|
||||
if (SYMBOL_CLASS (sym) == LOC_CONST
|
||||
&& SYMBOL_NAMESPACE (sym) == LABEL_NAMESPACE
|
||||
&& STRCMP (SYMBOL_NAME (sym), MIPS_EFI_SYMBOL_NAME) == 0)
|
||||
ecoff_relocate_efi (sym, ANOFFSET (delta, s->block_line_section));
|
||||
ecoff_relocate_efi (sym, ANOFFSET (delta, s->block_line_section));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -825,59 +829,12 @@ open_mapped_file (filename, mtime, mapped)
|
||||
return (fd);
|
||||
}
|
||||
|
||||
/* Return the base address at which we would like the next objfile's
|
||||
mapped data to start.
|
||||
|
||||
For now, we use the kludge that the configuration specifies a base
|
||||
address to which it is safe to map the first mmalloc heap, and an
|
||||
increment to add to this address for each successive heap. There are
|
||||
a lot of issues to deal with here to make this work reasonably, including:
|
||||
|
||||
Avoid memory collisions with existing mapped address spaces
|
||||
|
||||
Reclaim address spaces when their mmalloc heaps are unmapped
|
||||
|
||||
When mmalloc heaps are shared between processes they have to be
|
||||
mapped at the same addresses in each
|
||||
|
||||
Once created, a mmalloc heap that is to be mapped back in must be
|
||||
mapped at the original address. I.E. each objfile will expect to
|
||||
be remapped at it's original address. This becomes a problem if
|
||||
the desired address is already in use.
|
||||
|
||||
etc, etc, etc.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
static CORE_ADDR
|
||||
map_to_address ()
|
||||
{
|
||||
|
||||
#if defined(MMAP_BASE_ADDRESS) && defined (MMAP_INCREMENT)
|
||||
|
||||
static CORE_ADDR next = MMAP_BASE_ADDRESS;
|
||||
CORE_ADDR mapto = next;
|
||||
|
||||
next += MMAP_INCREMENT;
|
||||
return (mapto);
|
||||
|
||||
#else
|
||||
|
||||
warning ("need to recompile gdb with MMAP_BASE_ADDRESS and MMAP_INCREMENT defined");
|
||||
return (0);
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
static PTR
|
||||
map_to_file (fd)
|
||||
int fd;
|
||||
{
|
||||
PTR md;
|
||||
CORE_ADDR mapto;
|
||||
int tempfd;
|
||||
|
||||
md = mmalloc_attach (fd, (PTR) 0);
|
||||
if (md != NULL)
|
||||
|
@ -454,6 +454,9 @@ have_minimal_symbols PARAMS ((void));
|
||||
extern struct obj_section *
|
||||
find_pc_section PARAMS((CORE_ADDR pc));
|
||||
|
||||
extern int
|
||||
in_plt_section PARAMS ((CORE_ADDR, char *));
|
||||
|
||||
/* Traverse all object files. ALL_OBJFILES_SAFE works even if you delete
|
||||
the objfile during the traversal. */
|
||||
|
||||
|
@ -125,6 +125,10 @@ static struct complaint lbrac_mismatch_complaint =
|
||||
#endif
|
||||
|
||||
/* Local function prototypes */
|
||||
|
||||
static void
|
||||
read_minimal_symbols PARAMS ((struct objfile *, struct section_offsets *));
|
||||
|
||||
static void
|
||||
os9k_read_ofile_symtab PARAMS ((struct partial_symtab *));
|
||||
|
||||
|
54
gdb/procfs.c
54
gdb/procfs.c
@ -119,8 +119,6 @@ static struct pollfd *poll_list; /* pollfds used for waiting on /proc */
|
||||
|
||||
static int num_poll_list = 0; /* Number of entries in poll_list */
|
||||
|
||||
static int last_resume_pid = -1; /* Last pid used with procfs_resume */
|
||||
|
||||
/* Much of the information used in the /proc interface, particularly for
|
||||
printing status information, is kept as tables of structures of the
|
||||
following form. These tables can be used to map numeric values to
|
||||
@ -368,6 +366,50 @@ static char *syscall_table[MAX_SYSCALLS];
|
||||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
static void procfs_stop PARAMS ((void));
|
||||
|
||||
static int procfs_thread_alive PARAMS ((int));
|
||||
|
||||
static int procfs_can_run PARAMS ((void));
|
||||
|
||||
static void procfs_mourn_inferior PARAMS ((void));
|
||||
|
||||
static void procfs_fetch_registers PARAMS ((int));
|
||||
|
||||
static int procfs_wait PARAMS ((int, struct target_waitstatus *));
|
||||
|
||||
static void procfs_open PARAMS ((char *, int));
|
||||
|
||||
static void procfs_files_info PARAMS ((struct target_ops *));
|
||||
|
||||
static void procfs_prepare_to_store PARAMS ((void));
|
||||
|
||||
static void procfs_detach PARAMS ((char *, int));
|
||||
|
||||
static void procfs_attach PARAMS ((char *, int));
|
||||
|
||||
static void proc_set_exec_trap PARAMS ((void));
|
||||
|
||||
static int procfs_init_inferior PARAMS ((int));
|
||||
|
||||
static struct procinfo *create_procinfo PARAMS ((int));
|
||||
|
||||
static void procfs_store_registers PARAMS ((int));
|
||||
|
||||
static int procfs_xfer_memory PARAMS ((CORE_ADDR, char *, int, int, struct target_ops *));
|
||||
|
||||
static void procfs_kill_inferior PARAMS ((void));
|
||||
|
||||
static char *sigcodedesc PARAMS ((siginfo_t *));
|
||||
|
||||
static char *sigcodename PARAMS ((siginfo_t *));
|
||||
|
||||
static struct procinfo *wait_fd PARAMS ((void));
|
||||
|
||||
static void remove_fd PARAMS ((struct procinfo *));
|
||||
|
||||
static void add_fd PARAMS ((struct procinfo *));
|
||||
|
||||
static void set_proc_siginfo PARAMS ((struct procinfo *, int));
|
||||
|
||||
static void init_syscall_table PARAMS ((void));
|
||||
@ -587,8 +629,10 @@ static struct procinfo *
|
||||
wait_fd ()
|
||||
{
|
||||
struct procinfo *pi;
|
||||
#ifndef LOSING_POLL
|
||||
int num_fds;
|
||||
int i;
|
||||
#endif
|
||||
|
||||
set_sigint_trap (); /* Causes SIGINT to be passed on to the
|
||||
attached process. */
|
||||
@ -2287,7 +2331,6 @@ static int
|
||||
do_attach (pid)
|
||||
int pid;
|
||||
{
|
||||
int result;
|
||||
struct procinfo *pi;
|
||||
|
||||
pi = (struct procinfo *) xmalloc (sizeof (struct procinfo));
|
||||
@ -2411,7 +2454,6 @@ static void
|
||||
do_detach (signal)
|
||||
int signal;
|
||||
{
|
||||
int result;
|
||||
struct procinfo *pi;
|
||||
|
||||
pi = current_procinfo;
|
||||
@ -3833,7 +3875,9 @@ modify_inherit_on_fork_flag (fd, flag)
|
||||
int fd;
|
||||
int flag;
|
||||
{
|
||||
#ifdef PIOCSET
|
||||
long pr_flags;
|
||||
#endif
|
||||
int retval;
|
||||
|
||||
#ifdef PIOCSET /* New method */
|
||||
@ -3884,7 +3928,9 @@ modify_run_on_last_close_flag (fd, flag)
|
||||
int fd;
|
||||
int flag;
|
||||
{
|
||||
#ifdef PIOCSET
|
||||
long pr_flags;
|
||||
#endif
|
||||
int retval;
|
||||
|
||||
#ifdef PIOCSET /* New method */
|
||||
|
@ -57,8 +57,6 @@
|
||||
#define ACK 0x06
|
||||
#define CTRLZ 0x1a
|
||||
|
||||
extern void notice_quit PARAMS ((void));
|
||||
|
||||
extern void report_transfer_performance PARAMS ((unsigned long,
|
||||
time_t, time_t));
|
||||
|
||||
|
@ -69,6 +69,9 @@ struct _sr_settings sr_settings = {
|
||||
|
||||
struct gr_settings *gr_settings = NULL;
|
||||
|
||||
static void usage PARAMS ((char *, char *));
|
||||
static void sr_com PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
usage(proto, junk)
|
||||
char *proto;
|
||||
@ -380,7 +383,7 @@ sr_get_hex_word ()
|
||||
prompt from the remote is seen.
|
||||
FIXME: Can't handle commands that take input. */
|
||||
|
||||
void
|
||||
static void
|
||||
sr_com (args, fromtty)
|
||||
char *args;
|
||||
int fromtty;
|
||||
|
12
gdb/remote.c
12
gdb/remote.c
@ -266,6 +266,18 @@ static void remote_interrupt_twice PARAMS ((int signo));
|
||||
|
||||
static void interrupt_query PARAMS ((void));
|
||||
|
||||
static void set_thread PARAMS ((int, int));
|
||||
|
||||
static int remote_thread_alive PARAMS ((int));
|
||||
|
||||
static void get_offsets PARAMS ((void));
|
||||
|
||||
static int read_frame PARAMS ((char *));
|
||||
|
||||
static int remote_insert_breakpoint PARAMS ((CORE_ADDR, char *));
|
||||
|
||||
static int remote_remove_breakpoint PARAMS ((CORE_ADDR, char *));
|
||||
|
||||
extern struct target_ops remote_ops; /* Forward decl */
|
||||
extern struct target_ops extended_remote_ops; /* Forward decl */
|
||||
|
||||
|
@ -118,7 +118,7 @@ branch_dest (opcode, instr, pc, safety)
|
||||
|
||||
void
|
||||
single_step (signal)
|
||||
int signal;
|
||||
enum target_signal signal;
|
||||
{
|
||||
#define INSNLEN(OPCODE) 4
|
||||
|
||||
|
@ -30,15 +30,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define USE_EXPRSTRING 0
|
||||
|
||||
static void scm_lreadparen PARAMS ((int));
|
||||
static int scm_skip_ws PARAMS ((void));
|
||||
static void scm_read_token PARAMS ((int, int));
|
||||
static LONGEST scm_istring2number PARAMS ((char *, int, int));
|
||||
static LONGEST scm_istr2int PARAMS ((char *, int, int));
|
||||
static void scm_lreadr PARAMS ((int));
|
||||
|
||||
LONGEST
|
||||
static LONGEST
|
||||
scm_istr2int(str, len, radix)
|
||||
char *str;
|
||||
int len;
|
||||
int radix;
|
||||
{
|
||||
int j;
|
||||
int i = 0;
|
||||
LONGEST inum = 0;
|
||||
int c;
|
||||
@ -78,7 +82,7 @@ scm_istr2int(str, len, radix)
|
||||
return SCM_MAKINUM (inum);
|
||||
}
|
||||
|
||||
LONGEST
|
||||
static LONGEST
|
||||
scm_istring2number(str, len, radix)
|
||||
char *str;
|
||||
int len;
|
||||
@ -87,7 +91,9 @@ scm_istring2number(str, len, radix)
|
||||
int i = 0;
|
||||
char ex = 0;
|
||||
char ex_p = 0, rx_p = 0; /* Only allow 1 exactness and 1 radix prefix */
|
||||
#if 0
|
||||
SCM res;
|
||||
#endif
|
||||
if (len==1)
|
||||
if (*str=='+' || *str=='-') /* Catches lone `+' and `-' for speed */
|
||||
return SCM_BOOL_F;
|
||||
@ -319,7 +325,9 @@ scm_lreadr (skipping)
|
||||
goto tryagain;
|
||||
case '.':
|
||||
default:
|
||||
#if 0
|
||||
callshrp:
|
||||
#endif
|
||||
scm_lreadr (skipping);
|
||||
return;
|
||||
}
|
||||
@ -365,7 +373,9 @@ scm_lreadr (skipping)
|
||||
case ':':
|
||||
scm_read_token ('-', 0);
|
||||
return;
|
||||
#if 0
|
||||
do_symbol:
|
||||
#endif
|
||||
default:
|
||||
str.ptr = lexptr-1;
|
||||
scm_read_token (c, 0);
|
||||
@ -398,7 +408,6 @@ int
|
||||
scm_parse ()
|
||||
{
|
||||
char* start;
|
||||
struct stoken str;
|
||||
while (*lexptr == ' ')
|
||||
lexptr++;
|
||||
start = lexptr;
|
||||
|
@ -28,10 +28,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "scm-lang.h"
|
||||
#include "scm-tags.h"
|
||||
#include "gdb_string.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
static value_ptr evaluate_subexp_scm PARAMS ((struct type *, struct expression *,
|
||||
int *, enum noside));
|
||||
static value_ptr scm_lookup_name PARAMS ((char *));
|
||||
static int in_eval_c PARAMS ((void));
|
||||
static void scm_printstr PARAMS ((GDB_FILE *, char *, unsigned int, int));
|
||||
|
||||
extern struct type ** const (c_builtin_types[]);
|
||||
extern value_ptr value_allocate_space_in_inferior PARAMS ((int));
|
||||
extern value_ptr find_function_in_inferior PARAMS ((char*));
|
||||
|
||||
struct type *builtin_type_scm;
|
||||
|
||||
@ -73,7 +78,6 @@ scm_get_field (svalue, index)
|
||||
LONGEST svalue;
|
||||
int index;
|
||||
{
|
||||
value_ptr val;
|
||||
char buffer[20];
|
||||
read_memory (SCM2PTR (svalue) + index * TYPE_LENGTH (builtin_type_scm),
|
||||
buffer, TYPE_LENGTH (builtin_type_scm));
|
||||
@ -148,13 +152,13 @@ in_eval_c ()
|
||||
First lookup in Scheme context (using the scm_lookup_cstr inferior
|
||||
function), then try lookup_symbol for compiled variables. */
|
||||
|
||||
value_ptr
|
||||
static value_ptr
|
||||
scm_lookup_name (str)
|
||||
char *str;
|
||||
{
|
||||
value_ptr args[3];
|
||||
int len = strlen (str);
|
||||
value_ptr symval, func, val;
|
||||
value_ptr func, val;
|
||||
struct symbol *sym;
|
||||
args[0] = value_allocate_space_in_inferior (len);
|
||||
args[1] = value_from_longest (builtin_type_int, len);
|
||||
|
@ -34,7 +34,7 @@ extern int scm_val_print PARAMS ((struct type*, char*, CORE_ADDR, GDB_FILE*,
|
||||
|
||||
extern LONGEST scm_get_field PARAMS ((LONGEST, int));
|
||||
|
||||
extern int scm_scmval_print PARAMS ((LONGEST, GDB_FILE *,
|
||||
extern void scm_scmval_print PARAMS ((LONGEST, GDB_FILE *,
|
||||
int, int, int, enum val_prettyprint));
|
||||
|
||||
extern int is_scmvalue_type PARAMS ((struct type*));
|
||||
@ -45,6 +45,6 @@ extern struct value * scm_evaluate_string PARAMS ((char*, int));
|
||||
|
||||
extern struct type *builtin_type_scm;
|
||||
|
||||
extern int scm_parse ();
|
||||
extern int scm_parse PARAMS ((void));
|
||||
|
||||
extern LONGEST scm_unpack PARAMS ((struct type *, char *, enum type_code));
|
||||
|
@ -26,12 +26,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "value.h"
|
||||
#include "scm-lang.h"
|
||||
#include "valprint.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
/* FIXME: Should be in a header file that we import. */
|
||||
extern int
|
||||
c_val_print PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *, int, int,
|
||||
int, enum val_prettyprint));
|
||||
|
||||
static void scm_ipruk PARAMS ((char *, LONGEST, GDB_FILE *));
|
||||
static void scm_scmlist_print PARAMS ((LONGEST, GDB_FILE *, int, int,
|
||||
int, enum val_prettyprint));
|
||||
static int scm_inferior_print PARAMS ((LONGEST, GDB_FILE *, int, int,
|
||||
int, enum val_prettyprint));
|
||||
|
||||
/* Prints the SCM value VALUE by invoking the inferior, if appropraite.
|
||||
Returns >= 0 on succes; retunr -1 if the inferior cannot/should not
|
||||
print VALUE. */
|
||||
|
||||
int
|
||||
static int
|
||||
scm_inferior_print (value, stream, format, deref_ref, recurse, pretty)
|
||||
LONGEST value;
|
||||
GDB_FILE *stream;
|
||||
@ -82,7 +94,7 @@ static char *scm_isymnames[] =
|
||||
"#<unspecified>"
|
||||
};
|
||||
|
||||
static int
|
||||
static void
|
||||
scm_scmlist_print (svalue, stream, format, deref_ref, recurse, pretty)
|
||||
LONGEST svalue;
|
||||
GDB_FILE *stream;
|
||||
@ -95,7 +107,7 @@ scm_scmlist_print (svalue, stream, format, deref_ref, recurse, pretty)
|
||||
if (recurse > 6)
|
||||
{
|
||||
fputs_filtered ("...", stream);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
scm_scmval_print (SCM_CAR (svalue), stream, format,
|
||||
deref_ref, recurse + 1, pretty);
|
||||
@ -135,7 +147,7 @@ scm_ipruk (hdr, ptr, stream)
|
||||
fprintf_filtered (stream, " 0x%x>", ptr);
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
scm_scmval_print (svalue, stream, format, deref_ref, recurse, pretty)
|
||||
LONGEST svalue;
|
||||
GDB_FILE *stream;
|
||||
@ -191,7 +203,9 @@ scm_scmval_print (svalue, stream, format, deref_ref, recurse, pretty)
|
||||
case scm_tcs_cons_gloc:
|
||||
if (SCM_CDR (SCM_CAR (svalue) - 1L) == 0)
|
||||
{
|
||||
#if 0
|
||||
SCM name;
|
||||
#endif
|
||||
fputs_filtered ("#<latte ", stream);
|
||||
#if 1
|
||||
fputs_filtered ("???", stream);
|
||||
@ -351,7 +365,10 @@ scm_scmval_print (svalue, stream, format, deref_ref, recurse, pretty)
|
||||
goto punk;
|
||||
#endif
|
||||
default:
|
||||
punk:scm_ipruk ("type", svalue, stream);
|
||||
#if 0
|
||||
punk:
|
||||
#endif
|
||||
scm_ipruk ("type", svalue, stream);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -45,6 +45,10 @@ static int tcp_write PARAMS ((serial_t scb, const char *str, int len));
|
||||
static void tcp_close PARAMS ((serial_t scb));
|
||||
static serial_ttystate tcp_get_tty_state PARAMS ((serial_t scb));
|
||||
static int tcp_set_tty_state PARAMS ((serial_t scb, serial_ttystate state));
|
||||
static int tcp_return_0 PARAMS ((serial_t));
|
||||
static int tcp_noflush_set_tty_state PARAMS ((serial_t, serial_ttystate,
|
||||
serial_ttystate));
|
||||
static void tcp_print_tty_state PARAMS ((serial_t, serial_ttystate));
|
||||
|
||||
/* Open up a raw tcp socket */
|
||||
|
||||
|
@ -69,12 +69,18 @@ static int hardwire_readchar PARAMS ((serial_t scb, int timeout));
|
||||
static int rate_to_code PARAMS ((int rate));
|
||||
static int hardwire_setbaudrate PARAMS ((serial_t scb, int rate));
|
||||
static int hardwire_write PARAMS ((serial_t scb, const char *str, int len));
|
||||
/* FIXME: static void hardwire_restore PARAMS ((serial_t scb)); */
|
||||
static void hardwire_close PARAMS ((serial_t scb));
|
||||
static int get_tty_state PARAMS ((serial_t scb, struct hardwire_ttystate *state));
|
||||
static int set_tty_state PARAMS ((serial_t scb, struct hardwire_ttystate *state));
|
||||
static serial_ttystate hardwire_get_tty_state PARAMS ((serial_t scb));
|
||||
static int hardwire_set_tty_state PARAMS ((serial_t scb, serial_ttystate state));
|
||||
static int hardwire_noflush_set_tty_state PARAMS ((serial_t, serial_ttystate,
|
||||
serial_ttystate));
|
||||
static void hardwire_print_tty_state PARAMS ((serial_t, serial_ttystate));
|
||||
static int hardwire_flush_output PARAMS ((serial_t));
|
||||
static int hardwire_flush_input PARAMS ((serial_t));
|
||||
static int hardwire_send_break PARAMS ((serial_t));
|
||||
static int hardwire_setstopbits PARAMS ((serial_t, int));
|
||||
|
||||
/* Open up a real live device for serial I/O */
|
||||
|
||||
|
@ -41,6 +41,9 @@ static serial_t scb_base;
|
||||
char *serial_logfile = NULL;
|
||||
FILE *serial_logfp = NULL;
|
||||
|
||||
static struct serial_ops *serial_interface_lookup PARAMS ((char *));
|
||||
static void serial_logchar PARAMS ((int));
|
||||
|
||||
|
||||
static int serial_reading = 0;
|
||||
static int serial_writing = 0;
|
||||
|
@ -179,4 +179,6 @@ extern void serial_printf PARAMS ((serial_t desc, const char *, ...))
|
||||
extern char *serial_logfile;
|
||||
extern FILE *serial_logfp;
|
||||
|
||||
extern void serial_log_command PARAMS ((const char *));
|
||||
|
||||
#endif /* SERIAL_H */
|
||||
|
@ -38,6 +38,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#define STACK_REGS 2
|
||||
#define FP_REGS 4
|
||||
|
||||
static void
|
||||
fetch_core_registers PARAMS ((char *, unsigned int, int, unsigned int));
|
||||
|
||||
/* Fetch one or more registers from the inferior. REGNO == -1 to get
|
||||
them all. We actually fetch more than requested, when convenient,
|
||||
marking them as valid so we won't fetch them again. */
|
||||
|
@ -75,6 +75,13 @@ struct field_info
|
||||
} *fnlist;
|
||||
};
|
||||
|
||||
static void
|
||||
read_one_struct_field PARAMS ((struct field_info *, char **, char *,
|
||||
struct type *, struct objfile *));
|
||||
|
||||
static char *
|
||||
get_substring PARAMS ((char **, char));
|
||||
|
||||
static struct type *
|
||||
dbx_alloc_type PARAMS ((int [2], struct objfile *));
|
||||
|
||||
@ -145,10 +152,6 @@ read_cpp_abbrev PARAMS ((struct field_info *, char **, struct type *,
|
||||
|
||||
/* new functions added for cfront support */
|
||||
|
||||
extern void
|
||||
resolve_cfront_continuation PARAMS ((struct objfile *, struct symbol *,
|
||||
char * p));
|
||||
|
||||
static int
|
||||
copy_cfront_struct_fields PARAMS ((struct field_info *, struct type *,
|
||||
struct objfile *));
|
||||
|
@ -163,6 +163,10 @@ end_stabs PARAMS ((void));
|
||||
|
||||
extern void
|
||||
finish_global_stabs PARAMS ((struct objfile *objfile));
|
||||
|
||||
extern void
|
||||
resolve_cfront_continuation PARAMS((struct objfile * objfile,
|
||||
struct symbol * sym, char * p));
|
||||
|
||||
EXTERN int os9k_stabs;
|
||||
|
||||
@ -228,4 +232,6 @@ extern void stabsect_build_psymtabs
|
||||
extern void elfstab_offset_sections PARAMS ((struct objfile *,
|
||||
struct partial_symtab *));
|
||||
|
||||
extern void process_later PARAMS ((struct symbol *, char *));
|
||||
|
||||
#undef EXTERN
|
||||
|
@ -90,6 +90,8 @@ static bfd *symfile_bfd_open PARAMS ((char *));
|
||||
|
||||
static void find_sym_fns PARAMS ((struct objfile *));
|
||||
|
||||
static void decrement_reading_symtab PARAMS ((void *));
|
||||
|
||||
/* List of all available sym_fns. On gdb startup, each object file reader
|
||||
calls add_symtab_fns() to register information on each format it is
|
||||
prepared to read. */
|
||||
@ -963,7 +965,7 @@ generic_load (filename, from_tty)
|
||||
char buf[128];
|
||||
|
||||
/* enable user to specify address for downloading as 2nd arg to load */
|
||||
n = sscanf(filename, "%s 0x%x", buf, &load_offset);
|
||||
n = sscanf(filename, "%s 0x%lx", buf, &load_offset);
|
||||
if (n > 1 )
|
||||
filename = buf;
|
||||
else
|
||||
|
106
gdb/symtab.c
106
gdb/symtab.c
@ -89,6 +89,9 @@ lookup_partial_symbol PARAMS ((struct partial_symtab *, const char *,
|
||||
static struct symtab *
|
||||
lookup_symtab_1 PARAMS ((char *));
|
||||
|
||||
static void
|
||||
cplusplus_hint PARAMS ((char *));
|
||||
|
||||
/* */
|
||||
|
||||
/* The single non-language-specific builtin type */
|
||||
@ -106,7 +109,7 @@ char no_symtab_msg[] = "No symbol table is loaded. Use the \"file\" command.";
|
||||
using the new command completion feature on single quoted demangled C++
|
||||
symbols. Remove when loose ends are cleaned up. FIXME -fnf */
|
||||
|
||||
void
|
||||
static void
|
||||
cplusplus_hint (name)
|
||||
char *name;
|
||||
{
|
||||
@ -325,7 +328,7 @@ gdb_mangle_name (type, i, j)
|
||||
work with the normal mechanisms. */
|
||||
if (OPNAME_PREFIX_P (field_name))
|
||||
{
|
||||
char *opname = cplus_mangle_opname (field_name + 3, 0);
|
||||
const char *opname = cplus_mangle_opname (field_name + 3, 0);
|
||||
if (opname == NULL)
|
||||
error ("No mangling for \"%s\"", field_name);
|
||||
mangled_name_len += strlen (opname);
|
||||
@ -408,7 +411,7 @@ find_pc_psymbol (psymtab, pc)
|
||||
struct partial_symtab *psymtab;
|
||||
CORE_ADDR pc;
|
||||
{
|
||||
struct partial_symbol *best = NULL, *p;
|
||||
struct partial_symbol *best = NULL, *p, **pp;
|
||||
CORE_ADDR best_pc;
|
||||
|
||||
if (!psymtab)
|
||||
@ -421,30 +424,36 @@ find_pc_psymbol (psymtab, pc)
|
||||
/* Search the global symbols as well as the static symbols, so that
|
||||
find_pc_partial_function doesn't use a minimal symbol and thus
|
||||
cache a bad endaddr. */
|
||||
for (p = psymtab->objfile->global_psymbols.list + psymtab->globals_offset;
|
||||
(p - (psymtab->objfile->global_psymbols.list + psymtab->globals_offset)
|
||||
for (pp = psymtab->objfile->global_psymbols.list + psymtab->globals_offset;
|
||||
(pp - (psymtab->objfile->global_psymbols.list + psymtab->globals_offset)
|
||||
< psymtab->n_global_syms);
|
||||
p++)
|
||||
if (SYMBOL_NAMESPACE (p) == VAR_NAMESPACE
|
||||
&& SYMBOL_CLASS (p) == LOC_BLOCK
|
||||
&& pc >= SYMBOL_VALUE_ADDRESS (p)
|
||||
&& SYMBOL_VALUE_ADDRESS (p) > best_pc)
|
||||
{
|
||||
best_pc = SYMBOL_VALUE_ADDRESS (p);
|
||||
best = p;
|
||||
}
|
||||
for (p = psymtab->objfile->static_psymbols.list + psymtab->statics_offset;
|
||||
(p - (psymtab->objfile->static_psymbols.list + psymtab->statics_offset)
|
||||
pp++)
|
||||
{
|
||||
p = *pp;
|
||||
if (SYMBOL_NAMESPACE (p) == VAR_NAMESPACE
|
||||
&& SYMBOL_CLASS (p) == LOC_BLOCK
|
||||
&& pc >= SYMBOL_VALUE_ADDRESS (p)
|
||||
&& SYMBOL_VALUE_ADDRESS (p) > best_pc)
|
||||
{
|
||||
best_pc = SYMBOL_VALUE_ADDRESS (p);
|
||||
best = p;
|
||||
}
|
||||
}
|
||||
for (pp = psymtab->objfile->static_psymbols.list + psymtab->statics_offset;
|
||||
(pp - (psymtab->objfile->static_psymbols.list + psymtab->statics_offset)
|
||||
< psymtab->n_static_syms);
|
||||
p++)
|
||||
if (SYMBOL_NAMESPACE (p) == VAR_NAMESPACE
|
||||
&& SYMBOL_CLASS (p) == LOC_BLOCK
|
||||
&& pc >= SYMBOL_VALUE_ADDRESS (p)
|
||||
&& SYMBOL_VALUE_ADDRESS (p) > best_pc)
|
||||
{
|
||||
best_pc = SYMBOL_VALUE_ADDRESS (p);
|
||||
best = p;
|
||||
}
|
||||
pp++)
|
||||
{
|
||||
p = *pp;
|
||||
if (SYMBOL_NAMESPACE (p) == VAR_NAMESPACE
|
||||
&& SYMBOL_CLASS (p) == LOC_BLOCK
|
||||
&& pc >= SYMBOL_VALUE_ADDRESS (p)
|
||||
&& SYMBOL_VALUE_ADDRESS (p) > best_pc)
|
||||
{
|
||||
best_pc = SYMBOL_VALUE_ADDRESS (p);
|
||||
best = p;
|
||||
}
|
||||
}
|
||||
if (best_pc == psymtab->textlow - 1)
|
||||
return 0;
|
||||
return best;
|
||||
@ -703,8 +712,8 @@ lookup_partial_symbol (pst, name, global, namespace)
|
||||
int global;
|
||||
namespace_enum namespace;
|
||||
{
|
||||
struct partial_symbol *start, *psym;
|
||||
struct partial_symbol *top, *bottom, *center;
|
||||
struct partial_symbol **start, **psym;
|
||||
struct partial_symbol **top, **bottom, **center;
|
||||
int length = (global ? pst->n_global_syms : pst->n_static_syms);
|
||||
int do_linear_search = 1;
|
||||
|
||||
@ -733,11 +742,11 @@ lookup_partial_symbol (pst, name, global, namespace)
|
||||
center = bottom + (top - bottom) / 2;
|
||||
if (!(center < top))
|
||||
abort ();
|
||||
if (!do_linear_search && SYMBOL_LANGUAGE (center) == language_cplus)
|
||||
if (!do_linear_search && SYMBOL_LANGUAGE (*center) == language_cplus)
|
||||
{
|
||||
do_linear_search = 1;
|
||||
}
|
||||
if (STRCMP (SYMBOL_NAME (center), name) >= 0)
|
||||
if (STRCMP (SYMBOL_NAME (*center), name) >= 0)
|
||||
{
|
||||
top = center;
|
||||
}
|
||||
@ -748,11 +757,11 @@ lookup_partial_symbol (pst, name, global, namespace)
|
||||
}
|
||||
if (!(top == bottom))
|
||||
abort ();
|
||||
while (STREQ (SYMBOL_NAME (top), name))
|
||||
while (STREQ (SYMBOL_NAME (*top), name))
|
||||
{
|
||||
if (SYMBOL_NAMESPACE (top) == namespace)
|
||||
if (SYMBOL_NAMESPACE (*top) == namespace)
|
||||
{
|
||||
return top;
|
||||
return (*top);
|
||||
}
|
||||
top ++;
|
||||
}
|
||||
@ -765,11 +774,11 @@ lookup_partial_symbol (pst, name, global, namespace)
|
||||
{
|
||||
for (psym = start; psym < start + length; psym++)
|
||||
{
|
||||
if (namespace == SYMBOL_NAMESPACE (psym))
|
||||
if (namespace == SYMBOL_NAMESPACE (*psym))
|
||||
{
|
||||
if (SYMBOL_MATCHES_NAME (psym, name))
|
||||
if (SYMBOL_MATCHES_NAME (*psym, name))
|
||||
{
|
||||
return (psym);
|
||||
return (*psym);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -993,7 +1002,7 @@ find_pc_symtab (pc)
|
||||
/* For an objfile that has its functions reordered,
|
||||
find_pc_psymtab will find the proper partial symbol table
|
||||
and we simply return its corresponding symtab. */
|
||||
if (objfile->flags & OBJF_REORDERED)
|
||||
if ((objfile->flags & OBJF_REORDERED) && objfile->psymtabs)
|
||||
{
|
||||
ps = find_pc_psymtab (pc);
|
||||
if (ps)
|
||||
@ -1208,7 +1217,8 @@ find_pc_line (pc, notcurrent)
|
||||
|
||||
for (i = 0; i < len; i++, item++)
|
||||
{
|
||||
/* Return the last line that did not start after PC. */
|
||||
/* Leave prev pointing to the linetable entry for the last line
|
||||
that started at or before PC. */
|
||||
if (item->pc > pc)
|
||||
break;
|
||||
|
||||
@ -2601,7 +2611,7 @@ list_symbols (regexp, class, bpt, from_tty)
|
||||
register struct block *b;
|
||||
register int i, j;
|
||||
register struct symbol *sym;
|
||||
struct partial_symbol *psym;
|
||||
struct partial_symbol **psym;
|
||||
struct objfile *objfile;
|
||||
struct minimal_symbol *msymbol;
|
||||
char *val;
|
||||
@ -2664,7 +2674,7 @@ list_symbols (regexp, class, bpt, from_tty)
|
||||
|
||||
ALL_PSYMTABS (objfile, ps)
|
||||
{
|
||||
struct partial_symbol *bound, *gbound, *sbound;
|
||||
struct partial_symbol **bound, **gbound, **sbound;
|
||||
int keep_going = 1;
|
||||
|
||||
if (ps->readin) continue;
|
||||
@ -2695,12 +2705,12 @@ list_symbols (regexp, class, bpt, from_tty)
|
||||
|
||||
/* If it would match (logic taken from loop below)
|
||||
load the file and go on to the next one */
|
||||
if ((regexp == NULL || SYMBOL_MATCHES_REGEXP (psym))
|
||||
&& ((class == 0 && SYMBOL_CLASS (psym) != LOC_TYPEDEF
|
||||
&& SYMBOL_CLASS (psym) != LOC_BLOCK)
|
||||
|| (class == 1 && SYMBOL_CLASS (psym) == LOC_BLOCK)
|
||||
|| (class == 2 && SYMBOL_CLASS (psym) == LOC_TYPEDEF)
|
||||
|| (class == 3 && SYMBOL_CLASS (psym) == LOC_BLOCK)))
|
||||
if ((regexp == NULL || SYMBOL_MATCHES_REGEXP (*psym))
|
||||
&& ((class == 0 && SYMBOL_CLASS (*psym) != LOC_TYPEDEF
|
||||
&& SYMBOL_CLASS (*psym) != LOC_BLOCK)
|
||||
|| (class == 1 && SYMBOL_CLASS (*psym) == LOC_BLOCK)
|
||||
|| (class == 2 && SYMBOL_CLASS (*psym) == LOC_TYPEDEF)
|
||||
|| (class == 3 && SYMBOL_CLASS (*psym) == LOC_BLOCK)))
|
||||
{
|
||||
PSYMTAB_TO_SYMTAB(ps);
|
||||
keep_going = 0;
|
||||
@ -3079,7 +3089,7 @@ make_symbol_completion_list (text, word)
|
||||
register struct objfile *objfile;
|
||||
register struct block *b, *surrounding_static_block = 0;
|
||||
register int i, j;
|
||||
struct partial_symbol *psym;
|
||||
struct partial_symbol **psym;
|
||||
/* The symbol we are completing on. Points in same buffer as text. */
|
||||
char *sym_text;
|
||||
/* Length of sym_text. */
|
||||
@ -3157,7 +3167,7 @@ make_symbol_completion_list (text, word)
|
||||
{
|
||||
/* If interrupted, then quit. */
|
||||
QUIT;
|
||||
COMPLETION_LIST_ADD_SYMBOL (psym, sym_text, sym_text_len, text, word);
|
||||
COMPLETION_LIST_ADD_SYMBOL (*psym, sym_text, sym_text_len, text, word);
|
||||
}
|
||||
|
||||
for (psym = objfile->static_psymbols.list + ps->statics_offset;
|
||||
@ -3166,7 +3176,7 @@ make_symbol_completion_list (text, word)
|
||||
psym++)
|
||||
{
|
||||
QUIT;
|
||||
COMPLETION_LIST_ADD_SYMBOL (psym, sym_text, sym_text_len, text, word);
|
||||
COMPLETION_LIST_ADD_SYMBOL (*psym, sym_text, sym_text_len, text, word);
|
||||
}
|
||||
}
|
||||
|
||||
|
24
gdb/thread.c
24
gdb/thread.c
@ -58,13 +58,29 @@ struct thread_info
|
||||
static struct thread_info *thread_list = NULL;
|
||||
static int highest_thread_num;
|
||||
|
||||
static void thread_command PARAMS ((char * tidstr, int from_tty));
|
||||
static void
|
||||
thread_command PARAMS ((char * tidstr, int from_tty));
|
||||
|
||||
static void prune_threads PARAMS ((void));
|
||||
static void
|
||||
prune_threads PARAMS ((void));
|
||||
|
||||
static void thread_switch PARAMS ((int pid));
|
||||
static void
|
||||
thread_switch PARAMS ((int pid));
|
||||
|
||||
static struct thread_info * find_thread_id PARAMS ((int num));
|
||||
static struct thread_info *
|
||||
find_thread_id PARAMS ((int num));
|
||||
|
||||
static void
|
||||
info_threads_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
restore_current_thread PARAMS ((int));
|
||||
|
||||
static void
|
||||
thread_apply_all_command PARAMS ((char *, int));
|
||||
|
||||
static void
|
||||
thread_apply_command PARAMS ((char *, int));
|
||||
|
||||
void
|
||||
init_thread_list ()
|
||||
|
24
gdb/top.c
24
gdb/top.c
@ -55,12 +55,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "gdb_stat.h"
|
||||
#include <ctype.h>
|
||||
|
||||
extern void initialize_targets PARAMS ((void));
|
||||
|
||||
extern void initialize_utils PARAMS ((void));
|
||||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
static void dont_repeat_command PARAMS ((char *, int));
|
||||
|
||||
static void source_cleanup_lines PARAMS ((PTR));
|
||||
|
||||
static void user_defined_command PARAMS ((char *, int));
|
||||
|
||||
static void init_signals PARAMS ((void));
|
||||
|
||||
#ifdef STOP_SIGNAL
|
||||
static void stop_sig PARAMS ((int));
|
||||
#endif
|
||||
|
||||
static void disconnect PARAMS ((int));
|
||||
|
||||
static char * line_completion_function PARAMS ((char *, int, char *, int));
|
||||
|
||||
static char * readline_line_completion_function PARAMS ((char *, int));
|
||||
@ -393,7 +405,7 @@ void (*print_frame_info_listing_hook) PARAMS ((struct symtab *s, int line,
|
||||
int stopline, int noerror));
|
||||
/* Replaces most of query. */
|
||||
|
||||
int (*query_hook) PARAMS (());
|
||||
int (*query_hook) PARAMS ((const char *, va_list));
|
||||
|
||||
/* Called from gdb_flush to flush output. */
|
||||
|
||||
@ -446,7 +458,7 @@ void (*call_command_hook) PARAMS ((struct cmd_list_element *c, char *cmd,
|
||||
/* Takes control from error (). Typically used to prevent longjmps out of the
|
||||
middle of the GUI. Usually used in conjunction with a catch routine. */
|
||||
|
||||
NORETURN void (*error_hook) PARAMS (()) ATTR_NORETURN;
|
||||
NORETURN void (*error_hook) PARAMS ((void)) ATTR_NORETURN;
|
||||
|
||||
|
||||
/* Where to go for return_to_top_level (RETURN_ERROR). */
|
||||
@ -624,7 +636,7 @@ read_command_file (stream)
|
||||
do_cleanups (cleanups);
|
||||
}
|
||||
|
||||
extern void init_proc ();
|
||||
extern void init_proc PARAMS ((void));
|
||||
|
||||
void (*pre_init_ui_hook) PARAMS ((void));
|
||||
|
||||
@ -1160,7 +1172,9 @@ execute_command (p, from_tty)
|
||||
register struct cmd_list_element *c;
|
||||
register enum language flang;
|
||||
static int warned = 0;
|
||||
/* FIXME: These should really be in an appropriate header file */
|
||||
extern FILE *serial_logfp;
|
||||
extern void serial_log_command PARAMS ((const char *));
|
||||
|
||||
free_all_values ();
|
||||
|
||||
|
12
gdb/utils.c
12
gdb/utils.c
@ -51,6 +51,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
static void vfprintf_maybe_filtered PARAMS ((FILE *, const char *, va_list, int));
|
||||
|
||||
static void fputs_maybe_filtered PARAMS ((const char *, FILE *, int));
|
||||
|
||||
#if !defined (NO_MMALLOC) && !defined (NO_MMCHECK)
|
||||
static void malloc_botch PARAMS ((void));
|
||||
#endif
|
||||
|
||||
static void
|
||||
fatal_dump_core PARAMS((char *, ...));
|
||||
|
||||
@ -217,7 +225,7 @@ free_current_contents (location)
|
||||
/* ARGSUSED */
|
||||
void
|
||||
null_cleanup (arg)
|
||||
char **arg;
|
||||
PTR arg;
|
||||
{
|
||||
}
|
||||
|
||||
@ -1495,7 +1503,7 @@ fputc_unfiltered (c, stream)
|
||||
static void
|
||||
vfprintf_maybe_filtered (stream, format, args, filter)
|
||||
FILE *stream;
|
||||
char *format;
|
||||
const char *format;
|
||||
va_list args;
|
||||
int filter;
|
||||
{
|
||||
|
@ -62,6 +62,8 @@ static CORE_ADDR allocate_space_in_inferior PARAMS ((int));
|
||||
|
||||
static value_ptr cast_into_complex PARAMS ((struct type *, value_ptr));
|
||||
|
||||
static value_ptr value_arg_coerce PARAMS ((value_ptr, struct type *));
|
||||
|
||||
#define VALUE_SUBSTRING_START(VAL) VALUE_FRAME(VAL)
|
||||
|
||||
/* Flag for whether we want to abandon failed expression evals by default. */
|
||||
@ -1031,7 +1033,7 @@ call_function_by_hand (function, nargs, args)
|
||||
CORE_ADDR old_sp;
|
||||
struct type *value_type;
|
||||
unsigned char struct_return;
|
||||
CORE_ADDR struct_addr;
|
||||
CORE_ADDR struct_addr = 0;
|
||||
struct inferior_status inf_status;
|
||||
struct cleanup *old_chain;
|
||||
CORE_ADDR funaddr;
|
||||
@ -1698,6 +1700,7 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
||||
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; i--)
|
||||
{
|
||||
char *t_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
|
||||
/* FIXME! May need to check for ARM demangling here */
|
||||
if (strncmp(t_field_name, "__", 2)==0 ||
|
||||
strncmp(t_field_name, "op", 2)==0 ||
|
||||
strncmp(t_field_name, "type", 4)==0 )
|
||||
@ -2214,7 +2217,7 @@ value_slice (array, lowbound, length)
|
||||
done with it. */
|
||||
slice_range_type = create_range_type ((struct type*) NULL,
|
||||
TYPE_TARGET_TYPE (range_type),
|
||||
lowerbound, lowerbound + length - 1);
|
||||
lowbound, lowbound + length - 1);
|
||||
if (TYPE_CODE (array_type) == TYPE_CODE_BITSTRING)
|
||||
{
|
||||
int i;
|
||||
|
@ -30,6 +30,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "language.h"
|
||||
#include "demangle.h"
|
||||
#include "annotate.h"
|
||||
#include "valprint.h"
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
@ -244,15 +245,60 @@ print_longest (stream, format, use_local, val_long)
|
||||
{
|
||||
#if defined (CC_HAS_LONG_LONG) && !defined (PRINTF_HAS_LONG_LONG)
|
||||
long vtop, vbot;
|
||||
unsigned int ui_max = UINT_MAX;
|
||||
unsigned long long val_ulonglong;
|
||||
|
||||
vtop = val_long >> (sizeof (long) * HOST_CHAR_BIT);
|
||||
/* Do shift in two operations so that if sizeof (long) == sizeof (LONGEST)
|
||||
we can avoid warnings from picky compilers about shifts >= the size of
|
||||
the shiftee in bits */
|
||||
vtop = val_long >> (sizeof (long) * HOST_CHAR_BIT - 1);
|
||||
vtop >>= 1;
|
||||
vbot = (long) val_long;
|
||||
|
||||
if ((format == 'd' && (val_long < INT_MIN || val_long > INT_MAX))
|
||||
|| ((format == 'u' || format == 'x') && (unsigned long long)val_long > UINT_MAX))
|
||||
val_ulonglong = (unsigned long long) val_long;
|
||||
switch (format)
|
||||
{
|
||||
fprintf_filtered (stream, "0x%lx%08lx", vtop, vbot);
|
||||
return;
|
||||
case 'd':
|
||||
if (val_long < INT_MIN || val_long > INT_MAX)
|
||||
{
|
||||
if (sizeof (long long) > sizeof (long))
|
||||
{
|
||||
fprintf_filtered (stream, "0x%lx%08lx", vtop, vbot);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf_filtered (stream, "%d", vbot);
|
||||
}
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 'x':
|
||||
if (val_ulonglong > ui_max)
|
||||
{
|
||||
if (sizeof (long long) > sizeof (long))
|
||||
{
|
||||
fprintf_filtered (stream, "0x%lx%08lx", vtop, vbot);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf_filtered (stream, "0x%lx", vbot);
|
||||
}
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 'u':
|
||||
if (val_ulonglong > ui_max)
|
||||
{
|
||||
if (sizeof (long long) > sizeof (long))
|
||||
{
|
||||
fprintf_filtered (stream, "0x%lx%08lx", vtop, vbot);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf_filtered (stream, "%lu", (unsigned long) vbot);
|
||||
}
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -361,8 +407,10 @@ longest_to_int (arg)
|
||||
if (sizeof (LONGEST) <= sizeof (int))
|
||||
return arg;
|
||||
|
||||
if (arg > INT_MAX || arg < INT_MIN)
|
||||
error ("Value out of range.");
|
||||
if (arg > INT_MAX)
|
||||
error ("Value is larger than largest signed integer.");
|
||||
if (arg < INT_MIN)
|
||||
error ("Value is smaller than smallest signed integer.");
|
||||
|
||||
return arg;
|
||||
}
|
||||
@ -464,7 +512,12 @@ print_floating (valaddr, type, stream)
|
||||
else if (len == sizeof (double))
|
||||
fprintf_filtered (stream, "%.17g", (double) doub);
|
||||
else
|
||||
#ifdef PRINTF_HAS_LONG_DOUBLE
|
||||
fprintf_filtered (stream, "%.35Lg", doub);
|
||||
#else
|
||||
/* This at least wins with values that are representable as doubles */
|
||||
fprintf_filtered (stream, "%.17g", (double) doub);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* VALADDR points to an integer of LEN bytes. Print it in hex on stream. */
|
||||
|
@ -37,7 +37,8 @@ extern int stop_print_at_null; /* Stop printing at null char? */
|
||||
|
||||
extern void
|
||||
val_print_array_elements PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *,
|
||||
int, int, int, enum val_prettyprint, int));
|
||||
int, int, int, enum val_prettyprint,
|
||||
unsigned int));
|
||||
|
||||
extern void
|
||||
val_print_type_code_int PARAMS ((struct type *, char *, GDB_FILE *));
|
||||
|
@ -41,6 +41,8 @@ static void show_values PARAMS ((char *, int));
|
||||
|
||||
static void show_convenience PARAMS ((char *, int));
|
||||
|
||||
static int vb_match PARAMS ((struct type *, int, struct type *));
|
||||
|
||||
/* The value-history records all the values printed
|
||||
by print commands during this session. Each chunk
|
||||
records 60 consecutive values. The first chunk on
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "gdbcmd.h"
|
||||
#include "gdbtypes.h"
|
||||
#include "dis-asm.h"
|
||||
|
||||
#include "gdbcore.h"
|
||||
|
||||
/* Return the saved PC from this frame. */
|
||||
|
||||
|
@ -51,6 +51,8 @@
|
||||
/* Forward declaration */
|
||||
extern struct target_ops child_ops;
|
||||
|
||||
static void child_stop PARAMS ((void));
|
||||
|
||||
/* The most recently read context. Inspect ContextFlags to see what
|
||||
bits are valid. */
|
||||
|
||||
@ -765,7 +767,7 @@ child_mourn_inferior ()
|
||||
/* Send a SIGINT to the process group. This acts just like the user typed a
|
||||
^C on the controlling terminal. */
|
||||
|
||||
void
|
||||
static void
|
||||
child_stop ()
|
||||
{
|
||||
DEBUG_EVENTS (("gdb: GenerateConsoleCtrlEvent (CTRLC_EVENT, 0)\n"));
|
||||
|
@ -29,6 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "gdbcmd.h"
|
||||
#include "gdbtypes.h"
|
||||
#include "dis-asm.h"
|
||||
#include "gdbcore.h"
|
||||
|
||||
/* Return the saved PC from this frame.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user