Commit graph

32978 commits

Author SHA1 Message Date
Ulrich Weigand
fecf803efa 2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand  <uweigand@de.ibm.com>

	* aixthread.c: Call ptrace64 instead of ptracex if defined.
	Call ptrace64 instead of ptrace if defined.
	Add macro addr_ptr to take care of ptrace address argument.
	(pdc_read_regs): Likewise.
	(pdc_write_regs): Likewise.
	(aix_thread_resume): Likewise.
	(fetch_regs_kernel_thread): Likewise.
	(store_regs_kernel_thread): Likewise.
2013-08-07 13:24:26 +00:00
Anton Blanchard
3bb5e4a872 2013-08-07 Anton Blanchard <anton@samba.org>
* MAINTAINERS: Add myself to Write After Approval.
2013-08-07 08:00:55 +00:00
Tom Tromey
12070676a9 more add_target removals
This removes a few more erroneous calls to add_target.  These calls
end up installing the target in a user-visible way; but these targets
are all auto-activated and, I think, should never be explicitly
requested.

I have no way to test these.

	* aix-thread.c (_initialize_aix_thread): Use
	complete_target_initialization.
	* bsd-uthread.c (_initialize_bsd_uthread): Use
	complete_target_initialization.
	* dec-thread.c (_initialize_dec_thread): Use
	complete_target_initialization.
	* ravenscar-thread.c (_initialize_ravenscar): Use
	complete_target_initialization.
	* sol-thread.c (_initialize_sol_thread): Use
	complete_target_initialization.
	* spu-multiarch.c (_initialize_spu_multiarch): Use
	complete_target_initialization.
2013-08-05 16:54:27 +00:00
Tom Tromey
7c7b66552d remove msymbol_objfile
This is another patch in my ongoing series to "split" objfile to share
more read-only data across inferiors.  See

    http://sourceware.org/gdb/wiki/ObjfileSplitting

When symbols are finally shared, there will be no back-link from the
symbol to its containing objfile, because there may be more than one
such objfile.  So, all such back-links must be removed.

One hidden back-link is the msymbol_objfile function.  Since
(eventually) a symbol may appear in more than one objfile, trying to
look up the objfile given just a symbol cannot work.

This patch removes msymbol_objfile in favor of using a bound minimal
symbol.  It introduces a new function to make this conversion simpler
in some spots.

The bonus of this patch is that using msymbol_objfile is slower than
simply looking up the owning objfile in the first place.

Built and regtested on x86-64 Fedora 18.

	* ada-exp.y (write_var_or_type): Use bound_minimal_symbol.
	* ada-lang.c (ada_lookup_simple_minsym): Return
	bound_minimal_symbol.
	* ada-lang.h (ada_lookup_simple_minsym): Update.
	* c-exp.y (variable): Use lookup_bound_minimal_symbol.
	* f-exp.y (variable): Use lookup_bound_minimal_symbol.
	* go-exp.y (variable): Use lookup_bound_minimal_symbol.
	* jv-exp.y (push_expression_name): Use lookup_bound_minimal_symbol.
	* m2-exp.y (variable): Use lookup_bound_minimal_symbol.
	* minsyms.c (msymbol_objfile): Remove.
	(lookup_minimal_symbol_internal): New function, from
	lookup_minimal_symbol.
	(lookup_minimal_symbol): Rewrite using
	lookup_minimal_symbol_internal.
	(lookup_bound_minimal_symbol): New function.
	* minsyms.h (msymbol_objfile): Remove.
	(lookup_bound_minimal_symbol): Declare.
	* p-exp.y (variable): Use lookup_bound_minimal_symbol.
	* parse.c (write_exp_msymbol): Change parameter to a
	bound_minimal_symbol.
	(write_dollar_variable): Use lookup_bound_minimal_symbol.
	* parser-defs.h (write_exp_msymbol): Update.
	* printcmd.c (address_info): Use lookup_bound_minimal_symbol.
	* symfile.c (simple_read_overlay_table): Use
	lookup_bound_minimal_symbol.
	* symtab.c (skip_prologue_sal): Don't use msymbol_objfile.
	(search_symbols): Likewise.
	(print_msymbol_info): Take a bound_minimal_symbol argument.
	(symtab_symbol_info, rbreak_command): Update.
	* symtab.h (struct symbol_search) <msymbol>: Change type
	to bound_minimal_symbol.
	* valops.c (find_function_in_inferior): Use
	lookup_bound_minimal_symbol.
	* value.c (value_fn_field): Use lookup_bound_minimal_symbol.
