1. May 01, 2021
    • Tom Tromey's avatar
      Remove dwarf2_per_bfd::all_type_units · 91eea9cc
      Tom Tromey authored
      I don't think there is any deep reason to separate CUs and TUs in
      dwarf2_per_bfd.  This patch removes all_type_units and unifies these
      two containers.  Some minor tweaks are needed to the index writers,
      because both forms of index keep CUs and TUs separate;
      
      Regression tested on x86-63 Fedora 32.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tom@tromey.com>
      
      	* dwarf2/read.h (struct tu_stats) <nr_tus>: New member.
      	(struct dwarf2_per_bfd) <get_cutu, get_tu>: Remove
      	<get_cu>: Now inline.
      	<all_type_units>: Remove.
      	* dwarf2/read.c (dwarf2_per_bfd::~dwarf2_per_bfd): Update.
      	(dwarf2_per_bfd::get_cutu, dwarf2_per_bfd::get_cu)
      	(dwarf2_per_bfd::get_tu): Remove.
      	(dwarf2_per_bfd::allocate_signatured_type): Update nr_tus.
      	(create_signatured_type_table_from_index)
      	(create_signatured_type_table_from_debug_names)
      	(dw2_symtab_iter_next, dwarf2_base_index_functions::print_stats)
      	(dwarf2_base_index_functions::expand_all_symtabs)
      	(dw2_expand_marked_cus, dw_expand_symtabs_matching_file_matcher)
      	(dwarf2_base_index_functions::map_symbol_filenames)
      	(dw2_debug_names_iterator::next, dwarf2_initialize_objfile)
      	(add_signatured_type_cu_to_table, create_all_type_units)
      	(add_type_unit, build_type_psymtabs_1, print_tu_stats)
      	(create_all_comp_units): Update.
      	* dwarf2/index-write.c (check_dwarf64_offsets, write_gdbindex)
      	(write_debug_names): Update.
      91eea9cc
    • Tom Tromey's avatar
      Allocate dwarf2_per_cu_data with 'new' · 0d305d5c
      Tom Tromey authored
      In a patch series I am working on, I'd like to have a non-POD member
      in dwarf2_per_cu_data.  This currently can't be done because
      dwarf2_per_cu_data is allocated on an obstack and initialized with
      memset.
      
      This patch changes the DWARF reader to allocate objects of this type
      with 'new'.  The various "subclasses" of this type (signatured_type in
      particular) are now changed to derive from dwarf2_per_cu_data, and
      also use 'new' for allocation.
      
      Regression tested on x86-64 Fedora 32.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tom@tromey.com>
      
      	* dwarf2/read.h (struct dwarf2_per_bfd) <allocate_per_cu,
      	allocate_signatured_type>: Change return type.
      	<all_comp_units, all_type_units>: Hold unique pointers.
      	(struct dwarf2_per_cu_data): Add constructor and initializers.
      	(struct signatured_type): Derive from dwarf2_per_cu_data.
      	* dwarf2/read.c (type_unit_group): Derive from
      	dwarf2_per_cu_data.
      	(dwarf2_per_bfd::get_cutu, dwarf2_per_bfd::get_cu)
      	(dwarf2_per_bfd::get_tu)
      	(dwarf2_per_bfd::allocate_signatured_type)
      	(dwarf2_per_bfd::allocate_signatured_type)
      	(create_cu_from_index_list, create_cus_from_index_list)
      	(create_signatured_type_table_from_index)
      	(create_signatured_type_table_from_debug_names)
      	(create_addrmap_from_aranges)
      	(dwarf2_base_index_functions::find_last_source_symtab)
      	(dw_expand_symtabs_matching_file_matcher)
      	(dwarf2_gdb_index::expand_symtabs_matching)
      	(dwarf2_base_index_functions::map_symbol_filenames)
      	(create_cus_from_debug_names_list)
      	(dw2_debug_names_iterator::next)
      	(dwarf2_debug_names_index::expand_symtabs_matching)
      	(create_debug_type_hash_table, add_type_unit)
      	(fill_in_sig_entry_from_dwo_entry, lookup_dwo_signatured_type):
      	Update.
      	(allocate_type_unit_groups_table): Use delete.
      	(create_type_unit_group): Change return type.  Use new.
      	(get_type_unit_group, build_type_psymtabs_1)
      	(build_type_psymtab_dependencies)
      	(process_skeletonless_type_unit, set_partial_user)
      	(dwarf2_build_psymtabs_hard, read_comp_units_from_section)
      	(create_cus_hash_table, queue_and_load_dwo_tu, follow_die_sig_1)
      	(read_signatured_type): Update.
      	(dwarf2_find_containing_comp_unit): Change type of
      	'all_comp_units'.
      	(run_test): Update.
      	(dwarf2_per_bfd::allocate_per_cu)
      	(dwarf2_per_bfd::allocate_signatured_type): Change return type.
      	Use new.
      	(add_signatured_type_cu_to_table): Update.
      	* dwarf2/index-write.c (write_one_signatured_type)
      	(check_dwarf64_offsets, psyms_seen_size, write_gdbindex)
      	(write_debug_names): Update.
      0d305d5c
    • Tom Tromey's avatar
      Make get_image_name static · 1bee48c7
      Tom Tromey authored
      The only callers of get_image_name are nat/windows-nat.c, so make it
      static.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* nat/windows-nat.h (get_image_name): Don't declare.
      	* nat/windows-nat.c (get_image_name): Now static.
      1bee48c7
    • Tom Tromey's avatar
      Share DLL code between gdb and gdbserver · e228ef97
      Tom Tromey authored
      This moves the new DLL-loading code into nat/windows-nat.c, and
      changes both gdb and gdbserver to use the shared code.  One
      client-provided callback, handle_load_dll, is changed to allow the
      code to be shared.  This callback was actually never called from
      nat/windows-nat.c; maybe I had planned to share more here and then
      didn't finish... I'm not sure.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* windows-nat.c (windows_nat::handle_load_dll): Update.
      	(windows_nat_target::get_windows_debug_event): Call
      	dll_loaded_event.
      	(windows_add_all_dlls, windows_add_dll): Move to
      	nat/windows-nat.c.
      	* nat/windows-nat.h (handle_load_dll): Change parameters.
      	(dll_loaded_event, windows_add_all_dlls): Declare.
      	* nat/windows-nat.c (windows_add_dll, windows_add_all_dlls): Move
      	from windows-nat.c.
      	(dll_loaded_event): New function.
      
      gdbserver/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* win32-low.cc (do_initial_child_stuff): Update.
      	(windows_nat::handle_load_dll): Rename from win32_add_one_solib.
      	Change parameter type.
      	(win32_add_dll, win32_add_all_dlls)
      	(windows_nat::handle_load_dll): Remove.
      	(get_child_debug_event): Call dll_loaded_event.
      e228ef97
    • Tom Tromey's avatar
      Use nat/windows-nat function indirection code · de071872
      Tom Tromey authored
      This changes gdbserver to use the function indirection code that was
      just moved into nat/windows-nat.[ch].  One additional function is used
      by gdbserver that was not used by gdb.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* nat/windows-nat.h (GenerateConsoleCtrlEvent): New define.
      	(GenerateConsoleCtrlEvent_ftype, GenerateConsoleCtrlEvent):
      	Declare.
      	* nat/windows-nat.c (GenerateConsoleCtrlEvent): Define.
      	(initialize_loadable): Initialize GenerateConsoleCtrlEvent.
      
      gdbserver/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* win32-low.cc (GETPROCADDRESS): Remove.
      	(winapi_DebugActiveProcessStop, winapi_DebugSetProcessKillOnExit)
      	(winapi_DebugBreakProcess, winapi_GenerateConsoleCtrlEvent)
      	(winapi_Wow64SetThreadContext, win32_Wow64GetThreadContext)
      	(win32_Wow64SetThreadContext): Remove.
      	(win32_set_thread_context, do_initial_child_stuff)
      	(win32_process_target::attach, win32_process_target::detach):
      	Update.
      	(winapi_EnumProcessModules, winapi_EnumProcessModulesEx)
      	(winapi_GetModuleInformation, winapi_GetModuleInformationA):
      	Remove.
      	(win32_EnumProcessModules, win32_EnumProcessModulesEx)
      	(win32_GetModuleInformation, win32_GetModuleInformationA):
      	Remove.
      	(load_psapi): Remove.
      	(win32_add_dll, win32_process_target::request_interrupt): Update.
      	(initialize_low): Call initialize_loadable.
      de071872
    • Tom Tromey's avatar
      Move function indirection code to nat/windows-nat · 9e439f00
      Tom Tromey authored
      gdb and gdbserver both look for functions in some Windows DLLs at
      runtime.  This patch moves this code out of gdb and into
      nat/windows-nat, so it can be shared by both programs.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* windows-nat.c: Move code to nat/windows-nat.[ch].
      	(_initialize_windows_nat): Call initialize_loadable.
      	* nat/windows-nat.h (AdjustTokenPrivileges)
      	(DebugActiveProcessStop, DebugBreakProcess)
      	(DebugSetProcessKillOnExit, EnumProcessModules)
      	(EnumProcessModulesEx, GetModuleInformation)
      	(GetModuleFileNameExA, GetModuleFileNameExW)
      	(LookupPrivilegeValueA, OpenProcessToken, GetConsoleFontSize)
      	(GetCurrentConsoleFont, Wow64SuspendThread)
      	(Wow64GetThreadContext, Wow64SetThreadContext)
      	(Wow64GetThreadSelectorEntry): Move from windows-nat.c.
      	(AdjustTokenPrivileges_ftype)
      	(DebugActiveProcessStop_ftype, DebugBreakProcess_ftype)
      	(DebugSetProcessKillOnExit_ftype, EnumProcessModules_ftype)
      	(EnumProcessModulesEx_ftype, GetModuleInformation_ftype)
      	(GetModuleFileNameExA_ftype, GetModuleFileNameExW_ftype)
      	(LookupPrivilegeValueA_ftype, OpenProcessToken_ftype)
      	(GetConsoleFontSize_ftype)
      	(GetCurrentConsoleFont_ftype, Wow64SuspendThread_ftype)
      	(Wow64GetThreadContext_ftype, Wow64SetThreadContext_ftype)
      	(Wow64GetThreadSelectorEntry_ftype): Likewise.
      	(initialize_loadable): Declare.
      	* nat/windows-nat.c (AdjustTokenPrivileges)
      	(DebugActiveProcessStop, DebugBreakProcess)
      	(DebugSetProcessKillOnExit, EnumProcessModules)
      	(EnumProcessModulesEx, GetModuleInformation, GetModuleFileNameExA)
      	(GetModuleFileNameExW, LookupPrivilegeValueA, OpenProcessToken)
      	(GetCurrentConsoleFont, GetConsoleFontSize, Wow64SuspendThread)
      	(Wow64GetThreadContext, Wow64SetThreadContext)
      	(Wow64GetThreadSelectorEntry): Define.
      	(bad, bad_GetCurrentConsoleFont, bad_GetConsoleFontSize): Move
      	from windows-nat.c.
      	(initialize_loadable): Likewise, and rename.
      9e439f00
    • Tom Tromey's avatar
      Use template functions in windows-nat.c · 1053c638
      Tom Tromey authored
      windows-nat.c defines a number of replacement functions that simply
      return zero.  This patch removes these in favor of a couple of
      template functions.
      
      gdb/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* windows-nat.c (bad_GetModuleFileNameEx): Remove define.
      	(bad_DebugActiveProcessStop, bad_DebugBreakProcess)
      	(bad_DebugSetProcessKillOnExit, bad_EnumProcessModules)
      	(bad_GetModuleFileNameExW, bad_GetModuleFileNameExA)
      	(bad_GetModuleInformation, bad_OpenProcessToken): Remove.
      	(bad): New template functions.
      	(_initialize_loadable): Update.
      1053c638
    • Tom Tromey's avatar
      Use rvalue reference in thread_pool::post_task · 698facb8
      Tom Tromey authored
      Tankut's recent patches made me realize that thread_pool::post_task
      should have used an rvalue reference for its parameter.  This patch
      makes this change.
      
      gdbsupport/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* thread-pool.cc (thread_pool::post_task): Update.
      	* thread-pool.h (class thread_pool) <post_task>: Take rvalue
      	reference to function.
      698facb8
  2. Apr 30, 2021
    • Tom Tromey's avatar
      Fix crash with GNAT minimal encodings · 2869ac4b
      Tom Tromey authored
      Running the AdaCore internal test suite with -fgnat-encodings=minimal
      found a gdb crash.  The bug is that GDB ends up with a typedef in
      ada_index_type, resulting in a NULL dereference.
      
      This crash can be reproduced using GCC 11 with the included test case.
      
      Tested on x86-64 Fedora 32.  Because this is Ada-specific, and was
      already reviewed by Joel, I am going to check it in.
      
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* ada-lang.c (ada_index_type): Use ada_check_typedef.
      
      gdb/testsuite/ChangeLog
      2021-04-30  Tom Tromey  <tromey@adacore.com>
      
      	* gdb.ada/enum_idx_packed/pck.ads (My_Enum, My_Array_Type)
      	(Confused_Array): New types.
      	* gdb.ada/enum_idx_packed/foo.adb (Confused_Array): New variable.
      	* gdb.ada/enum_idx_packed.exp: Add new tests.
      
      2869ac4b
    • Nick Clifton's avatar
      Fix illegal memory access parsing a corrupt MACH-O format file. · d1fbc3ba
      Nick Clifton authored
      	PR 27801
      	* mach-o.c (bfd_mach_o_core_fetch_environment): Use bfd_get_32 to
      	read 32-bit value.
      d1fbc3ba
    • Nick Clifton's avatar
      Fix an illegal memory access when parsing a corrupt core note. · 9f84cb38
      Nick Clifton authored
      	PR 27799
      	* elf32-xtensa.c (elf_xtensa_grok_prstatus): Check for core notes
      	that are too small.
      9f84cb38
    • Nick Clifton's avatar
      Fix a double free when re-allocating a buffer to size 0. · 6cb40a67
      Nick Clifton authored
      	PR 27797
      	* libbfd.c (bfd_realloc_or_free): Do not free a pointer than has
      	been realloc'ed to size 0.
      6cb40a67
    • Nick Clifton's avatar
      Fix attempt to free non-allocated pointer when parsing .debug_sup sections. · bfbfa6e7
      Nick Clifton authored
      	PR 27796
      	* dwarf.c (load_debug_sup_file): Allocate memory for filename in
      	.debug_sup section.
      bfbfa6e7
    • Nick Clifton's avatar
      Fix illegal memory access when parsing a corrupt PE format file. · bceb87ef
      Nick Clifton authored
      	PR 27795
      	* coff-rs6000.c (_bfd_xcoff_read_ar_hdr): Check for invalid name
      	lengths.
      bceb87ef
    • Tom de Vries's avatar
      [gdb/testsuite] Make gdb.mi/mi-sym-info.exp more robust against timeouts · 5536f0cc
      Tom de Vries authored
      Once in a while, I run into this timeout:
      ...
      FAIL: gdb.mi/mi-sym-info.exp: List all variables from debug information \
        only (timeout)
      ...
      
      I can make the timeout reproducible by setting timeout to 8s (instead of the
      default 10s) for the duration of that test.
      
      Make the test-case more stable by fixing all timeouts caused by setting
      timeout to 5, either by adding with_timeout_factor, or increasing its factor.
      
      Tested on x86_64-linux.  Also tested in parallel with stress -c 5, to simulate
      a busy system in another way.
      
      gdb/testsuite/ChangeLog:
      
      2021-04-30  Tom de Vries  <tdevries@suse.de>
      
      	* gdb.mi/mi-sym-info.exp: Add with_timeout_factor, and increase
      	existing timeout factors.
      5536f0cc
    • Tom de Vries's avatar
      [gdb/testsuite] Fix duplicate test name in gdb.mi/mi-sym-info.exp · 7f7f284d
      Tom de Vries authored
      Since commit 2d61316c "[gdb/testsuite] Fix buffer full errors in
      gdb.mi/mi-sym-info.exp", we have a duplicate test name:
      ...
      Running src/gdb/testsuite/gdb.mi/mi-sym-info.exp ...
      DUPLICATE: gdb.mi/mi-sym-info.exp: List all variables
      ...
      
      This is caused by a copy-paste accident: the idea was to copy the test, edit
      it, and then remove the old test, but I forgot to remove the old one.
      Remove it now.
      
      Tested on x86_64-linux.
      
      gdb/testsuite/ChangeLog:
      
      2021-04-30  Tom de Vries  <tdevries@suse.de>
      
      	* gdb.mi/mi-sym-info.exp: Remove duplicate test.
      7f7f284d
    • GDB Administrator's avatar
      Automatic date update in version.in · 7a8238b0
      GDB Administrator authored
      7a8238b0
    • Tom de Vries's avatar
      [gdb/testsuite] Fix timeout in gdb.base/valgrind-infcall-2.exp · 3f334074
      Tom de Vries authored
      Since commit 6d5702a5 "Fix test case gdb.base/valgrind-bt.exp" I run into:
      ...
      FAIL: gdb.base/valgrind-infcall-2.exp: target remote for vgdb (timeout)
      FAIL: gdb.base/valgrind-infcall-2.exp: monitor v.set gdb_output (timeout)
      ...
      
      The commit adds this line in proc vgdb_start:
      ...
          set vgdbcmd "set remotetimeout 3"
      ...
      which has no effect given that the value of var vgdbcmd is not used before
      it's overwritten.  We can fix this by doing instead:
      ...
          set_remotetimeout 3
      ...
      
      The FAIL I'm observing is fixed by increasing the remotetimeout value to 4.
      
      Tested on x86_64-linux.
      
      gdb/testsuite/ChangeLog:
      
      2021-04-29  Tom de Vries  <tdevries@suse.de>
      
      	PR testsuite/27786
      	* lib/valgrind.exp (vgdb_start): Use set_remotetimeout.  Increase
      	remotetimeout to 4.
      3f334074
    • Simon Marchi's avatar
      gdb: don't use C++17 namespace declaration style · e197dfae
      Simon Marchi authored
      In a review, I suggested to use "namespace gdb::observers" instead of
      two separate namespace declarations.  I didn't realize that this was a
      C++17 feature, which breaks compilers that default to an earlier version
      of the language, like g++ 4.8.  Change it back to two separate
      declarations.
      
      gdb/ChangeLog:
      
      	* auto-load.h: Split namespace declaration.
      
      Change-Id: I701537161967fbd9fcc298ff600bd072aab1251d
      e197dfae
    • Nick Clifton's avatar
      Fix an access through a null pointer when parsing a corrupt SOM format fle. · 09e40e44
      Nick Clifton authored
      	PR 27793
      	* som.c (som_slurp_symbol_table): Assign symbols without any scope
      	to the undefined section.
      	(som_decode_symclass): Check for a missing symbol section.
      	* syms.c (bfd_decode_symclass): Likewise.
      09e40e44
    • Nick Clifton's avatar
      Fix illegal memory accesses when parsing a corrupt SOM format file. · 063e75c9
      Nick Clifton authored
      	PR 27792
      	* som.c (som_slurp_string_table): Place a terminating NUL byte at
      	the end of the table.
      	(som_slurp_symbol_table): Check for an over-large offset into the
      	string string table.
      063e75c9
  3. Apr 29, 2021
    • Simon Marchi's avatar
      gdb: move some variables to an inner scope in save_waitstatus · 89ba430c
      Simon Marchi authored
      These two variables:
      
            struct regcache *regcache = get_thread_regcache (tp);
            const address_space *aspace = regcache->aspace ();
      
      are only needed inside the "if".  Getting a thread's regcache is a
      somewhat expensive operation, so it's good to avoid it if not necessary.
      Move the variable declarations and their initialization to the "if"
      scope.
      
      gdb/ChangeLog:
      
      	* infrun.c (save_waitstatus): Move variables to inner scope.
      
      Change-Id: Ief1463728755b4dcc142c0a0a76896e9d594ae84
      89ba430c
    • Jan Beulich's avatar
      x86-64: adjust recently added tests · a2443c89
      Jan Beulich authored
      Five of them fail for Cygwin and MingW. Adjust four and move one to the
      ELF-only section.
      a2443c89
    • Nick Clifton's avatar
      Correct the text describing windres's --processor option. · 5edb8e3f
      Nick Clifton authored
       PR 27594
       * doc/binutils.texi (windres): Correct the description of the
       default value of the --preprocessor argument.
      5edb8e3f
    • Jan Beulich's avatar
      x86: relax when/how @size can be used · 3abbafc2
      Jan Beulich authored
      Allow a few more expression forms when the entire expression can be
      resolved at assembly time. For this, i386_validate_fix() needs to
      arrange for all processing of the relocation to be deferred to
      tc_gen_reloc().
      3abbafc2
    • Jan Beulich's avatar
      x86: allow @size to also (sensibly) apply to sections · 44f87162
      Jan Beulich authored
      So far this (counter-intuitively) produced the size as recorded in the
      (section) symbol. Obtain the section's size instead for section symbols.
      (I wonder whether STT_SECTION symbols couldn't properly hold the
      section's size in their st_size field, which in turn would likely mean
      the internal symbol would also have its size properly updated.)
      
      Note that this is not the same as the .sizeof.() pseudo-operator: @size
      yields the local file's contribution to a section, while .sizeof.() gets
      resolved by the linker to produce the final full section's size.
      
      As to the 3rd each of the expected output lines in the changed testcase:
      I can't find justification for zzz to come after yyy despite them being
      defined in the opposite order in source. Therefore I think it's better
      to permit both possible outcomes.
      44f87162
    • Andrew Burgess's avatar
      gdb/NEWS: Fix typo and stray full stop · 8eb82ba1
      Andrew Burgess authored
      Some errors introduced in commit:
      
        commit edeaceda
        Date:   Thu Aug 27 16:53:13 2020 +0100
      
            gdb: startup commands to control Python extension language
      
      gdb/ChangeLog:
      
      	* NEWS: Fix typo and stray full stop.
      8eb82ba1
    • GDB Administrator's avatar
      Automatic date update in version.in · ae95c78d
      GDB Administrator authored
      ae95c78d
    • Tom Tromey's avatar
      Fix Ada overloading with 'null' · db2534b7
      Tom Tromey authored
      Currently, the Ada expression parser treats 'null' as an integer 0.
      However, this causes overloading to fail in certain cases.
      
      This patch changes the Ada expression parser to use a special type for
      'null'.  I chose pointer-to-int0, because I think that's not likely to
      be needed for any other Ada expression.  Note this works because a
      "mod 1" type has an underlying non-zero byte size; the test includes a
      check for this.
      
      The output is changed so that "print null", by default, shows "null".
      And, ada_type_match is changed both to recognize the special null type
      and to remove a bit of weird code related to how pointers are treated
      for overload type matching.
      
      Tested on x86-64 Fedora 32.  Because this only touches Ada, and Joel
      already approved it internally at AdaCore, I am checking it in.
      
      gdb/ChangeLog
      2021-04-28  Tom Tromey  <tromey@adacore.com>
      
      	* ada-exp.y (primary): Use new type for null pointer.
      	* ada-lang.c (ada_type_match): Remove "may_deref"
      	parameter.  Handle null pointer.
      	(ada_args_match): Update.
      	* ada-valprint.c (ada_value_print_ptr, ada_value_print):
      	Handle null pointer.
      
      gdb/testsuite/ChangeLog
      2021-04-28  Tom Tromey  <tromey@adacore.com>
      
      	* gdb.ada/null_overload.exp: New file.
      	* gdb.ada/null_overload/foo.adb: New file.
      db2534b7
  4. Apr 28, 2021
    • Andrew Burgess's avatar
      gdb/doc: use @env to reference environment variables · e43c3e2a
      Andrew Burgess authored
      Clean up a few places where we are not using @env{...} to reference
      environment variables.
      
      gdb/doc/ChangeLog:
      
      	* gdb.texinfo (Initialization Files): Use @env when referencing
      	environment variables.
      	(Shell Commands): Likewise.
      	(Starting): Likewise.
      	(Arguments): Likewise.
      	(Environment): Likewise.
      	(Edit): Likewise.
      	(Compiling and Injecting Code): Likewise.
      	(Files): Likewise.
      	(Command History): Likewise.
      	(Screen Size): Likewise.
      	(Emacs): Likewise.
      e43c3e2a
    • Nick Clifton's avatar
      Stop the BFD library from treating annobin symbols as potential function symbols. · 24aebc79
      Nick Clifton authored
      bfd	* elf.c (_bfd_elf_maybe_function_sym): Do not accept annobin
      	symbols as potential function symbols.
      	* elfnn-aarch64.c (elfNN_aarch64_maybe_function_sym): Likewise.
      	* elf64-ppc.c (ppc64_elf_maybe_function_sym): Likewise.
      	* elf32-arm.c (elf32_arm_maybe_function_sym): Likewise.
      
      ld	* testsuite/ld-elf/anno-sym.s: New test source file.
      	* testsuite/ld-elf/anno-sym.d: New test driver.
      	* testsuite/ld-elf/anno-sym.l: New test error output.
      24aebc79
    • Andrew Burgess's avatar
      gdb: startup commands to control Python extension language · edeaceda
      Andrew Burgess authored
      Add two new commands to GDB that can be placed into the early
      initialization to control how Python starts up.  The new options are:
      
        set python ignore-environment on|off
        set python dont-write-bytecode auto|on|off
      
        show python ignore-environment
        show python dont-write-bytecode
      
      These can be used from GDB's startup file to control how the Python
      extension language behaves.  These options are equivalent to the -E
      and -B flags to python respectively, their descriptions from the
      Python man page:
      
        -E     Ignore environment variables like PYTHONPATH and PYTHONHOME
               that modify the  behavior  of  the  interpreter.
      
        -B     Don't write .pyc files on import.
      
      gdb/ChangeLog:
      
      	* NEWS: Mention new commands.
      	* python/python.c (python_ignore_environment): New static global.
      	(show_python_ignore_environment): New function.
      	(set_python_ignore_environment): New function.
      	(python_dont_write_bytecode): New static global.
      	(show_python_dont_write_bytecode): New function.
      	(set_python_dont_write_bytecode): New function.
      	(_initialize_python): Register new commands.
      
      gdb/doc/ChangeLog:
      
      	* python.texinfo (Python Commands): Mention new commands.
      
      gdb/testsuite/ChangeLog:
      
      	* gdb.python/py-startup-opt.exp: New file.
      edeaceda
    • Andrew Burgess's avatar
      gdb: extension languages finish_initialization to initialize · 041ca48e
      Andrew Burgess authored
      Now that both Python and Guile are fully initialized from their
      respective finish_initialization methods, the "finish" in the method
      name doesn't really make sense; initialization starts _and_ finishes
      with that method.
      
      As such, this commit renames finish_initialization to just initialize.
      
      There should be no user visible changes after this commit.
      
      gdb/ChangeLog:
      
      	* extension-priv.h (struct extension_language_ops): Rename
      	'finish_initialization' to 'initialize'.
      	* extension.c (finish_ext_lang_initialization): Renamed to...
      	(ext_lang_initialization): ...this, update comment, and updated
      	the calls to reflect the change in struct extension_language_ops.
      	* extension.h (finish_ext_lang_initialization): Renamed to...
      	(ext_lang_initialization): ...this.
      	* guile/guile.c (gdbscm_finish_initialization): Renamed to...
      	(gdbscm_initialize): ...this, update comment at definition.
      	(guile_extension_ops): Update.
      	* main.c (captured_main_1): Update call to
      	finish_ext_lang_initialization.
      	* python/python.c (gdbpy_finish_initialization): Rename to...
      	(gdbpy_initialize): ...this, update comment at definition, and
      	update call to do_finish_initialization.
      	(python_extension_ops): Update.
      	(do_finish_initialization): Rename to...
      	(do_initialize): ...this, and update comment.
      041ca48e
    • Andrew Burgess's avatar
      gdb: initialise extension languages after processing early startup files · 1178f01a
      Andrew Burgess authored
      Now (thanks to the last few commits) all extension languages are
      fully initialised in their finish_initialization method, this commit
      delays the call to this method until after the early initialization
      files have been processed.
      
      Right now there's no benefit from doing this, but in a later commit I
      plan to add new options for Python that will control how Python is
      initialized.
      
      With this commit in place, my next commits will allow the user to add
      options to their early initialization file and alter how Python starts
      up.
      
      There should be no user visible changes after this commit.
      
      gdb/ChangeLog:
      
      	* main.c (captured_main_1): Add a call to
      	finish_ext_lang_initialization.
      	* top.c (gdb_init): Remove call to finish_ext_lang_initialization.
      1178f01a
    • Andrew Burgess's avatar
      gdb delay guile initialization until gdbscm_finish_initialization · 880ae75a
      Andrew Burgess authored
      Like with the previous commit, this commit delays the initialisation
      of the guile extension language until gdbscm_finish_initialization.
      
      This is mostly about splitting the existing gdbscm_initialize_*
      functions in two, all the calls to register_objfile_data_with_cleanup,
      gdbarch_data_register_post_init, etc are moved into new _initialize_*
      functions, but everything else is left in the gdbscm_initialize_*
      functions.
      
      Then the call to code previously in _initialize_guile is moved into
      gdbscm_finish_initialization.
      
      There should be no user visible changes after this commit.
      
      gdb/ChangeLog:
      
      	* guile/guile.c (gdbscm_set_backtrace): Add declaration.
      	(gdbscm_finish_initialization): Add code moved from
      	_initialize_guile.
      	(_initialize_guile): Move code to gdbscm_finish_initialization.
      	* guile/scm-arch.c (gdbscm_initialize_arches): Move some code into
      	_initialize_scm_arch.
      	(_initialize_scm_arch): New function.
      	* guile/scm-block.c (gdbscm_initialize_blocks): Move some code
      	into _initialize_scm_block.
      	(_initialize_scm_block): New function.
      	* guile/scm-frame.c (gdbscm_initialize_frames): Move some code
      	into _initialize_scm_frame.
      	(_initialize_scm_frame): New function.
      	* guile/scm-objfile.c (gdbscm_initialize_objfiles): Move some code
      	into _initialize_scm_objfile.
      	(_initialize_scm_objfile): New function.
      	* guile/scm-progspace.c (gdbscm_initialize_pspaces): Move some
      	code into _initialize_scm_progspace.
      	(_initialize_scm_progspace): New function.
      	* guile/scm-symbol.c (gdbscm_initialize_symbols): Move some code
      	into _initialize_scm_symbol.
      	(_initialize_scm_symbol): New function.
      	* guile/scm-symtab.c (gdbscm_initialize_symtabs): Move some code
      	into _initialize_scm_symtab.
      	(_initialize_scm_symtab): New function.
      	* guile/scm-type.c (gdbscm_initialize_types): Move some code into
      	_initialize_scm_type.
      	(_initialize_scm_type): New function.
      880ae75a
    • Andrew Burgess's avatar
      gdb: delay python initialisation until gdbpy_finish_initialization · 8e3685bf
      Andrew Burgess authored
      Delay Python initialisation until gdbpy_finish_initialization.
      
      This is mostly about splitting the existing gdbpy_initialize_*
      functions in two, all the calls to register_objfile_data_with_cleanup,
      gdbarch_data_register_post_init, etc are moved into new _initialize_*
      functions, but everything else is left in the gdbpy_initialize_*
      functions.
      
      Then the call to do_start_initialization (in python/python.c) is moved
      from the _initialize_python function into gdbpy_finish_initialization.
      
      There should be no user visible changes after this commit.
      
      gdb/ChangeLog:
      
      	* python/py-arch.c (_initialize_py_arch): New function.
      	(gdbpy_initialize_arch): Move code to _initialize_py_arch.
      	* python/py-block.c (_initialize_py_block): New function.
      	(gdbpy_initialize_blocks): Move code to _initialize_py_block.
      	* python/py-inferior.c (_initialize_py_inferior): New function.
      	(gdbpy_initialize_inferior): Move code to _initialize_py_inferior.
      	* python/py-objfile.c (_initialize_py_objfile): New function.
      	(gdbpy_initialize_objfile): Move code to _initialize_py_objfile.
      	* python/py-progspace.c (_initialize_py_progspace): New function.
      	(gdbpy_initialize_pspace): Move code to _initialize_py_progspace.
      	* python/py-registers.c (_initialize_py_registers): New function.
      	(gdbpy_initialize_registers): Move code to
      	_initialize_py_registers.
      	* python/py-symbol.c (_initialize_py_symbol): New function.
      	(gdbpy_initialize_symbols): Move code to _initialize_py_symbol.
      	* python/py-symtab.c (_initialize_py_symtab): New function.
      	(gdbpy_initialize_symtabs): Move code to _initialize_py_symtab.
      	* python/py-type.c (_initialize_py_type): New function.
      	(gdbpy_initialize_types): Move code to _initialize_py_type.
      	* python/py-unwind.c (_initialize_py_unwind): New function.
      	(gdbpy_initialize_unwind): Move code to _initialize_py_unwind.
      	* python/python.c (_initialize_python): Move call to
      	do_start_initialization to gdbpy_finish_initialization.
      	(gdbpy_finish_initialization): Add call to
      	do_start_initialization.
      8e3685bf
    • Andrew Burgess's avatar
      gdb: ensure SIGINT is set to SIG_DFL during initialisation · 913832e9
      Andrew Burgess authored
      In order for our SIGINT handling to work correctly with Python we
      require that SIGINT be set to SIG_DFL during Python's initialisation.
      
      Currently this is the case, but, in a later commit I plan to delay the
      initialisation of Python until after the point where GDB's own SIGINT
      handler has been installed.
      
      The consequence of this is that our SIGINT handling would become
      broken.
      
      In this commit I propose adding an RAII class that will ensure SIGINT
      is set to SIG_DFL during the call to each extension languages
      finish_initialization method.
      
      At this point this change should have not effect.
      
      gdb/ChangeLog:
      
      	* extension.c (struct scoped_default_signal): New struct.
      	(scoped_default_sigint): New typedef.
      	(finish_ext_lang_initialization): Make use of
      	scoped_default_sigint.
      913832e9
    • Andrew Burgess's avatar
      gdb: remove unused argument from gdb_init · a3b5ef3e
      Andrew Burgess authored
      The argument to gdb_init is not used, remove it.
      
      There should be no user visible changes after this commit.
      
      gdb/ChangeLog:
      
      	* main.c (captured_main_1): Don't pass argument to gdb_init.
      	* top.c (gdb_init): Remove unused argument, and add header
      	comment.
      	* top.h (gdb_init): Remove argument.
      a3b5ef3e
    • Jan Beulich's avatar
      x86: honor signedness of PC-relative relocations · eb19308f
      Jan Beulich authored
      PR gas/27763
      
      While the comment in output_jump() was basically correct prior to the
      introduction of 64-bit mode, both that and the not-JMP-like behavior of
      XBEGIN require adjustments: Branches with 32-bit displacement do not
      wrap at 4G in 64-bit mode, and XBEGIN with 16-bit operand size doesn't
      wrap at 64k. Similarly %rip-relative addressing doesn't wrap at 4G.
      
      The new testcase points out that for PE/COFF object_64bit didn't get
      set so far, preventing in particular the check at the end of
      md_convert_frag() to take effect.
      
      For Mach-O the new testcase fails (bogusly), in that only the first two
      of the expected errors get raised. Since for Mach-O many testcases
      already fail, and since an x86_64-darwin target can't even be configured
      for, I didn't think I need to bother.
      
      Note that there are further issues in this area, in particular for
      branches with operand size overrides. Such branches, which truncate
      %rip / %eip, can't be correctly expressed with ordinary PC-relative
      relocations. It's not really clear what to do with them - perhaps the
      best we can do is to carry through all associated relocations, leaving
      it to the linker (or even loader) to decide (once the final address
      layout is known). Same perhaps goes for relocations associated with
      32-bit addressing in 64-bit mode.
      eb19308f
    • GDB Administrator's avatar
      Automatic date update in version.in · 6c356992
      GDB Administrator authored
      6c356992