Commit Graph

19207 Commits

Author SHA1 Message Date
Yit Phang Khoo a8db421230 2012-09-02 Khoo Yit Phang <khooyp@cs.umd.edu>
Do not enable -lmcheck by default when Python is enabled with
	threading support.
	* configure.ac: (python_has_threads) New variable, by testing
	if WITH_THREAD is defined in Python.h.
	Move --enable-lmcheck after --with-python.
	Do not enable -lmcheck by default if python_has_threads=yes.
	Warn if --enable-lmcheck and python_has_threads=yes.
	* configure: Regenerate.
2012-09-02 22:57:43 +00:00
Yit Phang Khoo fda395cfae 2012-08-30 Khoo Yit Phang <khooyp@cs.umd.edu>
* MAINTAINERS (Write After Approval): Add "Khoo Yit Phang".
2012-09-01 03:14:15 +00:00
Yao Qi 648beb2ba9 gdb/
* mi/mi-cmds.c (mi_cmds): New macros DEF_MI_CMD_CLI
	DEF_MI_CMD_MI DEF_MI_CMD_CLI_1 and DEF_MI_CMD_CLI_1.
	Update some commands.
	* mi/mi-cmds.h (struct mi_cmd) <suppress_notification>: New field.
	* mi/mi-main.c (mi_cmd_execute): Set '*parse->cmd->suppress_notification'
	to 1.
2012-08-31 08:41:57 +00:00
Yao Qi ef07a9f766 gdb/
* mi/mi-cmds.c (mi_cmds): Add 'static'.
2012-08-31 08:30:38 +00:00
Doug Evans 8efd8e789a * main.c (print_gdb_help): Remove reference to
--use-deprecated-index-sections.
2012-08-29 19:17:16 +00:00
Yao Qi 883b9c6c98 gdb/
* cli/cli-cmds.c (max_user_call_depth): Add 'unsigned'.
	(init_cmds): Call add_setshow_uinteger_cmd for command
	'max-user-call-depth'.
	* cli/cli-script.c (execute_user_command): Add 'unsigned' to the
	declaration of 'max_user_call_depth'.
	* frame.c (backtrace_limit): Add 'unsigned'.
	(_initialize_frame): Call add_setshow_uinteger_cmd for command
	'limit'.
	* remote.c (remoteaddresssize): Add 'unsigned'.
	(remote_address_masked): Change local var 'address_size' to
	'unsigned'.
	(_initialize_remote): Call add_setshow_uinteger_cmd for
	'remoteaddresssize'.
	* top.c (history_size): Add 'unsigned'.
	(show_commands): Change local variables to 'unsigned'.
	(set_history_size_command): Don't check history_size is negative.
	Adjust the condition to call unstifle_history and set history_size
	to UNIT_MAX.
2012-08-28 14:08:42 +00:00
Pedro Alves 1292279a4e 2012-08-28 Pedro Alves <palves@redhat.com>
PR gdb/14428

	gdb/
	* infcmd.c (default_print_one_register_info): New, factored out
	from default_print_registers_info.
	(default_print_registers_info): Use it.  Mark value unavailable if
	necessary.
	(registers_info): Print user registers with
	default_print_one_register_info.

	gdb/testsuite/
	* gdb.base/pc-fp.exp: Adjust expected output of 'info registers pc fp'.
2012-08-28 09:05:35 +00:00
H.J. Lu f629cd7572 Check if TUI_SRC_WIN is not NULL before referencing it
PR tui/14486
	* tui/tui-source.c (tui_source_is_displayed): Check if TUI_SRC_WIN
	is not NULL before referencing it.
2012-08-27 17:00:42 +00:00
Jan Kratochvil 1c8cdcb14f gdb/
* breakpoint.c (parse_breakpoint_sals) <(*address) == NULL>: New
	variable pc.  Call find_pc_line instead of find_pc_overlay, restore
	original PC for it.