2013-08-05 15:51:02 +00:00
Sanimir Agovic
6e8c566101 doc: gdbserver allows for subsequent and not for multiple simultaneous connections.
doc/

2013-08-05  Sanimir Agovic  <sanimir.agovic@intel.com>

	* gdb.texinfo (TCP port allocation lifecycle): Gdbserver by default
	allows for subsequent and not for additional (multiple simultaneous)
        connections.
2013-08-05 15:39:25 +00:00
Jan Kratochvil
934b9bace2 gdb/
Code cleanup.
	* remote.c (cleanup_sigint_signal_handler): Rename the declaration
	to ...
	(async_cleanup_sigint_signal_handler): ... this.
	(initialize_sigint_signal_handler): Remove declaration.
	(handle_remote_sigint): Rename the declaration to ...
	(async_handle_remote_sigint): ... this.
	(handle_remote_sigint_twice): Rename the declaration to ...
	(async_handle_remote_sigint_twice): ... this.
	(async_remote_interrupt, async_remote_interrupt_twice)
	(remote_interrupt): Remove the declarations.
	(remote_interrupt_twice): Rename the declaration ...
	(sync_remote_interrupt_twice): ... this.
	(sigint_remote_twice_token): Rename the variable to ...
	(async_sigint_remote_twice_token): ... this.
	(sigint_remote_token): Rename the variable to ...
	(async_sigint_remote_token): ... this.
	(initialize_sigint_signal_handler): Rename the function to ...
	(async_initialize_sigint_signal_handler): ... this.  Update the name
	inside.
	(handle_remote_sigint): Rename the function to ...
	(async_handle_remote_sigint): ... this.  Update the names inside.
	(handle_remote_sigint_twice): Rename the function to ...
	(async_handle_remote_sigint_twice): ... this.  Update the names inside.
	(cleanup_sigint_signal_handler): Rename the function to ...
	(async_cleanup_sigint_signal_handler): ... this.
	(remote_interrupt): Rename the function to ...
	(sync_remote_interrupt): this.  Update the names inside.
	(remote_interrupt_twice): Rename the function to ...
	(sync_remote_interrupt_twice): this.  Update the names inside.
	(remote_terminal_inferior, remote_terminal_ours, remote_wait_as)
	(_initialize_remote): Update the names inside.
2013-08-05 15:03:06 +00:00
Tom Tromey
3a1115a0cc fix PR symtab/15719
This patch fixes PR symtab/15719.

The bug is that "watch -location" crashes on a certain expression.

The problem is that fetch_subexp_value is catching an exception.
For ordinary watchpoints this is ok; but for location watchpoints,
it is better for the exception to propagate.

Built and regtested on x86-64 Fedora 18.
New test case included.

	PR symtab/15719:
	* breakpoint.c (update_watchpoint, watchpoint_check)
	(watch_command_1): Update.
	* eval.c (fetch_subexp_value): Add "preserve_errors"
	parameter.
	* ppc-linux-nat.c (check_condition): Update.
	* value.h (fetch_subexp_value): Update.

	* gdb.base/watchpoint.c (struct foo5): New.
	(nullptr): New global.
	* gdb.base/watchpoint.exp (test_watch_location): Add test.
2013-08-02 16:41:08 +00:00
Andrew Burgess
58b19776a6 Remove duplicate call to add_file_handler.
http://sourceware.org/ml/gdb-patches/2013-08/msg00067.html

This call to add_file_handler is a duplicate of one that is in
gdb_setup_readline that is always executed.

gdb/ChangeLog

        * mi/mi-interp.c (mi_interpreter_resume): Remove call to
        add_file_handler.
