and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 13 Dec, 2013 6 commits
  2. 12 Dec, 2013 9 commits
    • Siva Chandra's avatar
      2013-12-12 Siva Chandra Reddy <sivachandra@google.com> · a16b0e22
      Siva Chandra authored
      	PR python/16113
      	* NEWS (Python Scripting): Add entry for the new feature and the
      	new attribute of gdb.Field objects.
      	* python/py-type.c (gdbpy_is_field): New function
      	(convert_field): Add 'parent_type' attribute to gdb.Field
      	objects.
      	* python/py-value.c (valpy_getitem): Allow subscript value to be
      	a gdb.Field object.
      	(value_has_field): New function
      	(get_field_flag): New function
      	* python/python-internal.h (gdbpy_is_field): Add declaration.
      
      	testsuite/
      	* gdb.python/py-value-cc.cc: Improve test case.
      	* gdb.python/py-value-cc.exp: Add new tests to test usage of
      	gdb.Field objects as subscripts on gdb.Value objects.
      
      	doc/
      	* gdb.texinfo (Values From Inferior): Add a note about using
      	gdb.Field objects as subscripts on gdb.Value objects.
      	(Types In Python): Add description about the new attribute
      	"parent_type" of gdb.Field objects.
      a16b0e22
    • Alan Modra's avatar
      daily update · ec0d6081
      Alan Modra authored
      ec0d6081
    • H.J. Lu's avatar
      Also copy EI_OSABI field · 57b828ef
      H.J. Lu authored
      bfd/
      
      	PR binutils/16318
      	* elf.c (_bfd_elf_copy_private_bfd_data): Remove BFD_ASSERT.
      	Set e_flags only if elf_flags_init is FALSE.  Copy EI_OSABI
      	field.
      
      binutils/testsuite/
      
      	PR binutils/16318
      	* binutils-all/strip-10.d: Check OS/ABI.
      57b828ef
    • H.J. Lu's avatar
      Remove bfd_elf32_bfd_set_private_bfd_flags · 84b66498
      H.J. Lu authored
      	* elf32-sh.c (bfd_elf32_bfd_set_private_bfd_flags): Removed.
      84b66498
    • H.J. Lu's avatar
      Add "#..." · c40ad180
      H.J. Lu authored
      	* ld-elf/ehdr_start-userdef.d: Add "#...".
      c40ad180
    • Joel Brobecker's avatar
      Add @cindex for section documenting the -list-features GDB/MI command. · 9b26f0fb
      Joel Brobecker authored
      gdb/doc/ChangeLog:
      
              * gdb.texinfo (GDB/MI Miscellaneous Commands): Add @cindex
              entry for section docuumenting the -list-features GDB/MI command.
      9b26f0fb
    • H.J. Lu's avatar
      Set ET_EXEC for -pie -Ttext-segment= · 58e7ebac
      H.J. Lu authored
      bfd/
      
      	* elf.c (assign_file_positions_except_relocs): Set e_type in ELF
      	header to ET_EXEC for -pie -Ttext-segment=.
      
      2013-12-10  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* ld-pie/vaddr-0.d: New file.
      	* ld-pie/vaddr-1.d: Likewise.
      	* ld-pie/vaddr.s: Likewise.
      58e7ebac
    • Pedro Alves's avatar
      breakpoint.c:insert_bp_location: Constify local. · b15e5c54
      Pedro Alves authored
      gdb/
      2013-12-12  Pedro Alves  <palves@redhat.com>
      
      	* breakpoint.c (insert_bp_location): Make 'hw_bp_err_string' local
      	const, and remove casts.
      b15e5c54
    • Pedro Alves's avatar
      Eliminate UNSUPPORTED_ERROR. · f23981e9
      Pedro Alves authored
      I have a case that could use an exception for "unsupported feature".
      I found UNSUPPORTED_ERROR, but looking deeper, I think as is, reusing
      it for other things would be fragile.  E.g., if the Python script
      sourced by source_script_from_stream triggers any other missing
      functionality that would result in UNSUPPORTED_ERROR being propagated
      out to source_script_from_stream, that would confuse the error for
      Python not being built into GDB.
      
      This patch thus redoes things a little.  Instead of using an exception
      for the "No Python" scenario, check whether Python is configured in
      before actually trying to source the file.  It adds a new function
      instead of using #ifdef HAVE_PYTHON directly, as that is better at
      avoiding bitrot, as both Python and !Python paths are visible to the
      compiler this way.
      
      Tested on Fedora 17, with and without Python.
      
      gdb/
      2013-12-12  Pedro Alves  <palves@redhat.com>
      
      	* cli/cli-cmds.c (source_script_from_stream) Use have_python
      	instead of catching UNSUPPORTED_ERROR.
      	* exceptions.h (UNSUPPORTED_ERROR): Delete.
      	* python/python.c (source_python_script) [!HAVE_PYTHON]: Internal
      	error if called.
      	* python/python.h (have_python): New static inline function.
      f23981e9
  3. 11 Dec, 2013 10 commits
    • Doug Evans's avatar
      * dwarf2read.c (lookup_dwo_cutu): Include name of dwp file in · 43942612
      Doug Evans authored
      	"can't find DWO" warning.
      43942612
    • Alan Modra's avatar
      daily update · 34e627b7
      Alan Modra authored
      34e627b7
    • Will Newton's avatar
      ld/testsuite/ld-aarch64: Fixup IFUNC tests to work on all targets · d3b76a45
      Will Newton authored
      Make the ifunc-21 and ifunc-22 tests more generic to support
      aarch64_be and ELF targets.
      
      ld/testsuite/ChangeLog:
      
      2013-12-11  Will Newton  <will.newton@linaro.org>
      
      	* ld-aarch64/ifunc-21.d: Make test more generic to support
      	aarch64_be and ELF targets.
      	* ld-aarch64/ifunc-22.d: Likewise.
      d3b76a45
    • H.J. Lu's avatar
      Remove shared object from -Ttext-segment · 2b8c06a3
      H.J. Lu authored
      	* ld.texinfo: Remove shared object from -Ttext-segment.
      2b8c06a3
    • H.J. Lu's avatar
      Add a test for --as-needed with symbol versioning · 5e319dd3
      H.J. Lu authored
      	* ld-elf/shared.exp (build_tests): Add libneeded2a.so,
      	libneeded2b.so, libneeded2c.o and needed2.
      
      	* ld-elf/needed2.ver: New file.
      	* ld-elf/needed2a.c: Likewise.
      	* ld-elf/needed2b.c: Likewise.
      	* ld-elf/needed2c.c: Likewise.
      5e319dd3
    • Sergio Durigan Junior's avatar
      Sanitize access to gdbarch on the SDT probe API (and fix ARM bug) · 08a6411c
      Sergio Durigan Junior authored
      This patch sanitizes the access to gdbarch made by various functions of
      the SDT probe API.  Before this patch, gdbarch was being accessed via
      the probe's objfile; however, this proved to cause a bug on 32-bit ARM
      targets because during the parsing of the probe's arguments the code
      needed to access some pseudo-registers of the architecture, and this
      information is not fully correct on the objfile's gdbarch.
      
      Basically, the approach taken was to instead pass the current/selected
      frame to the parsing and evaluation functions, so that they can extract
      the gdbarch directly from the frame.  It solved the ARM bug reported
      above, and also contributed to make the API cleaner.
      
      Tested on x86_64 and 32-bit ARM.
      
      2013-12-11  Sergio Durigan Junior  <sergiodj@redhat.com>
      
      	* break-catch-throw.c (fetch_probe_arguments): Pass selected frame
      	to get_probe_argument_count and evaluate_probe_argument.
      	* probe.c (get_probe_argument_count): Adjust declaration to accept
      	frame.  Pass frame to probe_ops's get_probe_argument_count.
      	(evaluate_probe_argument): Likewise, for evaluate_probe_argument.
      	(probe_safe_evaluate_at_pc): Pass frame to
      	get_probe_argument_count and evaluate_probe_argument.
      	* probe.h (struct probe_ops) <get_probe_argument_count,
      	evaluate_probe_argument>: Adjust declarations to accept frame.
      	(get_probe_argument_count, evaluate_probe_argument): Likewise.
      	* solib-svr4.c (solib_event_probe_action): Get current frame.
      	Pass it to get_probe_argument_count.
      	(svr4_handle_solib_event): Get current frame.  Pass it to
      	get_probe_argument_count and evaluate_probe_argument.
      	* stap-probe.c (stap_parse_probe_arguments): Adjust declaration to
      	accept gdbarch.  Do not obtain it from the probe's objfile.
      	(stap_get_probe_argument_count): Adjust declaration to accept
      	frame.  Obtain gdbarch from the frame.  Call generic
      	can_evaluate_probe_arguments.  Pass gdbarch to
      	stap_parse_probe_arguments.
      	(stap_get_arg): Adjust declaration to accept gdbarch.  Pass it to
      	stap_parse_probe_arguments.
      	(stap_evaluate_probe_argument): Adjust declaration to accept
      	frame.  Obtain gdbarch from the frame.  Pass gdbarch to
      	stap_get_arg.
      	(stap_compile_to_ax): Pass agent_expr's gdbarch to stap_get_arg.
      	(compute_probe_arg): Obtain gdbarch from frame.  Pass frame to
      	get_probe_argument_count and evaluate_probe_argument.
      08a6411c
    • Yao Qi's avatar
      Fix a bug in matching notifications. · e7f0d979
      Yao Qi authored
      Due to copy-n-paste, the problem caused PR remote/15974 also exists
      in gdbserver.  This patch fixes it in the same way.  Patch to fix
      remote/15974 can be found:
      
        https://sourceware.org/ml/gdb-patches/2013-12/msg00014.html
      
      gdb/gdbserver:
      
      2013-12-11  Yao Qi  <yao@codesourcery.com>
      
      	* notif.c (handle_notif_ack): Return 0 if no notification
      	matches.
      e7f0d979
    • Doug Evans's avatar
      add missing PR# to previous entry · 7b3fd68b
      Doug Evans authored
      7b3fd68b
    • Doug Evans's avatar
      PR 16286 · 0987cf35
      Doug Evans authored
      	* c-lang.c (c_get_string): Ignore the declared size of the object
      	if a specific length is requested.
      
      	testsuite/
      	* gdb.python/py-value.c: #include stdlib.h, string.h.
      	(str): New struct.
      	(main): New local xstr.
      	* gdb.python/py-value.exp (test_value_in_inferior): Add test to
      	fetch a value as a string with a length beyond the declared length
      	of the array.
      0987cf35
    • Doug Evans's avatar
      Delete interp_exec_p. · 34dc884e
      Doug Evans authored
          	* interps.h (interp_exec_p): Delete.
          	* interps.c (interp_exec_p): Delete.
          	(interp_exec): Update.  Assert interp->procs->exec_proc != NULL.
          	* mi/mi-interp.c (mi_cmd_interpreter_exec): Update.
      34dc884e
  4. 10 Dec, 2013 9 commits
    • Roland McGrath's avatar
      Use $(INSTALL_PROGRAM_ENV) consistently. · f2c7d7ee
      Roland McGrath authored
      binutils/
      	* Makefile.am (install-exec-local): Prefix libtool invocation with
      	$(INSTALL_PROGRAM_ENV).
      	* Makefile.in: Regenerate.
      
      gas/
      	* Makefile.am (install-exec-bindir): Prefix libtool invocation
      	with $(INSTALL_PROGRAM_ENV).
      	(install-exec-tooldir): Likewise.
      	* Makefile.in: Regenerate.
      
      gold/
      	* Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses
      	with $(INSTALL_PROGRAM_ENV).
      	* Makefile.in: Regenerate.
      
      ld/
      	* Makefile.am (install-exec-local): Prefix libtool invocation with
      	$(INSTALL_PROGRAM_ENV).
      	* Makefile.in: Regenerate.
      f2c7d7ee
    • Alan Modra's avatar
      daily update · 3fb00a37
      Alan Modra authored
      3fb00a37
    • Andrew Burgess's avatar
      Add call to get_compiler_info to gdb_compile_shlib. · 409d8f48
      Andrew Burgess authored
          https://sourceware.org/ml/gdb-patches/2013-12/msg00374.html
      
      gdb/testsuite/ChangeLog
      
      	* lib/gdb.exp (gdb_compile_shlib): Add call to get_compiler_info,
      	update comment.
      409d8f48
    • Yao Qi's avatar
      Use target_read_code in skip_prologue (amd64) · bae8a07a
      Yao Qi authored
      gdb:
      
      2013-12-10  Yao Qi  <yao@codesourcery.com>
      
      	* amd64-tdep.c (amd64_analyze_stack_align): Call
      	target_read_code instead of target_read_memory.
      	(amd64_analyze_prologue): Call read_code_unsigned_integer
      	instead of read_memory_unsigned_integer.  Call read_code
      	instead of read_memory.
      	(amd64_skip_xmm_prologue): Likewise.
      bae8a07a
    • Yao Qi's avatar
      Use target_read_code in skip_prologue (i386) · 0865b04a
      Yao Qi authored
      GDB is able to cache memory accesses requested in target_read_code,
      so target_read_code is more efficient than general target_read_memory.
      
      This patch uses target_read_code and its variants to read target
      memory in the functions related to i386_skip_prologue.  It improves
      the performance when doing 'b foo' (foo is a function) in remote
      debugging.
      
      Nowadays, when we set a breakpoint on function f1, GDB will fetch the
      code in f1 to determine the start of the function body (say skip the
      prologue), it requests read from target many times.  With this patch
      applied, the number of RSP 'm' packets are reduced.
      
      gdb:
      
      2013-12-10  Yao Qi  <yao@codesourcery.com>
      
      	* corefile.c (read_code): New function.
      	(read_code_integer): New function.
      	(read_code_unsigned_integer): New function.
      	* gdbcore.h (read_code): Declare.
      	(read_code_integer): Declare.
      	(read_code_unsigned_integer): Declare.
      	* i386-tdep.c (i386_follow_jump): Call target_read_code instead
      	of target_read_memory.  Call read_code_unsigned_integer instead
      	of read_memory_unsigned_integer.
      	(i386_analyze_struct_return): Likewise.
      	(i386_skip_probe): Likewise.
      	(i386_analyze_stack_align): Likewise.
      	(i386_match_pattern): Likewise.
      	(i386_skip_noop): Likewise.
      	(i386_analyze_frame_setup): Likewise.
      	(i386_analyze_register_saves): Likewise.
      	(i386_skip_prologue): Likewise.
      	(i386_skip_main_prologue): Likewise.
      	(i386_frame_cache_1): Likewise.
      0865b04a
    • Yao Qi's avatar
      Invalidate target cache before starting to handle event. · f15cb84a
      Yao Qi authored
      gdb:
      
      2013-12-10  Yao Qi  <yao@codesourcery.com>
      
      	* infrun.c: Include "target-dcache.h".
      	(prepare_for_detach): Call target_dcache_invalidate.
      	(wait_for_inferior): Likewise.
      	(fetch_inferior_event): Likewise.
      	(infrun_thread_stop_requested_callback): Likewise.  Set
      	overlay_cache_invalid to 1.
      f15cb84a
    • Joel Brobecker's avatar
      Set language for Ada minimal symbols. · 036e93df
      Joel Brobecker authored
      This helps with the following issue: Given an Ada program defining
      a global variable:
      
          package Pck is
             Watch : Integer := 1974;
          end Pck;
      
      When printing the address of this variable, GDB also tries to print
      the associated symbol name:
      
          (gdb) p watch'address
          $1 = (access integer) 0x6139d8 <pck__watch>
                                             ^^
                                             ||
      
      The problem is that GDB prints the variable's linkage name, instead
      of its natural name. This is because the language of the associated
      minimal symbol never really gets set.
      
      This patch adds handling for Ada symbols in symbol_find_demangled_name.
      After this patch, we now get:
      
          (gdb) p watch'address
          $1 = (access integer) 0x6139d8 <pck.watch>
                                             ^
                                             |
      
      gdb/ChangeLog:
      
              * symtab.c (symbol_find_demangled_name): Add handling of
              Ada symbols.
      
      gdb/testsuite/ChangeLog:
      
              * gdb.ada/int_deref.exp: Add test verifying that we print
              the decoded symbol name when printing the address of Ada
              symbols.
      036e93df
    • Joel Brobecker's avatar
      GDB/MI: Document support for -exec-run --start in -list-features · 72bfa06c
      Joel Brobecker authored
      This adds "exec-run-start-option" in the output of the -list-features
      commands, allowing front-ends to easily determine whether -exec-run
      supports the --start option.
      
      gdb/ChangeLog:
      
              * mi/mi-main.c (mi_cmd_list_features): add "exec-run-start-option".
              * NEWS: Expand the entry documenting the new -exec-run --start
              option to mention the corresponding new entry in the output of
              "-list-features".
      
      gdb/doc/ChangeLog:
      
      	* gdb.texinfo (GDB/MI Miscellaneous Commands): Document the new
      	"exec-run-start-option" entry in the output of the "-list-features"
      	command.
      
      gdb/testsuite/ChangeLog:
      
              * gdb.mi/mi-start.exp: Add test verifying that -list-features
              contains "exec-run-start-option".
      72bfa06c
    • Joel Brobecker's avatar
      nameless LOAD_DLL_DEBUG_EVENT causes ntdll.dll to be missing · 94481b8c
      Joel Brobecker authored
      We observed on Windows 2012 that we were unable to unwind past
      exception handlers. For instance, with any Ada program raising
      an exception that does not get handled:
      
          % gnatmake -g a -bargs -shared
          % gdb a
          (gdb) start
          (gdb) catch exception unhandled
          Catchpoint 2: unhandled Ada exceptions
          (gdb) c
          Catchpoint 2, unhandled CONSTRAINT_ERROR at <__gnat_unhandled_exception> (
              e=0x645ff820 <constraint_error>) at s-excdeb.adb:53
          53      s-excdeb.adb: No such file or directory.
      
      At this point, we can already see that something went wrong, since
      the frame selected by the debugger corresponds to a runtime function
      rather than the function in the user code that caused the exception
      to be raised (in our case procedure A).
      
      This is further confirmed by the fact that we are unable to unwind
      all the way to procedure A:
      
          (gdb) bt
          #0  <__gnat_unhandled_exception> (e=0x645ff820 <constraint_error>)
              at s-excdeb.adb:53
          #1  0x000000006444e9a3 in <__gnat_notify_unhandled_exception> (excep=0x284d2
      +0)
              at a-exextr.adb:144
          #2  0x00000000645f106a in __gnat_personality_imp ()
             from C:\[...]\libgnat-7.3.dll
          #3  0x000000006144d1b7 in _GCC_specific_handler (ms_exc=0x242fab0,
              this_frame=0x242fe60, ms_orig_context=0x242f5c0, ms_disp=0x242ef70,
              gcc_per=0x645f0960 <__gnat_personality_imp>)
              at ../../../src/libgcc/unwind-seh.c:289
          #4  0x00000000645f1211 in __gnat_personality_seh0 ()
             from C:\[...]\libgnat-7.3.dll
          #5  0x000007fad3879f4d in ?? ()
          Backtrace stopped: previous frame inner to this frame (corrupt stack?)
      
      It turns out that the unwinder has been doing its job flawlessly
      up until frame #5. The address in frame #5 is correct, but GDB
      is not able to associate it with any symbol or unwind record.
      
      And this is because this address is inside ntdll.dll, and when
      we received the LOAD_DLL_DEBUG_EVENT for that DLL, the system
      was not able to tell us the name of the library, thus causing us
      to silently ignoring the event. Because GDB does not know about
      ntdll.dll, it is unable to access the unwind information from it.
      And because the function at that address does not use a frame
      pointer, the unwinding becomes impossible.
      
      This patch helps recovering ntdll.dll at the end of the "run/attach"
      phase, simply by trying to locate that specific DLL again.
      
      In terms of our medium to long term planning, it seems to me that
      we should be able to simplify the code by ignoring LOAD_DLL_DEBUG_EVENT
      during the startup phase, and modify windows_ensure_ntdll_loaded
      to then detect and report all shared libraries after we've finished
      inferior creation.  But for a change just before 7.7 branch creation,
      I thought it was safest to just handle ntdll.dll specifically. This
      is less intrusive, and ntdll is the only DLL affected by the problem
      I know so far.
      
      gdb/ChangeLog:
      
      	* windows-nat.c (handle_load_dll): Add comments.
              (windows_ensure_ntdll_loaded): New function.
      	(do_initial_windows_stuff): Use windows_ensure_ntdll_loaded.
              Add FIXME comment.
      94481b8c
  5. 09 Dec, 2013 1 commit
  6. 08 Dec, 2013 5 commits
    • Alan Modra's avatar
      daily update · a36a852b
      Alan Modra authored
      a36a852b
    • Joel Brobecker's avatar
      Fix gdb/ChangeLog date in last entry. · ebeec1e9
      Joel Brobecker authored
      ebeec1e9
    • Yao Qi's avatar
      Use gdb_produce_source · 11ec5965
      Yao Qi authored
      We added a new proc gdb_produce_source recently, and it can be used
      more widely in lib/gdb.exp to generate source file.
      
      gdb/testsuite:
      
      2013-12-08  Yao Qi  <yao@codesourcery.com>
      
      	* lib/gdb.exp (support_complex_tests): Use gdb_produce_source.
      	(is_elf_target, is_ilp32_target, is_ilp64_target): Likewise.
      	(is_64_target, is_amd64_regs_target): Likewise.
      	(skip_altivec_tests, skip_vsx_tests, skip_btrace_tests): Likewise.
      11ec5965
    • Alan Modra's avatar
      correct file reference · bc58135a
      Alan Modra authored
      bc58135a
    • Alan Modra's avatar
      Fix --as-needed undefined symbol references from dynamic libraries. · 68c88cd4
      Alan Modra authored
      libx.so refers to some_sym, liby.so provides some_sym@some_version
      wasn't seen as satisfying the reference.
      
      	* elf64-ppc.c (_bfd_elf_add_default_symbol): Set dynamic_def
      	and ref_dynamic_nonweak when chaining together indirect
      	symbols.
      68c88cd4