gdb/testsuite/
	* gdb.base/break-caller-line.c: New file.
	* gdb.base/break-caller-line.exp: New file.
2012-08-27 16:55:39 +00:00
Jan Kratochvil e968779960 gdb/
* auto-load.c (auto_load_objfile_script): Rename to ...
	(auto_load_objfile_script_1): ... here, change variable realname to
	parameter realname, document it, add return value, add variable retval.
	(auto_load_objfile_script): New function.

gdb/doc/
	* gdb.texinfo (objfile-gdb.py file): New paragraph for .exe stripping.
2012-08-27 16:50:54 +00:00
Jan Kratochvil 7afa16426a gdb/
* cli/cli-decode.c (print_doc_line): Keep skipping '.' and ',' not
	followed by a whitespace.
2012-08-27 16:47:15 +00:00
Jan Kratochvil 28e66c70aa ChangeLog fix:
PR gdb/14494.
	* dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
	Move the SEC_HAS_CONTENTS check here - for any NAMES use.
	(dwarf2_locate_sections) <eh_frame>: Move the variable and check from
	here.
2012-08-27 16:43:26 +00:00
Jan Kratochvil dc7650b823 gdb/
* dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
	Move the SEC_HAS_CONTENTS check here - for any NAMES use.
	(dwarf2_locate_sections) <eh_frame>: Move the variable and check from
	here.
2012-08-27 16:37:45 +00:00
Pedro Alves 1591a1e852 2012-08-27 Wei-cheng Wang <cole945@gmail.com>
* memattr.c (create_mem_region): Fix memory region overlapping
	checking.

2012-08-27  Wei-cheng Wang  <cole945@gmail.com>
	    Yao Qi <yao@codesourcery.com>
	    Pedro Alves <palves@redhat.com>

	* gdb.base/memattr.exp (delete_memory, region_pass, region_fail):
	New procedures.
	(top level): Add overlap checking tests.
2012-08-27 08:58:01 +00:00
Yit Phang Khoo 3b5e4d350d Move misplaced entries from gdb/ChangeLog to gdb/doc/ChangeLog.
2012-08-23  Khoo Yit Phang <khooyp@cs.umd.edu>

	Document how to return from "python-interactive" to GDB.
	* gdb.texinfo (Python Commands): Update documentation.

2012-08-22  Khoo Yit Phang <khooyp@cs.umd.edu>

	Add a new "python-interactive" command that starts a standard
	Python interactive prompt with "pi" as alias, and add "py" as
	an alias to "python".
	* gdb.texinfo (Python Commands): Document the new commands.
2012-08-24 15:23:59 +00:00
Siddhesh Poyarekar ecfb0d68c5 * h8300-tdep.c (h8300_push_dummy_call): Replace unsafe alloca
with xmalloc/cleanup.
        * mt-tdep.c (mt_push_dummy_call): Likewise.
        * tilegx-tdep.c (tilegx_push_dummy_call): Likewise.
        * xstormy16-tdep.c (xstormy16_push_dummy_call): Likewise.
2012-08-24 03:57:22 +00:00
Yao Qi 8c56c1b90e gdb/
* jv-exp.y (push_expression_name): Add "." at the end of error
	message.
2012-08-24 03:17:13 +00:00
Yit Phang Khoo e3480f4aa1 Document how to return from "python-interactive" to GDB.
* doc/gdb.texinfo (Python Commands): Update documentation.
	* python/python.c (_initialize_python): Update documentation.
2012-08-23 18:55:25 +00:00
Pedro Alves dfbd5e7bbb 2012-08-23 Pedro Alves <palves@redhat.com>
gdb/
	* infrun.c (_initialize_infrun) <handle command help text>:
	Mention that multiple signals are supported.

	gdb/testsuite/
	* gdb.base/help.exp: Adjust to "handle" help text change.
2012-08-23 16:59:14 +00:00
Pedro Alves 2edda2ffe8 2012-08-23 Pedro Alves <palves@redhat.com>
* infcmd.c (_initialize_infcmd) <signal command>: Fix typo in help
	string.