2013-08-02 10:31:40 +00:00
Doug Evans
7ee85ab10c PR symtab/15691
* dwarf2read.c (struct dwarf2_per_cu_data): New member tu_read.
	(fill_in_sig_entry_from_dwo_entry): Reorganize asserts.
	Add assert of sig_entry->dwo_unit == NULL.
	(lookup_dwo_signatured_type): Don't assign TU to a DWO if the TU
	had already been read.
	(read_signatured_type): Set per_cu.tu_read.

	testsuite/
	* gdb.dwarf2/fission-mix.exp: New file.
	* gdb.dwarf2/fission-mix.h: New file.
	* gdb.dwarf2/fission-mix.c: New file.
	* gdb.dwarf2/fission-mix2.c: New file.
2013-08-02 00:33:07 +00:00
Doug Evans
b846d303c6 PR symtab/15695
* valops.c (value_struct_elt): Add missing call to check_typedef.
	(value_find_oload_method_list): Ditto.

	testsuite/
	* gdb.base/func-ptr.exp: New file.
	* gdb.base/func-ptr.c: New file.
2013-08-01 23:59:48 +00:00
Doug Evans
b52109bc0c * symtab.c (do_free_search_symbols_cleanup): Change arg to,
effectively, struct symbol_search **.
	(make_cleanup_free_search_symbols): Change arg to struct
	symbol_search **.  All callers updated.
	(compare_search_syms): Compare symtab file name and block as well.
	(search_symbols_equal): New function.
	(sort_search_symbols_remove_dups): Renamed from sort_search_symbols.
	New args new_head, new_tail.  Result is now void.  Remove dups after
	sorting the symbols.
	(search_symbols): Sort all found symbols once, after all have been
	found, and remove duplicates.  Simplify cleanup tracking of result.
	* symtab.h (make_cleanup_free_search_symbols): Update prototype.
2013-08-01 23:47:02 +00:00
Doug Evans
ec94af8326 Further workarounds for binutils/15021.
* dwarf2read.c (recursively_compute_inclusions): Change type of result
	parameter to VEC (symtab_ptr) **.  New parameter all_type_symtabs.
	Watch for duplicate symtabs coming from type units.
	(compute_symtab_includes): Update call to
	recursively_compute_inclusions. Build vector of included symtabs
	instead of per_cus.
	* symtab.h (symtab_ptr): New typedef.
	(DEF_VEC_P (symtab_ptr)): New VEC type.
	* linespec.c (symtab_p): Delete.  All uses updated to use symtab_ptr
	instead.
2013-08-01 23:35:04 +00:00
Andrew Burgess
b2ae85cf8a Remove error_pre_print and quit_pre_print.
http://sourceware.org/ml/gdb-patches/2013-07/msg00844.html

gdb/ChangeLog

        * cli/cli-script.c (script_from_file): Remove use of
        error_pre_print.
        * main.c (captured_main): Remove use of error_pre_print and
        quit_pre_print.
        * utils.c (error_pre_print, quit_pre_print): Remove.
        * utils.h (error_pre_print, quit_pre_print): Likewise.
2013-08-01 09:09:58 +00:00
Yao Qi
645eab03a9 gdb/
* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Parse argv
	with mi_getopt.
	(mi_cmd_stack_list_variables): Likewise.
2013-08-01 06:42:59 +00:00
Yao Qi
67d21849b0 gdb/testsuite/
* gdb.python/py-sync-interp.c: New.
	* gdb.python/py-sync-interp.exp: New.
2013-08-01 06:38:28 +00:00
Andrew Burgess
16f92dd4d4 Remove deprecated_throw_reason.
http://sourceware.org/ml/gdb-patches/2013-07/msg00779.html

gdb/ChangeLog

        * exceptions.c (deprecated_throw_reason): Remove.
        * exceptions.h (deprecated_throw_reason): Remove.
2013-07-31 15:44:52 +00:00
Andrew Burgess
13f78033fc Remove deprecated_throw_reason from mips_error.
http://sourceware.org/ml/gdb-patches/2013-07/msg00777.html

gdb/ChangeLog

        * remote-mips.c (mips_error): Replace use of
        deprecated_throw_reason with throw_verror.  Use the error message
        passed to mips_error as the error message for throw_verror.
2013-07-31 15:36:49 +00:00
Andrew Burgess
039e3c2282 Replace most uses of deprecated_throw_reason with quit.
http://sourceware.org/ml/gdb-patches/2013-07/msg00778.html

