Commit Graph

88432 Commits

Author SHA1 Message Date
GDB Administrator
fa549b9484 Automatic date update in version.in 2016-10-07 00:00:28 +00:00
Sergio Durigan Junior
1fb77080fd Consolidate API of target_supports_multi_process
This simple commit consolidates the API of
target_supports_multi_process.  Since both GDB and gdbserver use the
same function prototype, all that was needed was to move create this
prototype on gdb/target/target.h and turn the macros declared on
gdb/{,gdbserver/}target.h into actual functions.

Regtested (clean pass) on the BuildBot.

gdb/ChangeLog:
2016-10-06  Sergio Durigan Junior  <sergiodj@redhat.com>

	* target.c (target_supports_multi_process): New function, moved
	from...
	* target.h (target_supports_multi_process): ... here.  Remove
	macro.
	* target/target.h (target_supports_multi_process): New prototype.

gdb/gdbserver/ChangeLog:
2016-10-06  Sergio Durigan Junior  <sergiodj@redhat.com>

	* target.c (target_supports_multi_process): New function, moved
	from...
	* target.h (target_supports_multi_process): ... here.  Remove
	macro.
2016-10-06 17:00:53 -04:00
Pedro Alves
ddb6d63387 gdb: Remove some C compiler support leftovers
Remove some __cplusplus checks, inline EXPORTED_CONST, and update some comments.

gdb/ChangeLog:
2016-10-06  Pedro Alves  <palves@redhat.com>

	* cp-valprint.c (vtbl_ptr_name): Write "extern const" instead of
	EXPORTED_CONST.
	* stub-termcap.c: Remove __cplusplus checks.
	* common/common-defs.h [!__cplusplus] (EXTERN_C, EXTERN_C_PUSH,
	EXTERN_C_POP): Delete.
	* common/common-exceptions.h (GDB_XCPT_SJMP): Update comments.
	(GDB_XCPT) [!__cplusplus]: Delete.
	(throw_exception, throw_exception_sjlj): Update comments.
	* guile/guile-internal.h (as_a_scm_t_subr) [!__cplusplus]: Delete.
	* guile/guile.c (extension_language_guile): Write "extern const"
	instead of EXPORTED_CONST.
	* features/feature_to_c.sh: Don't emit !__cplusplus code.  Write
	"extern const" instead of EXPORTED_CONST.
2016-10-06 19:23:37 +01:00
Doug Evans
33fa2c6e1b Fix gdb.Value->python conversion for large unsigned ints.
gdb/ChangeLog:

	* python/py-value.c (valpy_long): Handle unsigned values.

gdb/testsuite/ChangeLog:

	* gdb.python/py-value.exp (test_value_creation): Add test for large
	unsigned 64-bit value.
2016-10-06 10:41:27 -07:00
Simon Marchi
d73f9c4bab frame.h: Forward-declare struct ui_out
Fixes this failure when building in C mode.  I think it's relevant for master
as well, since it's a good practice to include (or forward-declare) what you
use.

In file included from ../../binutils-gdb/gdb/gdbarch.h:38:0,
                 from ../../binutils-gdb/gdb/defs.h:653,
                 from ../../binutils-gdb/gdb/dictionary.c:23:
../../binutils-gdb/gdb/frame.h:710:48: warning: ‘struct ui_out’ declared inside parameter list will not be visible outside of this definition or declaration
 extern void print_stack_frame_to_uiout (struct ui_out *uiout,

gdb/ChangeLog:

	* frame.h: Forward-declare struct ui_out.
2016-10-06 13:01:38 -04:00
Tom Tromey
9c37b5aed9 Remove Java support
This patch removes the Java support from gdb.  gcj has not seen much
development or use for years now, and was recently removed from GCC.
This patch changes gdb to follow; in the unlikely event that there are
still users using gcj, they can continue to use an older gdb to debug.
Or, they can debug in C++ mode.

Built and regtested on x86-64 Fedora 24.

2016-10-06  Tom Tromey  <tom@tromey.com>

	* MAINTAINERS: Remove Java test maintainer.
	* varobj.h (java_varobj_ops): Don't declare.
	* valprint.h (struct value_print_options)
	<pascal_static_field_print>: Update comment.
	* utils.c (producer_is_gcc): Remove java reference.
	* symtab.h (struct general_symbol_info): Remove java references.
	(SYMBOL_SEARCH_NAME): Likewise.
	* objfiles.c (allocate_objfile): Update comment.
	* linespec.c (find_linespec_symbols): Remove java references.
	* gnu-v3-abi.c (gnuv3_rtti_type, gnuv3_baseclass_offset): Remove
	java references.
	* gdbtypes.h (struct cplus_struct_type) <is_java>: Remove.
	(TYPE_CPLUS_REALLY_JAVA): Remove.
	* c-varobj.c (enum vsections): Update comment.
	* symtab.c (symbol_set_language, symbol_set_names)
	(symbol_natural_name, symbol_demangled_name)
	(demangle_for_lookup, symbol_matches_domain)
	(default_make_symbol_completion_list_break_on_1): Remove java
	references.
	(JAVA_PREFIX, JAVA_PREFIX_LEN): Remove.
	* psymtab.c (match_partial_symbol, psymtab_search_name)
	(lookup_partial_symbol): Remove java references.
	* dwarf2read.c (find_slot_in_mapped_hash): Remove java references.
	(add_partial_symbol, dwarf2_compute_name, dwarf2_physname)
	(dwarf2_add_member_fn, is_vtable_name, read_structure_type)
	(process_structure_scope, read_subroutine_type)
	(read_subrange_type, load_partial_dies)
	(new_symbol_full, determine_prefix, typename_concat)
	(dwarf2_name): Remove java references.
	(set_cu_language): Treat Java as C++.
	* c-typeprint.c (c_type_print_args): Remove java reference.
	* defs.h (enum language) <language_java>: Remove.
	* Makefile.in (SFILES, HFILES_NO_SRCDIR, COMMON_OBS, YYFILES)
	(YYOBJ, local-maintainer-clean): Don't mention java files.
	* jv-exp.y, jv-lang.c, jv-lang.h, jv-typeprint.c, jv-valprint.c,
	jv-varobj.c: Remove.

2016-10-06  Tom Tromey  <tom@tromey.com>

	* guile.texi (Types In Guile): Remove Java mentions.
	* python.texi (Types In Python): Remove Java mentions.
	* gdb.texinfo (Address Locations, Supported Languages)
	(Index Section Format): Remove Java mentions.

2016-10-06  Tom Tromey  <tom@tromey.com>

	* gdb.compile/compile.exp: Change java tests to rust.
	* gdb.base/setshow.exp: Change java tests to rust.
	* gdb.base/default.exp: Remove java from language list.
	* README (Examples): Update language example.
	* gdb.python/py-lookup-type.exp (test_lookup_type): Remove java
	test.
	* lib/gdb.exp (skip_java_tests): Remove.
	* lib/java.exp: Remove.
	* gdb.java: Remove.
2016-10-06 10:10:40 -06:00
Maciej W. Rozycki
78b86327b5 mips-tdep: Make FCRs always 32-bit
Fix a regression from commit f8b73d13b7 ("Target-described register
support for MIPS"),
<https://sourceware.org/ml/gdb-patches/2007-05/msg00340.html>,
<https://sourceware.org/ml/gdb-patches/2007-06/msg00256.html>, which
caused Floating Point Control Registers (FCRs) to be shown as 64-bit
with 64-bit targets.

This came from the legacy register format where all raw registers
matched the width of the architecture regardless of their actual size.
The correct size was then set in `mips_register_type' for cooked
registers presented to the user, which in the case of FCRs meant the
cooked size was always forced to 32 bits, reflecting their actual
hardware size, even though the raw format carried them in 64-bit
quantities on 64-bit targets.  The upper 32 bits carried in the raw FCR
format have always been don't-cares, not actually retrieved from
hardware and never written back.

With the introduction of XML register descriptions the layout of
previously defined raw registers has been preserved, so as to keep
existing register handling code unchanged and make it easier for GDB and
`gdbserver' to interact with each other whether neither, either or both
parties talking over RSP support XML register descriptions.  For the
XML-described case however `mips_register_type' is not used in raw to
cooked register conversion, so any special cases coded there are not
taken into account.

Instead a new function, `mips_pseudo_register_type', has been introduced
to handle size conversion, however lacking the special case for FCRs for
the Linux and the now defunct IRIX target.  The correct size has been
maintained for embedded targets however, due to the bundling of FCRs
with the embedded registers under the `rawnum >= MIPS_EMBED_FP0_REGNUM +
32' condition.

Add the missing case to `mips_pseudo_register_type' then, referring to
the FCR indices explicitly, and observing that between
`MIPS_EMBED_FP0_REGNUM + 32' and `MIPS_FIRST_EMBED_REGNUM' there is an
unused register slot whose contents are ignored so with the removal of
embedded FCRs from under that condition we don't have to care about it
and we can refer to the embedded registers starting from
MIPS_FIRST_EMBED_REGNUM instead.

Add a test case too so that we have means to check automatically that
the correct user-visible size of FCRs is maintained.

	gdb/
	* mips-tdep.c (mips_pseudo_register_type): Make FCRs always
	32-bit.

	gdb/testsuite/
	* gdb.arch/mips-fcr.exp: New test.
	* gdb.arch/mips-fcr.c: Source for the new test.
2016-10-06 16:56:57 +01:00
Maciej W. Rozycki
a6912260f8 mips-tdep: Rearrange comments in `mips_pseudo_register_type'
Rearrange comments throughout `mips_pseudo_register_type', placing them
ahead the condtionals they apply to consistently.

	gdb/
	* mips-tdep.c (mips_pseudo_register_type): Rearrange comments
	throughout.
2016-10-06 16:54:29 +01:00
Claudiu Zissulescu
08ec958fe0 [ARC] Fix parsing leave_s and enter_s mnemonics.
gas/
2016-10-06  Claudiu Zissulescu  <claziss@synopsys.com>

	* testsuite/gas/arc/leave_enter.d: New file.
	* testsuite/gas/arc/leave_enter.s: Likewise.
	* testsuite/gas/arc/regnames.d: Likewise.
	* testsuite/gas/arc/regnames.s: Likewise.
	* config/tc-arc.c (arc_parse_name): Don't match reg names against
	confirmed symbol names.
2016-10-06 17:01:59 +02:00
Maciej W. Rozycki
7470adbb87 testsuite: solib-disc: Use `standard_output_file'
Correct a commit 2151ccc56c ("Always organize test artifacts in a
directory hierarchy") regression causing:

Running .../gdb/testsuite/gdb.base/solib-disc.exp ...
gdb compile failed, Assembler messages:
Fatal error: can't create .../gdb/testsuite/gdb.base/so-disc-shr.c.o: No such file or directory

by using `standard_output_file' to construct output file names
throughout.

	gdb/testsuite/
	* gdb.base/solib-disc.exp: Use `standard_output_file'
	throughout.
2016-10-06 15:15:54 +01:00
Ludovic Court?s
249471c08a Add workaround for bash 4.2 scripting problem.
* emulparams/elf32bmipn32-defs.sh: Shift quote of
	"x$EMULATION_NAME" to the left to work around
	<http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-007>.
2016-10-06 13:49:09 +01:00
Markus Metzger
c620c3e48d stack: fix gdb.dwarf2/dw2-undefined-ret-addr.exp regression
Commit a038fa3e14 stack: check frame_unwind_caller_id adds a frame_id check to
frame_info and treats a missing frame_id as NOT_AVAILABLE_ERROR.  This causes a
regression in gdb.dwarf2/dw2-undefined-ret-addr.exp.

Treat a missing frame_id as OPTIMIZED_OUT_ERROR instead.

See also https://sourceware.org/ml/gdb-patches/2016-07/msg00273.html.
2016-10-06 14:32:44 +02:00
Alan Modra
fcddde94ee -Wimplicit-fallthrough dodgy fixes
The comment logically belongs inside the preprocessor conditional,
but gcc's -Wimplicit-fallthrough loses track of it.  Revert when/if
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77817 is fixed.

	* app.c (do_scrub_chars): Move fall through comment.
	* expr.c (operand): Likewise.
2016-10-06 22:49:38 +10:30
Alan Modra
b781683b71 Add fall through comment to source in cpu/
I edited opcodes/mep-asm.c in 1a0670f3 without noticing it was a
generated file.

	* mep.opc (expand_string): Add fall through comment.
2016-10-06 22:48:37 +10:30
Alan Modra
c25aa1e114 [GOLD] two more fall-through comments
* powerpc.cc (Target_powerpc::Relocate::relocate): Add fall
	through comment.
	* tilegx.cc (Target_tilegx::Relocate::relocate): Likewise.
2016-10-06 22:48:14 +10:30
Pedro Alves
4a556533cf Fix PR11094: JIT breakpoint is not properly recreated on reruns
Even though this was supposedly in the gdb 7.2 timeframe, the testcase
in PR11094 crashes current GDB with a segfault:

  Program received signal SIGSEGV, Segmentation fault.
  0x00000000005ee894 in event_location_to_string (location=0x0) at
  src/gdb/location.c:412
  412       if (EL_STRING (location) == NULL)
  (top-gdb) bt
  #0  0x00000000005ee894 in event_location_to_string (location=0x0) at
  src/gdb/location.c:412
  #1  0x000000000057411a in print_breakpoint_location (b=0x18288e0, loc=0x0) at
  src/gdb/breakpoint.c:6201
  #2  0x000000000057483f in print_one_breakpoint_location (b=0x18288e0,
  loc=0x182cf10, loc_number=0, last_loc=0x7fffffffd258, allflag=1)
      at src/gdb/breakpoint.c:6473
  #3  0x00000000005751e1 in print_one_breakpoint (b=0x18288e0,
  last_loc=0x7fffffffd258, allflag=1) at
  src/gdb/breakpoint.c:6707
  #4  0x000000000057589c in breakpoint_1 (args=0x0, allflag=1, filter=0x0) at
  src/gdb/breakpoint.c:6947
  #5  0x0000000000575aa8 in maintenance_info_breakpoints (args=0x0, from_tty=0)
  at src/gdb/breakpoint.c:7026
  [...]

This is GDB trying to print the location spec of the JIT event
breakpoint, but that's an internal breakpoint without one.

If I add a NULL check, then we see that the JIT breakpoint is now
pending (because its location has shlib_disabled set):

  (gdb) maint info breakpoints
  Num     Type           Disp Enb Address            What
  [...]
  -8      jit events     keep y   <PENDING>           inf 1
  [...]

But that's incorrect.  GDB should have managed to recreate the JIT
breakpoint's location for the second run.  So the problem is
elsewhere.

The problem is that if the JIT loads at the same address on the second
run, we never recreate the JIT breakpoint, because we hit this early
return:

  static int
  jit_breakpoint_re_set_internal (struct gdbarch *gdbarch,
				  struct jit_program_space_data *ps_data)
  {
    [...]
    if (ps_data->cached_code_address == addr)
      return 0;

    [...]
      delete_breakpoint (ps_data->jit_breakpoint);
    [...]
    ps_data->jit_breakpoint = create_jit_event_breakpoint (gdbarch, addr);

Fix this by deleting the breakpoint and discarding the cached code
address when the objfile where the previous JIT breakpoint was found
is deleted/unloaded in the first place.

The test that was originally added for PR11094 doesn't trip on this
because:

  #1 - It doesn't test the case of the JIT descriptor's address _not_
       changing between reruns.

  #2 - And then it doesn't do "maint info breakpoints", or really
       anything with the JIT at all.

  #3 - and even then, to trigger the problem the JIT descriptor needs
       to be in a separate library, while the current test puts it in
       the main program.

The patch extends the test to cover all combinations of these
scenarios.

gdb/ChangeLog:
2016-10-06  Pedro Alves  <palves@redhat.com>

	* jit.c (free_objfile_data): Delete the JIT breakpoint and clear
	the cached code address.

gdb/testsuite/ChangeLog:
2016-10-06  Pedro Alves  <palves@redhat.com>

	* gdb.base/jit-simple-dl.c: New file.
	* gdb.base/jit-simple-jit.c: New file, factored out from ...
	* gdb.base/jit-simple.c: ... this.
	* gdb.base/jit-simple.exp (jit_run): Delete.
	(build_jit): New proc.
	(jit_test_reread): Recompile either the main program or the shared
	library, depending on what is being tested.  Skip changing address
	if caller wants to.  Compare before/after addresses.  If testing
	standalone, explicitly load the binary.  Test "maint info
	breakpoints".
	(top level): Add "standalone vs shared lib" and "change address"
	vs "same address" axes.
2016-10-06 12:53:52 +01:00
Pedro Alves
5a122fbc30 Fix a few gdb.base/jit-simple.exp problems
I noticed that we sometimes get this:

  (gdb) print &__jit_debug_descriptor
  $1 = (struct jit_descriptor *) 0x601040 <__jit_debug_descriptor>
  (gdb) PASS: gdb.base/jit-simple.exp: blah 1
  [...]
  (gdb) run
  [...]
  Starting program: build/gdb/testsuite/outputs/gdb.base/jit-simple/jit-simple
  Unsupported JIT protocol version 4 in descriptor (expected 1)

  Breakpoint 2, main () at src/gdb/testsuite/gdb.base/jit-simple.c:36
  36        return 0;
  (gdb) print &__jit_debug_descriptor
  $2 = (struct jit_descriptor *) 0x601040 <__jit_debug_descriptor>
  (gdb) PASS: gdb.base/jit-simple.exp: blah 1

All tests PASSed, but note the "Unsupported JIT protocol version 4"
message.

Also notice that "__jit_debug_descriptor" has the same address before
and after the rerun, while the test is built in a way that should make
that address change between runs.

The test doesn't catch any of this because it doesn't compare
before/after addresses.

And then notice the "blah 1" test messages.  "blah" is clearly a WIP
message, but it should be at least "blah 2" the second time.  :-)

The reason this sometimes happens is that the test recompiles the
program and expects gdb to reload it automaticallyt on "run".  However,
if the original program and the new recompilation happen to be in the
same second, then gdb does not realize that the binary needs to be
reloaded.  (This is an old problem out of scope of this series.)  If
that happens, then GDB ends up using the wrong symbols for the program
that it spawns, reads the JIT descriptor out of the wrong address,
finds garbage, and prints that "unsupported version" notice.

Fix that in the same way gdb.base/reread.exp handles it -- by sleeping
one second before recompiling.

gdb/testsuite/ChangeLog:
2016-10-06  Pedro Alves  <palves@redhat.com>

	* gdb.base/jit-simple.exp (top level) Delete get_compiler_info
	call.
	(jit_run): Delete.
	(jit_test_reread): Use with_test_prefix.  Reload the main binary
	explicitly.  Compare the before/after addresses of the JIT
	descriptor.
2016-10-06 12:53:51 +01:00
Tom Tromey
6bd7996d3d Remove redundant assignment in gprof.
PR gprof/20656
	* source.c (annotate_source): Delete redundant assignment to
	new_line.
2016-10-06 12:51:47 +01:00
Matthew Fortune
3d3424e9a8 Refine .cfi_sections check to only consider compact eh_frame
The .cfi_sections directive can be safely used multiple times
with different sections named at any time unless the compact form
of exception handling is requested after CFI information has
been emitted.  Only the compact form of CFI information changes
the way in which CFI is generated and therefore cannot be
retrospectively requested after generating CFI information.

gas/

	PR gas/20648
	* dw2gencfi.c (dot_cfi_sections): Refine the check for
	inconsistent .cfi_sections to only consider compact vs non
	compact forms.
	* testsuite/gas/cfi/cfi-common-9.d: New file.
	* testsuite/gas/cfi/cfi-common-9.s: New file.
	* testsuite/gas/cfi/cfi.exp: Run new test.
2016-10-06 12:46:09 +01:00
Doug Evans
ee8da4b839 Make "end" field in feature specs required again.
Newer gdbservers may be talking to older gdbs,
and older gdbs will flag a missing "end" as an error.
So just make "end" required again, and for compatibility
change the default field type to "bool".

gdb/ChangeLog:
2016-10-06  Doug Evans  <dje@google.com>

	* features/aarch64-core.xml (cpsr_flags): Elide "type" and specify
	"end" in all fields.
	* features/aarch64.c: Regenerate.
	* features/i386/32bit-mpx.xml (_bndcfgu): Specify type of "preserved"
	and "enabled" fields. Correct size of "enabled" field.
	* features/i386/64bit-mpx.xml (_bndcfgu): Specify type of "preserved"
	and "enabled" fields.
	* features/i386/i386-avx-mpx-linux.c: Regenerate.
	* features/i386/i386-avx-mpx.c: Regenerate.
	* features/i386/i386-avx512-linux.c: Regenerate.
	* features/i386/i386-avx512.c: Regenerate.
	* features/i386/i386-mpx-linux.c: Regenerate.
	* features/i386/i386-mpx.c: Regenerate.
	* features/arc-arcompact.c: Regenerate.
	* features/arc-v2.c: Regenerate.
	* xml-tdesc.c (tdesc_start_field): Require "end" spec.  Single bit
	fields default to "bool" type.

	Revert 2016-03-15  Doug Evans  <dje@google.com>
	* features/i386/32bit-core.xml (i386_eflags): Remove "end" spec.
	* features/i386/32bit-sse.xml (i386_eflags): Ditto.
	* features/i386/64bit-core.xml (i386_eflags): Ditto.
	* features/i386/64bit-sse.xml (i386_eflags): Ditto.
	* features/i386/x32-core.xml (i386_eflags): Ditto.

gdb/doc/ChangeLog:
2016-10-06  Doug Evans  <dje@google.com>

	* gdb.texinfo (Target Description Format): Update docs on "end"
	field spec and field default type.

gdb/testsuite/ChangeLog:
2016-10-06  Doug Evans  <dje@google.com>

	* gdb.xml/extra-regs.xml: Update, end field now required, default type
	for single bitfields is bool.
	* gdb.xml/tdesc-regs.exp: Ditto.
2016-10-06 12:12:33 +01:00
GDB Administrator
3ac6b810d1 Automatic date update in version.in 2016-10-06 00:00:20 +00:00
Alan Modra
1a0670f374 -Wimplicit-fallthrough warning fixes
Comment changes.

bfd/
	* coff-h8300.c: Spell fall through comments consistently.
	* coffgen.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-score.c: Likewise.
	* elf32-score7.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elfxx-aarch64.c: Likewise.
	* elfxx-mips.c: Likewise.
	* cpu-ns32k.c: Add missing fall through comments.
	* elf-m10300.c: Likewise.
	* elf32-arm.c: Likewise.
	* elf32-avr.c: Likewise.
	* elf32-bfin.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-microblaze.c: Likewise.
	* elf32-nds32.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-rl78.c: Likewise.
	* elf32-rx.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-tic6x.c: Likewise.
	* elf64-ia64-vms.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elflink.c: Likewise.
	* elfnn-aarch64.c: Likewise.
	* elfnn-ia64.c: Likewise.
	* ieee.c: Likewise.
	* oasys.c: Likewise.
	* pdp11.c: Likewise.
	* srec.c: Likewise.
	* versados.c: Likewise.
opcodes/
	* aarch64-opc.c: Spell fall through comments consistently.
	* i386-dis.c: Likewise.
	* aarch64-dis.c: Add missing fall through comments.
	* aarch64-opc.c: Likewise.
	* arc-dis.c: Likewise.
	* arm-dis.c: Likewise.
	* i386-dis.c: Likewise.
	* m68k-dis.c: Likewise.
	* mep-asm.c: Likewise.
	* ns32k-dis.c: Likewise.
	* sh-dis.c: Likewise.
	* tic4x-dis.c: Likewise.
	* tic6x-dis.c: Likewise.
	* vax-dis.c: Likewise.
binutils/
	* dlltool.c: Spell fall through comments consistently.
	* objcopy.c: Likewise.
	* readelf.c: Likewise.
	* dwarf.c: Add missing fall through comments.
	* elfcomm.c: Likewise.
	* sysinfo.y: Likewise.
	* readelf.c: Likewise.  Also remove extraneous comments.
gas/
	* app.c: Add missing fall through comments.
	* dw2gencfi.c: Likewise.
	* expr.c: Likewise.
	* config/tc-alpha.c: Likewise.
	* config/tc-arc.c: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-cr16.c: Likewise.
	* config/tc-crx.c: Likewise.
	* config/tc-dlx.c: Likewise.
	* config/tc-h8300.c: Likewise.
	* config/tc-hppa.c: Likewise.
	* config/tc-i370.c: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-m68hc11.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-mep.c: Likewise.
	* config/tc-metag.c: Likewise.
	* config/tc-microblaze.c: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-rx.c: Likewise.
	* config/tc-score.c: Likewise.
	* config/tc-score7.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-tic4x.c: Likewise.
	* config/tc-vax.c: Likewise.
	* config/tc-xstormy16.c: Likewise.
	* config/tc-z80.c: Likewise.
	* config/tc-z8k.c: Likewise.
	* config/obj-elf.c: Likewise.
	* config/tc-i386.c: Likewise.
	* depend.c: Spell fall through comments consistently.
	* config/tc-arm.c: Likewise.
	* config/tc-d10v.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-ia64.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-mep.c: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-visium.c: Likewise.
	* config/tc-xstormy16.c: Likewise.
	* config/tc-z8k.c: Likewise.
gprof/
	* gprof.c: Add missing fall through comments.
ld/
	* lexsup.c: Spell fall through comments consistently and add
	missing fall through comments.
2016-10-06 10:13:15 +10:30
Alan Modra
1e0f0b4d01 -Wimplicit-fallthrough noreturn fixes
binutils/
	* cxxfilt.c (usage): Add ATTRIBUTE_NORETURN.
	* elfedit.c (usage): Likewise.
	* nm.c (usage): Likewise.
	* objcopy.c (copy_usage, strip_usage): Likewise.
	* srconv.c (show_usage): Likewise.
	* strings.c (usage): Likewise.
	* sysdump.c (show_usage): Likewise.
	* srconv.c: Remove unneeded forward function declarations.
	* strings.c: Likewise.
	* sysdump.c: Likewise.
gas/
	* as.h (as_assert): Add ATTRIBUTE_NORETURN.
2016-10-06 09:40:30 +10:30
Alan Modra
2b80414579 -Wimplicit-fallthrough error fixes
Well, not all are errors, but a little more substantive than just
fiddling with comments.

bfd/
	* coffcode.h (coff_slurp_symbol_table): Revert accidental commit
	made 2015-01-08.
	* elf32-nds32.c (nds32_elf_grok_psinfo): Add missing break.
	* reloc.c (bfd_default_reloc_type_lookup): Add missing breaks.
opcodes/
	* arc-ext.c (create_map): Add missing break.
	* msp430-decode.opc (encode_as): Likewise.
	* msp430-decode.c: Regenerate.
binutils/
	* coffdump.c (dump_coff_where): Add missing break.
	* stabs.c (stab_xcoff_builtin_type): Likewise.
gas/
	* config/tc-arc.c (find_opcode_match): Add missing break.
	* config/tc-i960.c (get_cdisp): Likewise.
	* config/tc-metag.c (parse_swap, md_apply_fix): Likewise.
	* config/tc-mt.c (md_parse_option): Likewise.
	* config/tc-nds32.c (nds32_apply_fix): Likewise.
	* config/tc-hppa.c (pa_ip): Assert rather than testing last
	condition of multiple if statements.
	* config/tc-s390.c (s390_exp_compare): Return 0 on error.
	* config/tc-tic4x.c (tic4x_operand_parse): Add as_bad and break
	out of case rather than falling into next case.  Formatting.
ld/
	* plugin.c (asymbol_from_plugin_symbol): Avoid compiler warning
	by adding return.
2016-10-06 09:39:56 +10:30
Alan Modra
d8e9025191 [GOLD] -Wimplicit-fallthrough warning fixes
* aarch64.cc: Spell fall through comments as "// Fall through.".
	* arm.cc: Likewise.
	* mips.cc: Likewise.
	* powerpc.cc: Likewise.
	* s390.cc: Likewise.
	* sparc.cc: Likewise.
	* x86_64.cc: Likewise.
	* powerpc.cc (Target_powerpc::Relocate::relocate): Add missing
	fall through comments.
	* sparc.cc: (Target_sparc::Scan::global): Likewise.
	(Target_sparc::Relocate::relocate): Likewise.
	* tilegx.cc (Target_tilegx::Relocate::relocate): Likewise.
	* resolve.cc (symbol_to_bits): Add missing break.
2016-10-06 09:36:33 +10:30
Alan Modra
95e61695c1 bison warning fixes
* config/rl78-parse.y: Don't use deprecated %name-prefix.
	* config/rx-parse.y: Likewise.
2016-10-06 09:36:33 +10:30
Alan Modra
616ec3583b Don't use boolean OR in arithmetic expressions
bfd/
	* elf32-epiphany.c (epiphany_final_link_relocate): Use bitwise
	OR in arithmetic expression, not boolean OR.
opcodes/
	* cr16-dis.c (print_insn_cr16): Don't use boolean OR in arithmetic.
	* crx-dis.c (print_insn_crx): Likewise.
2016-10-06 09:36:33 +10:30
Jan Kratochvil
f389f6fef7 testsuite: Fix recent GCC FAIL: gdb.arch/i386-signal.exp
gcc-6.2.1-2.fc24.x86_64

(gdb) backtrace 10^M
(gdb) FAIL: gdb.arch/i386-signal.exp: backtrace 10

(gdb) disas/s
Dump of assembler code for function main:
.../gdb/testsuite/gdb.arch/i386-signal.c:
30      {
   0x000000000040057f <+0>:     push   %rbp
   0x0000000000400580 <+1>:     mov    %rsp,%rbp
31        setup ();
   0x0000000000400583 <+4>:     callq  0x400590 <setup>
=> 0x0000000000400588 <+9>:     mov    $0x0,%eax
32      }
   0x000000000040058d <+14>:    pop    %rbp
   0x000000000040058e <+15>:    retq
End of assembler dump.

The .exp patch is an obvious typo fix I think.  The regex was written to
accept "ADDR in main" and I find it OK as checking .debug_line validity is not
the purpose of this testfile.

gcc-4.8.5-11.el7.x86_64 did not put the 'mov $0x0,%eax' instruction there at
all so there was no problem with .debug_line.

gdb/testsuite/ChangeLog
2016-10-05  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.arch/i386-signal.exp (backtrace 10): Fix #2 typo.
2016-10-05 21:56:46 +02:00
Tom Tromey
39b5a3b9b3 PR remote/20655 - small fix in handle_tracepoint_bkpts
handle_tracepoint_bkpts has two parallel "if"s.  This changes the
second one to check ipa_error_tracepoint, which seems to be what was
intended.

2016-10-05  Tom Tromey  <tom@tromey.com>

	PR remote/20655:
	* tracepoint.c (handle_tracepoint_bkpts): Check
	ipa_error_tracepoint, not ipa_stopping_tracepoint.
2016-10-05 10:31:34 -06:00
Tom Tromey
e742d386c4 PR gdb/20653 - small cleanup in string_to_explicit_location
This bug points out that string_to_explicit_location compares a char*
against '\0'; whereas comparing against NULL is more normal.

2016-10-05  Tom Tromey  <tom@tromey.com>

	PR breakpoints/20653:
	* location.c (string_to_explicit_location): Use NULL, not '\0'.
2016-10-05 10:31:34 -06:00
Tom Tromey
3e611445bf PR symtab/20652 - fix psymbol_compare
This fixes an oversight in psymbol_compare.

2016-10-05  Tom Tromey  <tom@tromey.com>

	PR symtab/20652:
	* psymtab.c (psymbol_compare): Correctly compare "ginfo.value"
	fields.
2016-10-05 10:31:34 -06:00
Yao Qi
fdebf1a415 Skip complex types tests if gdb_skip_float_test
If the target doesn't support float, we don't run float complex types
tests.

gdb/testsuite:

2016-10-05  Yao Qi  <yao.qi@linaro.org>

	* lib/gdb.exp (support_complex_tests): Return zero if
	gdb_skip_float_test return true.
2016-10-05 17:04:31 +01:00
Anton Kolesov
dba4849269 Fix incorrect formatting of a ChangeLog entry
My previous commit had an invalid formatting of a ChangeLog entry.  This commit
fixes that.
2016-10-05 17:04:17 +03:00
Andreas Arnez
f206f69cb4 Allow DW_OP_GNU_uninit in dwarf_expr_require_composition
In DWARF expression handling, some operators are required to be either
at the end of an expression or followed by a composition operator.  So
far only the operators DW_OP_reg0-31 were allowed to be followed by
DW_OP_GNU_uninit instead, and particularly DW_OP_regx was not, which is
obviously inconsistent.

This patch allows DW_OP_GNU_uninit after all operators requiring a
composition, to simplify the code and make it more consistent.  This
policy may be more permissive than necessary, but in the worst case just
leads to a DWARF location description resulting in an uninitialized
value instead of an error message.

gdb/ChangeLog:

	* dwarf2expr.c (dwarf_expr_require_composition): Allow
	DW_OP_GNU_uninit.
	(execute_stack_op): Use dwarf_expr_require_composition instead of
	copying its logic.
2016-10-05 12:36:29 +02:00
Anton Kolesov
ed2f09e183 arc: Remove annoying debug message
The logging message is called too often - once for each register when it's
value has to be evaluated. This floods the screen for commands like "info
register all", but doesn't give really any help at debugging GDB issues.
Between increasing the debug level of this message and removing it altogether I
think that removing it is preferable.

gdb/ChangeLog:

	arc-tdep.c (arc_frame_prev_register): Remove annoying log message.
2016-10-05 13:07:44 +03:00
Yao Qi
c1d0b70ae5 Update the path arm-*.xml files for aarch64
0a69eedb (Clean up the XML files for ARM) breaks the GDBserver build
on aarch64 because some arm-*.xml files can't be found.

This patch is to fix the build failure.

gdb/gdbserver:

2016-10-05  Yao Qi  <yao.qi@linaro.org>

	* configure.srv: Update the path of arm-*.xml files.
2016-10-05 10:00:24 +01:00
Yao Qi
5878efd480 Regenerate some regformats/rs6000/*.dat files
If I remove all regformats/*.dat files and run
make GDB=/scratch/yao/gdb/build-git/all-targets/gdb/gdb all, some
powerpc .dat files are not generated.

This patch fixes it by adding them to WHICH, so these .dat files can
be generated.

gdb:

2016-10-05  Yao Qi  <yao.qi@linaro.org>

	* features/Makefile (WHICH): Add
	rs6000/powerpc-isa205-32l, rs6000/powerpc-isa205-64l,
	rs6000/powerpc-isa205-altivec32l, rs6000/powerpc-isa205-altivec64l,
	rs6000/powerpc-isa205-vsx32l and rs6000/powerpc-isa205-vsx64l.
	* regformats/rs6000/powerpc-isa205-32l.dat: Regenerated.
	* regformats/rs6000/powerpc-isa205-64l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-altivec32l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-altivec64l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-vsx32l.dat: Likewise.
	* regformats/rs6000/powerpc-isa205-vsx64l.dat: Likewise.
2016-10-05 09:31:13 +01:00
Yao Qi
defaaad599 Generate s390 target description c files
If I delete all target description c files under features/ directory,
and run make GDB=/scratch/yao/gdb/build-git/all-targets/gdb/gdb cfiles,
some s390 target description c files are not generated.

This patch adds these s390 xml files to XMLTOC, so these c files can
be generated.

gdb:

2016-10-05  Yao Qi  <yao.qi@linaro.org>

	* features/Makefile (XMLTOC): Add s390-tevx-linux64.xml,
	s390-vx-linux64.xml, s390x-tevx-linux64.xml and
	s390x-vx-linux64.xml.
2016-10-05 09:31:13 +01:00
Yao Qi
414c838a72 Simplify i386, amd64 and x32 expedite registers
Nowadays, there are a lot of duplication about
i386/{i386, amd64, x32}*-expedite in features/Makefile.  However,
in features/Makefile, we have

 echo "expedite:$(if $($*-expedite),$($*-expedite),$($(firstword $(subst -, ,$(notdir $*)))-expedite))" \
	  >> $(outdir)/$*.tmp

which means for a given bar/foo-baz.xml, we'll look for either
bar/foo-baz-expedite or foo-expedite.  In x86 expedite registers, we
use the former now, but it will be much simpler if we use the latter.
This is what this patch does.  This patch removes them, and defines
three generic expedite.  Re-run 'make GDB=/path/build/gdb all' to
regenerate regformats/*.dat files, and they are not changed.

gdb:

2016-10-05  Yao Qi  <yao.qi@linaro.org>

	* features/Makefile: Remove i386/*-expedite. Add i386-expedite,
	amd64-expedite, and x32-expedite.
2016-10-05 09:31:13 +01:00
Yao Qi
0a69eedb6d Clean up the XML files for ARM
This patch is move features/arm-*.xml to features/arm/, and it is based
on Terry's patch posted here
https://sourceware.org/ml/gdb-patches/2014-06/msg00794.html

One comment to Terry's patch is about losing "arm" prefix, and the new
patch fixes this problem.

gdb:

2016-10-05  Terry Guo  <terry.guo@arm.com>
	    Yao Qi  <yao.qi@linaro.org>

	* arm-tdep.c: Adjust includes.
	* features/Makefile (WHICH): Add "arm/" directory to arm
	target descriptions.
	(XMLTOC): Likewise.
	(arm/arm-with-iwmmxt.dat): Adjust the path for
	dependencies.
	* features/arm-core.xml: Moved to ...
	* features/arm/arm-core.xml: ... it.
	* features/arm-fpa.xml: Moved to ...
	* features/arm/arm-fpa.xml: ... it.
	* features/arm-m-profile.xml: Moved to ...
	* features/arm/arm-m-profile.xm: ... it.
	* features/arm-vfpv2.xml: Moved to ...
	* features/arm/arm-vfpv2.xm: ... it.
	* features/arm-vfpv3.xml: Moved to ...
	* features/arm/arm-vfpv3.xml: ... it.
	* features/arm-with-iwmmxt.c: Moved to ...
	* features/arm/arm-with-iwmmxt.c: ... it.
	* features/arm-with-iwmmxt.xml: Moved to ...
	* features/arm/arm-with-iwmmxt.xml: ... it.
	* features/arm-with-m-fpa-layout.c: Moved to ...
	* features/arm/arm-with-m-fpa-layout.c: ... it.
	* features/arm-with-m-fpa-layout.xml: Moved to ...
	* features/arm/arm-with-m-fpa-layout.xml: ... it.
	* features/arm-with-m-vfp-d16.c: Moved to ...
	* features/arm/arm-with-m-vfp-d16.c: ... it.
	* features/arm-with-m-vfp-d16.xml: Moved to ...
	* features/arm/arm-with-m-vfp-d16.xml: ... it.
	* features/arm-with-m.c: Moved to ...
	* features/arm/arm-with-m.c: ... it.
	* features/arm-with-m.xml: Moved to ...
	* features/arm/arm-with-m.xm: ... it.
	* features/arm-with-neon.c: Moved to ...
	* features/arm/arm-with-neon.c: ... it.
	* features/arm-with-neon.xml: Moved to ...
	* features/arm/arm-with-neon.xml: ... it.
	* features/arm-with-vfpv2.c: Moved to ...
	* features/arm/arm-with-vfpv2.c: ... it.
	* features/arm-with-vfpv2.xml: Moved to ...
	* features/arm/arm-with-vfpv2.xml: ... it.
	* features/arm-with-vfpv3.c: Moved to ...
	* features/arm/arm-with-vfpv3.c: ... it.
	* features/arm-with-vfpv3.xml: Moved to ...
	* features/arm/arm-with-vfpv3.xml: ... it.
	* features/xscale-iwmmxt.xml: Moved to ...
	* features/arm/xscale-iwmmxt.xml: ... it.

gdb/gdbserver:

2016-10-05  Terry Guo  <terry.guo@arm.com>
	    Yao Qi  <yao.qi@linaro.org>

	* Makefile.in: Adjust the path of rules.
	* configure.srv: Update the path of xml files.
	* regformats/arm-with-iwmmxt.dat: Regenerated.
	* regformats/arm-with-neon.dat: Likewise.
	* regformats/arm-with-vfpv2.dat: Likewise.
	* regformats/arm-with-vfpv3.dat Likewise.
2016-10-05 09:31:13 +01:00
GDB Administrator
825be1e5eb Automatic date update in version.in 2016-10-05 00:00:20 +00:00
Alan Modra
94b41882b0 ld expression section
Changes the result of ld expressions that were previously plain
numbers to be an absolute address, in the same circumstances where
numbers are treated as absolute addresses.

	* ld.texinfo (Expression Section): Update result of arithmetic
	expressions.
	* ldexp.c (arith_result_section): New function.
	(fold_binary): Use it.
2016-10-04 10:43:50 +10:30
Alan Modra
9ad39107ca Fold arithmetic integer expressions
Commit b751e639 regressed arm linux kernel builds, that have an
ASSERT (((__hyp_idmap_text_end - (__hyp_idmap_text_start
       			          & ~ (((0x1 << 0xc) - 0x1))))
         <= (0x1 << 0xc)), HYP init code too big or misaligned)

Due to some insanity in ld expression evaluation, the integer values
0x1 and 0xc above are treated as absolute addresses (ie. they have an
associated section, *ABS*, see exp_fold_tree_1 case etree_value) while
the expression (0x1 << 0xc) has a plain number result.  The left hand
side of the inequality happens to evaluate to a "negative" .text
section relative value.  Comparing a section relative value against an
absolute value works since the section relative value is first
converted to absolute.  Comparing a section relative value against a
number just compares the offsets, which fails since the "negative"
offset is really a very large positive number.

This patch works around the problem by folding integer expressions, so
the assert again becomes
ASSERT (((__hyp_idmap_text_end - (__hyp_idmap_text_start
       			          & 0xfffffffffffff000))
         <= 0x1000), HYP init code too big or misaligned)

	* ldexp.c (exp_value_fold): New function.
	(exp_unop, exp_binop, exp_trinop): Use it.
2016-10-04 10:41:26 +10:30
GDB Administrator
128d08b158 Automatic date update in version.in 2016-10-04 00:00:22 +00:00
Antoine Tremblay
9c36d9544f Add test for user context selection sync
This patch adds a test to verify that events are sent properly to all
UIs when the user selection context (inferior, thread, frame) changes.

The goal of the C test file is to provide two threads that are stopped with the
same predictable backtrace (so that we can test frame switching).  The barrier
helps us know when the child threads are started.  Then, scheduler-locking is
used to bring each thread one by one to the position we expect them to be
during the test.

gdb/testsuite/ChangeLog:

YYYY-MM-DD  Antoine Tremblay  <antoine.tremblay@ericsson.com>
YYYY-MM-DD  Simon Marchi  <simon.marchi@ericsson.com>

	PR gdb/20487
	* gdb.mi/user-selected-context-sync.exp: New file.
	* gdb.mi/user-selected-context-sync.c: New file.
2016-10-03 16:56:24 -04:00
Antoine Tremblay
4034d0ff52 Emit inferior, thread and frame selection events to all UIs
With this patch, when an inferior, thread or frame is explicitly
selected by the user, notifications will appear on all CLI and MI UIs.
When a GDB console is integrated in a front-end, this allows the
front-end to follow a selection made by the user ont he CLI, and it
informs the user about selection changes made behind the scenes by the
front-end.

This patch addresses PR gdb/20487.

In order to communicate frame changes to the front-end, this patch adds
a new field to the =thread-selected event for the selected frame.  The
idea is that since inferior/thread/frame can be seen as a composition,
it makes sense to send them together in the same event.  The vision
would be to eventually send the inferior information as well, if we find
that it's needed, although the "=thread-selected" event would be
ill-named for that job.

Front-ends need to handle this new field if they want to follow the
frame selection changes that originate from the console.  The format of
the frame attribute is the same as what is found in the *stopped events.

Here's a detailed example for each command and the events they generate:

thread
------

1. CLI command:

     thread 1.3

   MI event:

     =thread-selected,id="3",frame={...}

2. MI command:

     -thread-select 3

   CLI event:

     [Switching to thread 1.3 ...]

3. MI command (CLI-in-MI):

     thread 1.3

   MI event/reply:

     &"thread 1.3\n"
     ~"#0  child_sub_function () ...
     =thread-selected,id="3",frame={level="0",...}
     ^done

frame
-----

1. CLI command:

     frame 1

   MI event:

     =thread-selected,id="3",frame={level="1",...}

2. MI command:

     -stack-select-frame 1

   CLI event:

     #1  0x00000000004007f0 in child_function...

3. MI command (CLI-in-MI):

     frame 1

   MI event/reply:

     &"frame 1\n"
     ~"#1  0x00000000004007f9 in ..."
     =thread-selected,id="3",frame={level="1"...}
     ^done

inferior
--------

Inferior selection events only go from the console to MI, since there's
no way to select the inferior in pure MI.

1. CLI command:

     inferior 2

   MI event:

     =thread-selected,id="3"

Note that if the user selects an inferior that is not started or exited,
the MI doesn't receive a notification.  Since there is no threads to
select, the =thread-selected event does not apply...

2. MI command (CLI-in-MI):

     inferior 2

   MI event/reply:

     &"inferior 2\n"
     ~"[Switching to inferior 2 ...]"
     =thread-selected,id="4",frame={level="0"...}
     ^done

Internal implementation detail: this patch makes it possible to suppress
notifications caused by a CLI command, like what is done in mi-interp.c.
This means that it's now possible to use the
add_com_suppress_notification function to register a command with some
event suppressed.  It is used to implement the select-frame command in
this patch.

The function command_notifies_uscc_observer was added to extract
the rather complicated logical expression from the if statement.  It is
also now clearer what that logic does: if the command used by the user
already notifies the user_selected_context_changed observer, there is
not need to notify it again.  It therefore protects again emitting the
event twice.

No regressions, tested on ubuntu 14.04 x86 with target boards unix and
native-extended-gdbserver.

gdb/ChangeLog:

YYYY-MM-DD  Antoine Tremblay  <antoine.tremblay@ericsson.com>
YYYY-MM-DD  Simon Marchi  <simon.marchi@ericsson.com>

	PR gdb/20487
	* NEWS: Mention new frame field of =thread-selected event.
	* cli/cli-decode.c (add_cmd): Initialize c->suppress_notification.
	(add_com_suppress_notification): New function definition.
	(cmd_func): Set and restore the suppress_notification flag.
	* cli/cli-deicode.h (struct cmd_list_element)
	<suppress_notification>: New field.
	* cli/cli-interp.c (cli_suppress_notification): New global variable.
	(cli_on_user_selected_context_changed): New function.
	(_initialize_cli_interp): Attach to user_selected_context_changed
	observer.
	* command.h (struct cli_suppress_notification): New structure.
	(cli_suppress_notification): New global variable declaration.
	(add_com_suppress_notification): New function declaration.
	* defs.h (enum user_selected_what_flag): New enum.
	(user_selected_what): New enum flag type.
	* frame.h (print_stack_frame_to_uiout): New function declaration.
	* gdbthread.h (print_selected_thread_frame): New function declaration.
	* inferior.c (print_selected_inferior): New function definition.
	(inferior_command): Remove printing of inferior/thread/frame switch
	notifications, notify user_selected_context_changed observer.
	* inferior.h (print_selected_inferior): New function declaration.
	* mi/mi-cmds.c (struct mi_cmd): Add user_selected_context
	suppression to stack-select-frame and thread-select commands.
	* mi/mi-interp.c (struct mi_suppress_notification)
	<user_selected_context>: Initialize.
	(mi_user_selected_context_changed): New function definition.
	(_initialize_mi_interp): Attach to user_selected_context_changed.
	* mi/mi-main.c (mi_cmd_thread_select): Print thread selection reply.
	(mi_execute_command): Handle notification suppression.  Notify
	user_selected_context_changed observer on thread change instead of printing
	event directly.  Don't send it if command already sends the notification.
	(command_notifies_uscc_observer): New function.
	(mi_cmd_execute): Don't handle notification suppression.
	* mi/mi-main.h (struct mi_suppress_notification)
	<user_selected_context>: New field.
	* stack.c (print_stack_frame_to_uiout): New function definition.
	(select_frame_command): Notify user_selected_context_changed
	observer.
	(frame_command): Call print_selected_thread_frame if there's no frame
	change or notify user_selected_context_changed observer if there is.
	(up_command): Notify user_selected_context_changed observer.
	(down_command): Likewise.
	(_initialize_stack): Suppress user_selected_context notification for
	command select-frame.
	* thread.c (thread_command): Notify
	user_selected_context_changed if the thread has changed, print
	thread info directly if it hasn't.
	(do_captured_thread_select): Do not print thread switch event.
	(print_selected_thread_frame): New function definition.
	* tui/tui-interp.c (tui_on_user_selected_context_changed):
	New function definition.
	(_initialize_tui_interp): Attach to user_selected_context_changed
	observer.

gdb/doc/ChangeLog:

	PR gdb/20487
	* gdb.texinfo (Context management): Update mention of frame
	change notifications.
	(gdb/mi Async Records): Document frame field in
	=thread-select event.
	* observer.texi (GDB Observers): New user_selected_context_changed
	observer.

gdb/testsuite/ChangeLog:

	PR gdb/20487
	* gdb.mi/mi-pthreads.exp (check_mi_thread_command_set): Adapt
	=thread-select-event check.
2016-10-03 16:54:58 -04:00
GDB Administrator
0ee0f92162 Automatic date update in version.in 2016-10-03 00:00:22 +00:00
GDB Administrator
e7847a2b37 Automatic date update in version.in 2016-10-02 00:00:19 +00:00
GDB Administrator
fe61e2596d Automatic date update in version.in 2016-10-01 00:00:27 +00:00
Yao Qi
17e1648598 PR 20627: Use resume_stop to stop lwp
Commit 049a8570 (Use target_continue{,_no_signal} instead of target_resume)
replaces the code stopping lwp with target_continue_no_signal in
target_stop_and_wait, like this,

-  resume_info.thread = ptid;
-  resume_info.kind = resume_stop;
-  resume_info.sig = GDB_SIGNAL_0;
-  (*the_target->resume) (&resume_info, 1);
+  target_continue_no_signal (ptid);

the replacement is not equivalent, and it causes PR 20627.  This patch
is just to revert that change.

Regression testing it on x86_64-linux.

gdb/gdbserver:

2016-09-30  Yao Qi  <yao.qi@linaro.org>

	PR gdbserver/20627
	* target.c (target_stop_and_wait): Don't call
	target_continue_no_signal, use resume_stop instead.
2016-09-30 18:39:12 +01:00