2012-08-23 16:44:24 +00:00
Yao Qi 8d735b87dd gdb/
* tracepoint.c (disconnect_tracing): Call set_tracepoint_num.
	(tfind_1): Don't call registers_changed, set_traceframe_num,
	and clear_traceframe_info.
	Call set_current_traceframe.
	(set_current_traceframe): call set_traceframe_num.

gdb/testsuite:

	* gdb.trace/disconnected-tracing.c (start, end): New.
	(main): Call start and end.
	* gdb.trace/disconnected-tracing.exp (disconnected_tracing): Move
	existing tests into this proc.
	(disconnected_tfind): New.
2012-08-23 16:11:10 +00:00
Sergio Durigan Junior c5d9b215bd 2012-08-22 Sergio Durigan Junior <sergiodj@redhat.com>
* remote-sim.c (_initialize_remote_sim): Pass NULL argument to
	`register_inferior_data_with_cleanup', fixing regression on PowerPC64.
2012-08-22 21:31:17 +00:00
Yit Phang Khoo 037bbc8eea Enable readline in Python in a GDB-specific way and block the
standard Python readline module to prevent conflicts with GDB.
	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-gdb-readline.o.
	(SUBDIR_PYTHON_SRCS): Add python/py-gdb-readline.c.
	(py-gdb-readline.o): Add rule to compile python/py-gdb-readline.c.
	* python/py-gdb-readline.c: New file.
	* python/python-internal.h (gdbpy_initialize_gdb_readline): New
	prototype.
	* python/python.c (_initialize_python): Call
	gdbpy_initialize_gdb_readline.
2012-08-22 21:04:55 +00:00
Keith Seitz 406b1477f5 * defs.h: Include build-gnulib/config.h
* server.h: Include build-gnulib-gbserver/config.h.
	* gdbreplay.c: Likewise.
2012-08-22 20:04:05 +00:00
Joseph Myers 6ca1b14767 * arm-tdep.c (thumb_get_next_pc_raw): Mask off low bits for bx pc
and blx pc.

testsuite:
	* gdb.arch/thumb-bx-pc.S: New file.
	* gdb.arch/thumb-bx-pc.exp: New file.
2012-08-22 19:47:58 +00:00
Yit Phang Khoo 8315665ec1 Add a new "python-interactive" command that starts a standard
Python interactive prompt with "pi" as alias, and add "py" as
	an alias to "python".
	* NEWS: Mention the new commands.
	* doc/gdb.texinfo (Python Commands): Document the new
	commands.
	* python/python.c (eval_python_command): New function.
	(python_interactive_command): For "python-interactive" with
	arguments, call eval_python_command.  For "python-interactive"
	without arguments, call PyRun_InteractiveLoop.
	(_initialize_python): Add "python-interactive" command with
	"pi" as alias, and add "py" as an alias to "python".
2012-08-22 19:15:15 +00:00
Tom Tromey 522002f96c * defs.h (quit_flag): Don't declare.
(clear_quit_flag, check_quit_flag, set_quit_flag): Declare.
	(QUIT): Use new functions.
	* event-top.c (command_handler): Use clear_quit_flag.
	(handle_sigint): Use set_quit_flag.
	(async_request_quit): Use check_quit_flag.  Don't check
	immediate_quit.
	* exceptions.c (throw_exception): Use clear_quit_flag.
	* main.c (captured_main): Use clear_quit_flag.
	* python/python.c (clear_quit_flag, set_quit_flag)
	(check_quit_flag): New functions.
	* remote-sim.c (gdb_os_poll_quit): Use check_quit_flag,
	clear_quit_flag.
	* remote.c (remote_wait_as): Use check_quit_flag,
	clear_quit_flag.
	(remote_start_remote): Call QUIT.
	* symfile.c (load_progress): Use check_quit_flag.
	* top.c (command_loop): Use clear_quit_flag.
	(command_line_input): Call QUIT.
	* utils.c (quit_flag): Conditionally define.
	(clear_quit_flag, check_quit_flag, set_quit_flag): New
	functions.
	(prompt_for_continue): Call QUIT.  Use quit, not
	async_request_quit.
	* remote-mips.c (mips_expect_timeout): Call QUIT.
	* monitor.c (monitor_expect): Call QUIT.
2012-08-22 17:48:55 +00:00
Tom Tromey b583003e10 * event-top.c (sigwinch_token, handle_sigwinch): Remove.
(async_init_signals): Update.
	* utils.c (init_page_info): Don't use SIGWINCH_HANDLER.
	(SIGWINCH_HANDLER_BODY): Remove.
gdb/doc
	* gdbint.texinfo (Host Definition): Remove documentation for
	SIGWINCH_HANDLER and SIGWINCH_HANDLER_BODY.
2012-08-22 17:31:45 +00:00
Tom Tromey e1507e953e * jit.c (jit_object_close_impl): Don't malloc the objfile
name.
	* objfiles.c (allocate_objfile): Don't malloc the objfile
	name.
	(free_objfile): Don't free the objfile name.
	* objfiles.h (struct objfile) <name>: Update comment.
	* symfile.c (reread_symbols): Fix reference counting.  Don't
	malloc objfile name.
2012-08-22 16:44:45 +00:00
Tom Tromey 1c00ec6b06 * windows-nat.c (windows_make_so): Use gdb_bfd_open.
* symfile.c (bfd_open_maybe_remote): Use gdb_bfd_open.
	(symfile_bfd_open): Likewise.
	(generic_load): Likewise.
	* solib.c (solib_bfd_fopen): Use gdb_bfd_open.
	* solib-pa64.c (pa64_solib_create_inferior_hook): Use
	gdb_bfd_open.
	* solib-darwin.c (darwin_solib_get_all_image_info_addr_at_init):
	Use gdb_bfd_open.
	* rs6000-nat.c (add_vmap): Use gdb_bfd_open.
	* remote-mips.c (mips_load_srec): Use gdb_bfd_open.
	(pmon_load_fast): Likewise.
	* remote-m32r-sdi.c (m32r_load): Use gdb_bfd_open.
	* procfs.c (insert_dbx_link_bpt_in_file): Use gdb_bfd_open.
	* machoread.c (macho_symfile_read_all_oso): Use gdb_bfd_open.
	(macho_check_dsym): Likewise.
	* m32r-rom.c (m32r_load): Use gdb_bfd_open.
	(m32r_upload_command): Likewise.
	* gdb_bfd.h (gdb_bfd_cache): Declare.
	* gdb_bfd.c (struct gdb_bfd_data): New.
	(gdb_bfd_cache): New global.
	(struct gdb_bfd_cache_search): New.
	(hash_bfd): New function.
	(eq_bfd): Likewise.
	(gdb_bfd_open): Likewise.
	(gdb_bfd_ref): Allocate a gdb_bfd_data and attach to the BFD.
	(gdb_bfd_unref): Remove closed BFD from cache.  Update for
	gdb_bfd_data.
	* exec.c (exec_file_attach): Use gdb_bfd_open.
	* dsrec.c (load_srec): Use gdb_bfd_open.
2012-08-22 16:24:39 +00:00
Tom Tromey 6532ff3697 * dwarf2read.c (macro_start_file): Update.
* objfiles.c (get_objfile_bfd_data): Initialize macro_cache.
	(free_objfile_per_bfd_storage): Destroy macro_cache.
	(allocate_objfile, free_objfile): Update.
	* objfiles.h (struct objfile_per_bfd_storage) <macro_cache>:
	New field.
	(struct objfile) <macro_cache>: Remove.
	* symfile.c (reread_symbols): Update.
	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Update.
2012-08-22 16:12:50 +00:00
Tom Tromey 706e37059f * elfread.c (elf_symtab_read): Update.
* objfiles.c (objfiles_bfd_data): New global.
	(get_objfile_bfd_data, free_objfile_per_bfd_storage)
	(objfile_bfd_data_free, set_objfile_per_bfd): New functions.
	(allocate_objfile, free_objfile): Update.
	(_initialize_objfiles): Initialize objfiles_bfd_data.
	* objfiles.h (struct objfile_per_bfd_storage): New.
	(struct objfile) <per_bfd>: New field.
	<filename_cache>: Remove.
	(set_objfile_per_bfd): Declare.
	* symfile.c (reread_symbols): Update.  Call
	set_objfile_per_bfd.
	(allocate_symtab): Update.
	* symmisc.c (print_symbol_bcache_statistics): Update.
	(print_objfile_statistics): Print the size of the BFD obstack.
gdb/testsuite
	* gdb.base/maint.exp: Update.
2012-08-22 16:01:09 +00:00
Tom Tromey e992eda4f6 * gdb_bfd.h: Include registry.h. Use DECLARE_REGISTRY.
* gdb_bfd.c: Use DEFINE_REGISTRY.
	(struct gdb_bfd_data): Add REGISTRY_FIELDS.
	(gdb_bfd_ref): Call bfd_alloc_data.
	(gdb_bfd_unref): Call bfd_free_data.
2012-08-22 15:50:38 +00:00
Tom Tromey 6b81941e35 * registry.h (struct registry_fields): New.
(REGISTRY_FIELDS): Redefine.
	(REGISTRY_ACCESS_FIELD): New macro.
	(DEFINE_REGISTRY): Add ACCESS argument.  Update defined
	functions.
2012-08-22 15:31:12 +00:00
Tom Tromey 8e260fc026 * auto-load.c (_initialize_auto_load): Update.
* solib-svr4.c (_initialize_svr4_solib): Update
	* solib-dsbt.c (_initialize_dsbt_solib): Update.
	* solib-darwin.c (_initialize_darwin_solib): Update.
	* registry.h: New file.
	* python/py-progspace.c (gdbpy_initialize_pspace): Update.
	* python/py-inferior.c (gdbpy_initialize_inferior): Update.
	* progspace.h: Include registry.h.  Use DECLARE_REGISTRY.
	(register_program_space_data_with_cleanup)
	(register_program_space_data, program_space_alloc_data)
	(clear_program_space_data, set_program_space_data)
	(program_space_data): Don't declare.
	* progspace.c: Use DEFINE_REGISTRY.
	(struct program_space_data, struct
	program_space_data_registration, struct
	program_space_data_registry, program_space_data_registry)
	(register_program_space_data_with_cleanup)
	(register_program_space_data, program_space_alloc_data)
	(program_space_free_data, clear_program_space_data)
	(set_program_space_data, program_space_data): Remove.
	* objfiles.h: Include registry.h.  Use DECLARE_REGISTRY.
	(struct objfile) <data, num_data>: Replace with REGISTRY_FIELDS.
	(register_objfile_data_with_cleanup, register_objfile_data)
	(clear_objfile_data, set_objfile_data, objfile_data): Don't
	declare.
	* objfiles.c: Use DEFINE_REGISTRY.
	(struct objfile_data, struct objfile_data_registration, struct
	objfile_data_registry, objfile_data_registry)
	(register_objfile_data_with_cleanup, register_objfile_data)
	(objfile_alloc_data, objfile_free_data, clear_objfile_data)
	(set_objfile_data, objfile_data): Remove.
	(_initialize_objfiles): Update.
	* jit.c (_initialize_jit): Update.
	* inflow.c (_initialize_inflow): Update.
	* inferior.h: Include registry.h.  Use DECLARE_REGISTRY.
	(struct inferior) <data, num_data>: Replace with REGISTRY_FIELDS.
	(register_inferior_data_with_cleanup, register_inferior_data)
	(clear_inferior_data, set_inferior_data, inferior_data): Don't
	declare.
	* inferior.c: Use DEFINE_REGISTRY.
	(struct inferior_data, struct inferior_data_registration, struct
	inferior_data_registry, inferior_data_registry)
	(register_inferior_data_with_cleanup, register_inferior_data)
	(inferior_alloc_data, inferior_free_data  clear_inferior_data)
	(set_inferior_data, inferior_data): Remove.
	* auxv.c (_initialize_auxv): Update.
	* ada-lang.c (_initialize_ada_language): Update.
	* breakpoint.c (_initialize_breakpoint): Update.
	* i386-nat.c (i386_use_watchpoints): Update.
2012-08-22 15:17:21 +00:00
Tom Tromey ed9eebafbc * exec.c (exec_close, exec_file_attach): Update.
(add_to_section_table): Initialize 'key' field.
	(add_target_sections, remove_target_sections): Add 'key' argument.
	* exec.h (add_target_sections, remove_target_sections): Add
	'key' argument.
	* solib.c (solib_map_sections, update_solib_list, clear_solib)
	(reload_shared_libraries_1): Update.
	* target.h (struct target_section) <key>: New field.
2012-08-22 15:01:50 +00:00
Tom Tromey 2f2e97fabc * cli/cli-cmds.c (filter_sals): Handle nelts == 0 case. 2012-08-22 14:24:05 +00:00
Pierre Muller b3dbbd6f40 * symfile.c (allocate_symtab): Use host_address_to_string
function instead of cast of pointer to long which is not
	compatible with x86_64-w64-mingw32 build.
2012-08-21 15:43:46 +00:00
Andrew Pinski f94363d720 2012-08-19 Andrew Pinski <apinski@cavium.com>
* mips-tdep.c (is_octeon): New function.
	(is_octeon_bbit_op): New function.
	(mips32_next_pc): Handle Octeon's bbit instructions.
	(mips32_instruction_has_delay_slot): Likewise.

012-08-19  Andrew Pinski  <apinski@cavium.com>

        * gdb.arch/mips-octeon-bbit.c: New file.
        * gdb.arch/mips-octeon-bbit.exp: New Test.
2012-08-19 22:22:49 +00:00
Andrew Pinski 78a59c2fea 2012-08-19 Andrew Pinski <apinski@cavium.com>
* mips-tdep.c (mips32_next_pc): Fix line spacing of the comment
	before the function.
2012-08-19 22:21:21 +00:00
Andrew Pinski 4f5bcb5090 2012-08-19 Andrew Pinski <apinski@cavium.com>
* mips-tdep.c (mips32_next_pc): Consolidate calls to itype_op.
2012-08-19 22:20:29 +00:00
Keith Seitz e5afdbd7a0 PR c++/14365
* c-typeprint.c (c_type_print_varspec_prefix): Pass
	-1 for SHOW to c_type_print_base for METHODPTR and MEMBERPTR.

	* gdb.dwarf2/dw2-anon-mptr.exp: New file.
	* gdb.dwarf2/dw2-anon-mptr.S: New file.
2012-08-19 19:37:51 +00:00
Eli Zaretskii 13c9750ebf Fix a typo that prevented "make TAGS" from working.
gdb/Makefile.in (HFILES_NO_SRCDIR): Fix a typo: golang.h -> go-lang.h.
 The typo broke "make TAGS".
2012-08-18 11:00:37 +00:00
gdbadmin db7618108f GDB 7.5 released. 2012-08-17 18:41:46 +00:00
Keith Seitz a451cb65e3 PR c++/13356
* gdbtypes.c (strict_type_checking): New variable.
	(show_strict_type_checking): New function.
	(rank_one_type): Return NS_POINTER_INTEGER_CONVERSION_BADNESS
	if strict type checking is disabled.
	(_initialize_gdbtypes): Add "check type" subcommand.
	* gdbtypes.h (NS_INTEGER_POINTER_CONVERSION_BADNESS): New struct.

	PR c++/13356
	* gdb.base/default.exp: Update all "check type" tests.
	* gdb.base/help.exp: Likewise.
	* gdb.base/setshow.exp: Likewise.
	* gdb.cp/converts.cc (foo1_type_check): New function.
	(foo2_type_check): New function.
	(foo3_type_check): New function.
	(main): Call new functions.
	* converts.exp: Add tests for integer-to-pointer conversions
	with/without strict type-checking.

	PR c++/13356
	* gdb.texinfo (Type and Range Checking): Remove warning.
	Remove spurious commas.
	Update text and examples for re-implementation of set/show
	check type.
	(C and C++ Type and Range Checks): Likewise.

	* language.h (type_mode): Remove.
	(type_check): Remove.
	(struct language_defn): Remove la_type_check.
	(STRICT_TYPE): Remove unused macro.
	(type_error): Remove.
	* language.c (set_type_range_case): Renamed to ...
	(set_range_case): ... this.  Update all callers.
	Remove type_mode/type_check.
	(type_mode): Remove.
	(type_check): Remove.
	(show_type_command): Remove.
	(set_type_command): Remove.
	(language_info): Remove type checking output.
	(type_error): Remove unused function.
	(range_error): Update comment.
	(unknown_language_defn): Remove la_type_check.
	(auto_language_defn): Likewise.
	(local_language_defn): Likewise.
	(_initialize_language): Remove "check type" subcommand.
	* ada-lang.c (ada_language_defn): Remove la_type_check.
	* c-lang.c (c_language_defn): Likewise.
	(cplus_language_defn): Likewise.
	(asm_language_defn): Likewise.
	(minimal_language_defn): Likewise.
	* d-lang.c (d_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* go-lang.c (go_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* opencl-lang.c (opencl_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.
2012-08-17 17:37:03 +00:00
Mike Frysinger dbf6a605ee gdb: fix test failures after updating usage strings 2012-08-17 03:06:11 +00:00
Joel Brobecker 973e3cf70d fix internal_error during fork event handling.
When running on ia64-hpux a program that calls fork, GDB currently
reports the following internal error:

    internal-error: Can't determine the current address space of thread process 1882

Here is what happens:
  1. GDB receives a "fork" event;
  2. handle_inferior_event calls detach_breakpoints for the child process;
  3. detach_breakpoints calls ia64's gdbarch remove_breakpoint hook,
     which needs to read an entire instruction slot in order to remove
     a breakpoint instruction from memory;
  4. To read inferior memory, the ia64-hpux code needs to know where
     that memory is located relative to the bsp..bspstore area,
     and thus needs to read the value of those registers;
  5. To get the value of those registers, ia64_hpux_xfer_memory current
     uses the current regcache.

The problem is that at the time we are trying to remove the breakpoints
from the child, the child process is not part of the list of inferiors
really known to GDB (it has not been added to inferior_list), so trying
to create a regcache for it triggers an internal error when creating
address space for the regcache (as the address space is ultimately
fetched from the inferior).

To work around this limitation, ia64_hpux_xfer_memory has been modified
to detect the fact the current inferior is not in our inferior list,
and to go, in that case, straight to the source to fetch the registers
it needs.

gdb/ChangeLog:

        * ia64-hpux-nat.c (ia64_hpux_get_register_from_save_state_t):
        New function.
        (ia64_hpux_xfer_memory): Check if inferior_ptid is known before
        using the regache.  Use ia64_hpux_get_register_from_save_state_t
        to access the bsp and bspstore registers if not.
2012-08-16 23:55:02 +00:00
Joel Brobecker d80ee84fe2 Change detach_breakpoints to take a ptid instead of a pid
Before this change, detach_breakpoints would take a pid, and then
set inferior_ptid to a ptid that it constructs using pid_to_ptid (pid).
Unfortunately, this ptid is not necessarily valid.  Consider for
instance the case of ia64-hpux, where ttrace refuses a register-read
operation if the LWP is not provided.

This problems shows up when GDB is trying to handle fork events.
Assuming GDB is configured to follow the parent, GDB will try to
detach from the child. But before doing so, it needs to remove
all breakpoints inside that child.  On ia64, this involves reading
inferior (the child's) memory. And on ia64-hpux, reading memory
requires us to read the bsp and bspstore registers, in order to
determine where that memory is relative to the value of those
registers, and thus to determine which ttrace operation to use in
order to fetch that memory (see ia64_hpux_xfer_memory).

This patch therefore changes detach_breakpoints to take a ptid instead
of a pid, and then updates all callers.

One of the consequences of this patch is that it trips an assert
on GNU/Linux targets.  But this assert appears to have not actual
purpose, and is thus removed.

gdb/ChangeLog:

        * breakpoint.h (detach_breakpoints): pid parameter is now a ptid.
        * breakpoint.c (detach_breakpoints): Change pid parameter into
        a ptid.  Adjust code accordingly.
        * infrun.c (handle_inferior_event): Delete variable child_pid.
        Update call to detach_breakpoints to pass the child ptid for
        fork events.
        * linux-nat.c (linux_nat_iterate_watchpoint_lwps): Remove
        assert that inferior_ptid's lwp is zero.
        (linux_handle_extended_wait): Update call to detach_breakpoints.
        * inf-ttrace.c (inf_ttrace_follow_fork): Update call to
        detach_breakpoints.
2012-08-16 23:54:50 +00:00
Joel Brobecker 2dcc608618 inf_ttrace_follow_fork: detach_breakpoints called twice for child.
When debugging a program that forks with follow-fork set to follow
the parent, we end up calling detach_breakpoints for the child twice.
On ia64-hpux, this leads to a warning when trying to remove the
breakpoints the second time around, because the ia64 code detects
that the address does not point to a breakpoint instruction.

gdb/ChangeLog:

        * inf-ttrace.c (inf_ttrace_follow_fork): When following the
        parent, only call detach_breakpoints if tts.tts_event ==
        TTEVT_VFORK.
2012-08-16 23:54:37 +00:00
Joel Brobecker 0c92d8c1c3 DWARF frame unwinder executes one too many rows
The problem is trying to unwind from a function where %ebp is NOT
used as the frame pointer, and the size of the frame changes over
the lifetime of that function.

For instance, trying to unwind past the GNAT runtime function
called system.tasking.rendezvous.timed_selective_wait on x86-linux,
one can get:

    (gdb) bt
    [...]
    #3  0x0805364b in system.tasking.rendezvous.timed_selective_wait ()
    #4  0xb7fe5068 in ?? ()
    Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Looking at the CFI, we find the following initial instructions...

>   DW_CFA_def_cfa: %esp+4 (r4 ofs 4)
>   DW_CFA_offset: %eip at cfa-4  (r8 = %eip)

... and the associated FDE:

> 00001be4 00000054 00001be8 FDE cie=00000000 pc=08053310..08053951
[...]
>   DW_CFA_advance_loc: 8 to 080534ad
>   DW_CFA_def_cfa_offset: 112
>   DW_CFA_advance_loc2: 414 to 0805364b
>   DW_CFA_def_cfa_offset: 108
[...]

The problem is that the DWARF frame unwinder executed the FDE until
the row for PC == 0x0805364b. But in reality, our program hasn't
executed the instruction at that address yet (it is the return address).
So GDB executed a little too much of the FDE, giving us the wrong
offset for the frame base, and thus the wrong address where %eip
got saved.

This patch fixes the problem by using a more correct PC as the bound
for executing the FDE.

gdb/ChangeLog:

        * dwarf2-frame.c (dwarf2_frame_cache): Use
        get_frame_address_in_block instead of get_frame_pc as
        the bound for executing the frame's FDE.

gdb/testsuite/ChangeLog:

        * gdb.ada/rdv_wait: New testcase.
2012-08-16 15:45:46 +00:00