gdb/ChangeLog

        * monitor.c (monitor_interrupt_query): Replace use of
        deprecated_throw_reason with quit.
        * nto-procfs.c (interrupt_query): Likewise.
        * remote-fileio.c (remote_fileio_sig_exit): Likewise.
        * remote-mips.c (mips_kill): Likewise.
        * remote.c (interrupt_query): Likewise.
2013-07-31 12:44:33 +00:00
Andrew Burgess
8150913ba7 Remove deprecated_throw_reason from internal_verror.
http://sourceware.org/ml/gdb-patches/2013-07/msg00776.html

gdb/ChangeLog

        * utils.c (internal_verror): Replace use of deprecated_throw_reason
        with call to fatal.
2013-07-31 10:51:42 +00:00
Yao Qi
de74e63a56 gdb/
* tracepoint.c (trace_dump_command): Select the current frame.

gdb/testsuite/

	* gdb.trace/backtrace.exp (gdb_backtrace_tdp_4): Test command
	'tdump' on stack frame 0 and 1 respectively.
2013-07-31 00:44:42 +00:00
Yao Qi
680558e836 gdb/testsuite/
PR gdb/13443
	* gdb.trace/backtrace.exp (gdb_backtrace_tdp_3): Add parameter
	'traceframe'.  Wrap test with with_test_prefix.
	(top level): Update.
2013-07-31 00:38:40 +00:00
Yao Qi
48bbe0bf63 gdb/testsuite/
* gdb.trace/backtrace.exp: Don't invoke 'get_exit' and
	'gdb_start'.
	Invoke 'prepare_for_testing' instead of 'gdb_compile'.
	Use gdb_test_no_output to issue commands 'tstart' and 'tstop'.
2013-07-31 00:36:22 +00:00
Doug Evans
247f5c4f1a * dwarf2read.c (process_queue): Add type signature to debug output. 2013-07-31 00:30:18 +00:00
Andrew Burgess
11b4b7cc1f Don't raise an error for optimized out sub-fields.
http://sourceware.org/ml/gdb-patches/2013-07/msg00317.html

gdb/ChangeLog

        * value.c (value_fetch_lazy): Mark optimized out values as such
        rather than raising an error.

gdb/testsuite/ChangeLog

        * gdb.dwarf2/pieces-optimized-out.exp: Expect "<optimized out>"
        when printing an optimized out value.  Expect an error when using
        an optimized out value in an expression.
2013-07-30 15:36:18 +00:00
Andrew Burgess
b0c54aa509 value_fetch_lazy, ensure parent is not lazy and check parent for validity.
http://sourceware.org/ml/gdb-patches/2013-07/msg00316.html

gdb/ChangeLog

        * value.c (value_fetch_lazy): Ensure parent value is not lazy
        before checking which bits of the parent, not the child, value are
        valid.

gdb/testsuite/ChangeLog

        * gdb.dwarf2/pieces-optimized-out.exp: New file.
        * gdb.dwarf2/pieces-optimized-out.c: New file.
        * gdb.dwarf2/pieces-optimized-out.S: New file.
2013-07-30 15:05:01 +00:00
Muhammad Bilal
97c85fc673 2013-07-30 Muhammad Bilal <mbilal@codesorcery.com>
PR gdb/15715
        * top.c: Include "filenames.h".
        (set_history_filename): New function.
        (init_main): Install it as set hook of the "set history filename"
        command.
2013-07-30  Muhammad Bilal  <mbilal@codesourcery.com>

        PR gdb/15715
        * gdb.base/setshow.exp: Test that relative paths passed to
        'set history filename' are converted to absolute paths.
2013-07-30 12:06:04 +00:00
Sanimir Agovic
ff39bb5eb2 cleanup: constify "struct attribute" function parameter
gdb/

2013-07-30  Sanimir Agovic  <sanimir.agovic@intel.com>

	* dwarf2read.c (dwarf2_get_ref_die_offset): Constify struct
	attribute parameter.
	(dwarf2_const_value_data): Constify struct attribute parameter.
	(dwarf2_const_value): Constify struct attribute parameter.
	(dwarf2_const_value_attr): Constify struct attribute parameter.
	(lookup_die_type): Constify struct attribute parameter.
	(dwarf2_get_attr_constant_value): Constify struct attribute parameter.
	(follow_die_ref_or_sig): Constify struct attribute parameter.
	(follow_die_ref): Constify struct attribute parameter.
	(follow_die_sig): Constify struct attribute parameter.
	(get_DW_AT_signature_type): Constify struct attribute parameter.
	(get_type_unit_group): Constify struct attribute parameter.
	(fill_in_loclist_baton): Constify struct attribute parameter.
	(dwarf2_symbol_mark_computed): Constify struct attribute parameter.
	(type_unit_group): Constify struct attribute parameter.
2013-07-30 08:36:13 +00:00
Sanimir Agovic
6e5a29e1dc cleanup: constify argument passed to dwarf form predicates
2013-07-30  Sanimir Agovic  <sanimir.agovic@intel.com>

gdb/
	* dwarf2read.c (attr_form_is_block): Make argument const.
	(attr_form_is_section_offset): Make argument const.
	(attr_form_is_constant): Make argument const.
	(attr_form_is_ref): Make argument const.
2013-07-30 08:31:36 +00:00
Sanimir Agovic
7771576e28 cleanup: rename is_ref_attr to attr_form_is_ref
2013-07-30  Sanimir Agovic  <sanimir.agovic@intel.com>

gdb/
	* dwarf2read.c (attr_is_ref): Rename to attr_form_is_ref.
	All uses updated.
	(attr_form_is_ref): Moved below attr_form_is_constant.
2013-07-30 08:17:05 +00:00
Doug Evans
bb5291d008 * main.c (captured_command_loop): Tweak comment. 2013-07-29 21:41:30 +00:00
Doug Evans
b5419e49b6 * target.c (target_async_permitted_1): Fix comment. 2013-07-29 21:27:46 +00:00
Doug Evans
b2d231331f * symtab.c (iterate_over_some_symtabs): Add comment. 2013-07-29 20:15:47 +00:00
Doug Evans
a94e8645ac * symtab.c (iterate_over_some_symtabs): Fix indentation. 2013-07-29 20:04:16 +00:00
Yao Qi
7a60ad4017 gdb/gdbserver/
* Makefile.in (SFILES): Add common/mips-linux-watch.c.
	(mips-linux-watch.o): New rule.
	(mips_linux_watch_h): New variable.
	* configure.srv <mips*-*-linux*>: Add mips-linux-watch.o to
	srv_tgtobj.
	* linux-mips-low.c: Include mips-linux-watch.h.
	(struct arch_process_info, struct arch_lwp_info): New.
	(update_watch_registers_callback): New function.
	(mips_linux_new_process, mips_linux_new_thread) New functions.
	(mips_linux_prepare_to_resume, mips_insert_point): New
	functions.
	(mips_remove_point, mips_stopped_by_watchpoint): New
	functions.
	(rsp_bp_type_to_target_hw_bp_type): New function.
	(mips_stopped_data_address): New function.
	(the_low_target): Add watchpoint support functions.

gdb/

	* NEWS: Mention that GDBserver now supports hardware
	watchpoints on the MIPS GNU/Linux target.
2013-07-27 07:59:49 +00:00
Yao Qi
aaee205620 gdb/
* Makefile.in (HFILES_NO_SRCDIR): Add
	common/mips-linux-watch.h.
	(mips-linux-watch.o): New rule.
	* common/mips-linux-watch.c: New.
	* common/mips-linux-watch.h: New.
	* config/mips/linux.mh (NATDEPFILES): Add mips-linux-watch.o
	* mips-linux-nat.c: Include mips-linux-watch.h.
	(W_BIT, R_BIT, I_BIT, W_MASK, R_MASK, I_MASK, IRW_MASK): Move
	to common/mips-linux-watch.h.
	(MAX_DEBUG_REGISTER): Likewise.
	(enum pt_watch_style): Likewise.
	(struct mips32_watch_regs): Likewise.
	(struct mips64_watch_regs): Likewise.
	(struct pt_watch_regs): Likewise.
	(struct mips_watchpoint): Likewise.
	(mips_linux_watch_get_irw_mask): Move to
	common/mips-linux-watch.c.
	(get_reg_mask, mips_linux_watch_get_num_valid): Likewise.
	(mips_linux_watch_get_watchlo): Likewise.
	(mips_linux_watch_set_watchlo): Likewise.
	(mips_linux_watch_get_watchhi): Likewise.
	(mips_linux_watch_set_watchhi): Likewise.
	(mips_linux_read_watch_registers): Likewise.
	(mips_linux_watch_type_to_irw): Likewise.
	(mips_linux_stopped_data_address, fill_mask): Likewise.
	(mips_linux_watch_try_one_watch): Likewise.
	(mips_linux_watch_populate_regs): Likewise.
2013-07-27 07:49:05 +00:00
Yao Qi
b343645045 gdb/
* mips-linux-nat.c (get_irw_mask): Rename to ...
	(mips_linux_watch_get_irw_mask): ... this.  Rename parameter
	'set' to 'n'.  Update function comment.  All callers changed.
	(get_reg_mask): Rename parameter 'set' to 'n'.  Update
	function comment.  All callers changed.
	(get_num_valid): Rename to ...
	(mips_linux_watch_get_num_valid): ... this.  Rename parameter
	'set' to 'n'.  Update function comment.  All callers changed.
	(get_watchlo): Rename to ...
	(mips_linux_watch_get_watchlo): ... this.  Rename parameter
	'set' to 'n'.  Update function comment.  All callers changed.
	(set_watchlo): Rename to ...
	(mips_linux_watch_set_watchlo): ... this.  Rename parameter
	'set' to 'n'.  Update function comment.  All callers changed.
	(get_watchhi): Rename to ...
	(mips_linux_watch_get_watchhi): ... this.  Update function
	comment.  All callers changed.
	(set_watchhi): Rename to ...
	(mips_linux_watch_set_watchhi): ... this.  Update function
	comment.  All callers changed.
	(mips_linux_read_watch_registers): Update function comment.
	Add new parameters 'lwpid', 'watch_readback', and
	'watch_readback_valid'.  Update.
	(type_to_irw): Rename to ...
	(mips_linux_watch_type_to_irw): ... this.  Update function
	comment.  All callers changed.
	(fill_mask): Update function comment.
	(try_one_watch): Rename to ...
	(mips_linux_watch_try_one_watch): ... this.  Change the type
	of parameter 'irw' from 'unsigned' to 'uint32_t'.
	(populate_regs_from_watches): Rename to ...
	(mips_linux_watch_populate_regs): ... this.  Add parameter
	'current_watches'.  All callers changed.
2013-07-27 07:32:40 +00:00
Yao Qi
9be14b813c gdb/
* mips-linux-nat.c (MAX_DEBUG_REGISTER): Move it earlier in
	the code.
	(PTRACE_SET_WATCH_REGS, enum pt_watch_style): Remove.
	(struct mips32_watch_regs, struct mips64_watch_regs): Remove.
	(struct pt_watch_regs): Likewise.
	[!PTRACE_GET_WATCH_REGS] (PTRACE_SET_WATCH_REGS): New macro.
	[!PTRACE_GET_WATCH_REGS] (enum pt_watch_style): New.
	[!PTRACE_GET_WATCH_REGS] (struct mips32_watch_regs): New.
	[!PTRACE_GET_WATCH_REGS] (struct mips64_watch_regs): New.
	[!PTRACE_GET_WATCH_REGS] (struct pt_watch_regs): New.
2013-07-27 07:27:18 +00:00
Yao Qi
de6f69ad33 gdb/
* breakpoint.h: Include break-common.h.
	(enum target_hw_bp_type): Move to ...
	* common/break-common.h: ... here.  New.

gdb/gdbserver/

	* i386-low.c: Include break-common.h.
	(enum target_hw_bp_type): Remove.
2013-07-27 07:11:46 +00:00
Keith Seitz
5b32ae97d7 * gdb.mi/mi-var-child-f.exp: Pass f90 to gdb_compile instead
of f77.
	Allow for compiler variations of integer types.
	Use mi_create_varobj.
	Use mi_list_varobj_children for the immediate children of `array'.
	Add "has_more" attribute for grandchildren test.
2013-07-26 18:15:07 +00:00
Pedro Alves
6f64ef53c0 GDB kills itself instead of interrupting inferior
When GDB is run with IO redirected to a pipe, the 'interrupt' command
causes it to kill its own process group instead of the inferior's.
The problem manifests itself in async mode, native debugging:

    $ cat | gdb <file>
    (gdb) set target-async on
    (gdb) run &
    (gdb) interrupt
    A debugging session is active.
    Inferior 1 [process 20584] will be killed.
    Quit anyway? (y or n) [answered Y; input not from terminal]

In this case, GDB tells that its stdin isn't a tty and doesn't save
the inferior's process group in
inflow.c:terminal_init_inferior_with_pgrp.  The 'interrupt' command
tries to 'kill' the inferior's process group in
`inf-ptrace.c:inf_ptrace_stop`, but since that wasn't saved in the
first place, GDB kills process group 0, meaning, its own process
group.

When GDB is used from a frontend, that means killing its own process
group including the frontend and possibly the X session.  This was
originally seen with SublimeGDB:
  https://github.com/quarnster/SublimeGDB/issues/29.

The patch makes GDB save the inferior pgid regardless of having a
terminal, as pgid is used not only to reset foreground process group,
but also to interrupt the inferior process.  It also adds a regression
test.  Luckily, we can emulate not having a terminal with "set
interactive-mode off", avoiding the need of special magic to spawn gdb
with a pipe.

Tested on x86_64 Fedora 17.

gdb/
2013-07-26  Cyril Nikolaev  <cyril@nichtverstehen.de>

	* inflow.c (terminal_init_inferior_with_pgrp): Save inferior
	process group regardless of having tty on stdin.

gdb/testsuite/
2013-07-26  Pedro Alves  <palves@redhat.com>

	* gdb.base/interrupt-noterm.c, gdb.base/interrupt-noterm.exp: New
	files.
2013-07-26 11:15:45 +00:00
Doug Evans
6107e80937 * linux-fork.h (detach_fork): Delete. 2013-07-25 20:53:07 +00:00
Tom Tromey
7fdc15218d remove pop_target
This patch fixes the target double-close problem (PR remote/15266),
and in the process removes pop_target entire (PR remote/15256).

The first issue is that pop_target calls target_close.  However, it
then calls unpush_target, which also calls target_close.  This means
targets must be able to be closed twice.  Not only is this strange,
but it also directly contradicts the contract of to_xclose targets.
(We currently have just a single such target, and it is never pushed;
but I plan to add more, and so this latent bug is triggered.)

The second issue is that it seems to me that calling pop_target is
often unsafe.  This is what cropped up in 15256, where the remote
target assumed that it could pop_target -- but there was another
target higher on the stack, leading to confusion.

But, it is always just as easy to call unpush_target as it is to call
pop_target; and it is also safer.  So, removing pop_target seemed like
an improvement.

Finally, this adds an assertion to target_close to ensure that no
currently-pushed target can be closed.

Built and regtested on x86-64 Fedora 18; both natively and using the
native-gdbserver board file.

	PR remote/15256, PR remote/15266:
	* bfd-target.c (target_bfd_reopen): Initialize to_magic.
	* monitor.c (monitor_detach): Use unpush_target.
	* remote-m32r-sdi.c (m32r_detach): Use unpush_target.
	* remote-mips.c (mips_detach): Use unpush_target.  Don't
	call mips_close.
	* remote-sim.c (gdbsim_detach): Use unpush_target.
	* target.c (pop_target): Remove.
	(pop_all_targets_above): Don't call target_close.
	(target_close): Assert that the target is unpushed.
	* target.h (pop_target): Don't declare.
	* tracepoint.c (tfile_open): Use unpush_target.
2013-07-25 14:34:51 +00:00
Tom Tromey
c22a2b88fe don't call add_target for thread_db_ops
Right now, "help target" will include this line:

    target multi-thread -- Threads and pthreads support

However, it doesn't make sense to invoke "target multi-thread".

This patch fixes the problem by not registering the multi-thread
target.  add_target does some needed initialization of the target_ops,
so I broke this out into a new function.

It isn't clear to me whether this patch requires a test case or not.
I'm not sure whether there are other unregistered targets; but if
there are, it seems unlikely that we test for their absence from the
help.

Built and regtested on x86-64 Fedora 18.

	* linux-thread-db.c (init_thread_db_ops): Call
	complete_target_initialization.
	(_initialize_thread_db): Don't call add_target.
	* target.c (complete_target_initialization): New function.
	(add_target_with_completer): Call it.
	* target.h (complete_target_initialization): Declare.
2013-07-25 14:28:15 +00:00
Mark Kettenis
cbb6aada97 2013-07-25 Mark Kettenis <kettenis@gnu.org>
* hppa-tdep.h (enum hppa_regnum): Add members for all space registers.
        * hppaobsd-tdep.c (HPPAOBSD_SIZEOF_GREGS): Add comment.
        (HPPANBSD_SIZEOF_GREGS): New define.
        (hppaobsd_supply_gregset): Handle additional registers.
        * hppabsd-nat.c (hppabsd_gregset_supplies_p): Adjust to indicate
        we provide more registers now.
        (hppabsd_supply_gregset): Supply additional registers.
        (hppabsd_collect_gregset): Collect additional registers.
2013-07-25 12:10:44 +00:00
Mark Kettenis
177679881e 2013-07-25 Mark Kettenis <kettenis@gnu.org>
* hppabsd-tdep.c: Include "dwarf2-frame.h".
        (hppabsd_dwarf2_frame_init_reg): New function.
        (hppabsd_init_abi): Hook in the DWARF CFI frame unwinder.
2013-07-25 12:05:01 +00:00
Andrew Burgess
fdc8aae848 Resue 'z' formatter from mi register display code.
http://sourceware.org/ml/gdb-patches/2013-07/msg00236.html

gdb/ChangeLog

        * mi/mi-main.c (output_register): Make MI 'r' format use standard
        'z' format code.  Remove error for optimized out values, standard
        code will handle these fine.

gdb/testsuite/ChangeLog

        * gdb.mi/mi-reg-undefined.exp: New file.
        * gdb.mi/mi-reg-undefined.c: Likewise.
        * gdb.mi/mi-reg-undefined.S: Likewise.
2013-07-25 10:39:39 +00:00
Andrew Burgess
6fbe845e0c Add new 'z' format for print command.
http://sourceware.org/ml/gdb-patches/2013-07/msg00235.html

gdb/ChangeLog

        * NEWS: Mention new 'z' formatter.
        * printcmd.c (print_scalar_formatted): Add new 'z' formatter.
        (_initialize_printcmd): Mention 'z' formatter in help text of the
        'x' command.

gdb/doc/ChangeLog

        * gdb.texinfo (Output Formats): Mention the new 'z' formatter.

gdb/testsuite/ChangeLog

        * gdb.base/printcmds.exp (test_print_int_arrays): Add tests for x,
        z, o, and t output formats.
        * gdb.base/display.exp: Use 'k' as an undefined format now that
        'z' is defined.
2013-07-25 10:16:08 +00:00
Maciej W. Rozycki
3373342d64 * mips-tdep.c (micromips_deal_with_atomic_sequence): Correct
formatting.
2013-07-24 22:23:12 +00:00
Doug Evans
7b79b135b2 * boards/native-stdio-gdbserver.exp (${board}_build_remote_cmd): Pass
"--" to switch.
2013-07-24 21:59:30 +00:00
Sergio Durigan Junior
25f9533e51 2013-07-24 Sergio Durigan Junior <sergiodj@redhat.com>
* breakpoint.c (create_longjmp_master_breakpoint): Check if probe
	interface can evaluate arguments.  Fallback to the old mode if it
	cannot.
	(create_exception_master_breakpoint): Likewise.
	* elfread.c (elf_can_evaluate_probe_arguments): New function.
	(struct sym_probe_fns elf_probe_fns): Export function above to the
	probe interface.
	* probe.c (can_evaluate_probe_arguments): New function.
	* probe.h (struct probe_ops) <can_evaluate_probe_arguments>: New
	function pointer.
	(can_evaluate_probe_arguments): New function prototype.
	* solib-svr4.c (svr4_create_solib_event_breakpoints): Check if
	probe interface can evaluate arguments.  Fallback to the old mode
	if it cannot.
	* stap-probe.c (stap_get_probe_argument_count): Check if probe
	interface can evaluate arguments.  Warning the user if it cannot.
	(stap_can_evaluate_probe_arguments): New function.
	(struct probe_ops stap_probe_ops): Export function above to the
	probe interface.
	* symfile.h (struct sym_probe_fns) <can_evaluate_probe_arguments>:
	New function pointer.
2013-07-24 19:50:32 +00:00