aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-05-13dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine.Doug Evans2-0/+6
gdb/ChangeLog: * dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine.
2015-05-13Make regcache_cpy_no_passthrough staticJan Kratochvil3-8/+18
regcache_cpy_no_passthrough is no longer used for a standalone call. gdb/ChangeLog 2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com> * regcache.c (regcache_cpy_no_passthrough): New declaration. (regcache_cpy_no_passthrough): Make it static, add function comment. * regcache.h (regcache_dup, regcache_cpy): Reduce/update their comment. (regcache_cpy_no_passthrough): Remove declaration.
2015-05-13Remove stop_registersJan Kratochvil6-38/+16
Now stop_registers are no longer used and it can be removed. I am not much sure what 'proceed_to_finish' really means now so I make a wild guess while updating comments about it. gdb/ChangeLog 2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com> * gdbthread.h (struct thread_control_state): Update comment for proceed_to_finish. * infcall.c (run_inferior_call): Update comment about proceed_to_finish. * infcmd.c (get_return_value): Update comment about stop_registers. (finish_forward): Update comment about proceed_to_finish. * infrun.c (stop_registers): Remove. (clear_proceed_status, normal_stop): Remove stop_registers handling. * infrun.h (stop_registers): Remove.
2015-05-13infcall: stop_registers -> register_dummy_frame_dtorJan Kratochvil6-25/+188
With dummy_frame destructors GDB no longer has to use global stop_registers. dummy_frame's registers can be now stored associated with their specific dummy_frame. gdb/ChangeLog 2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com> * infcall.c (struct dummy_frame_context_saver) (dummy_frame_context_saver_data_free, dummy_frame_context_saver_dtor) (dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup) (dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup): New. (call_function_by_hand_dummy): Move discard_cleanups of inf_status_cleanup before dummy_frame_push. Call dummy_frame_context_saver_setup and prepare context_saver_cleanup. Use dummy_frame_context_saver_get_regs instead of stop_registers. * infcall.h (struct dummy_frame_context_saver) (dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup) (dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup): New declarations. * infcmd.c: Include infcall.h. (get_return_value): Add parameter ctx_saver, use it instead of stop_registers. (print_return_value): Add parameter ctx_saver, pass it. (struct finish_command_continuation_args): Add field ctx_saver. (finish_command_continuation): Update print_return_value caller. (finish_command_continuation_free_arg): Free also ctx_saver. (finish_forward): Call dummy_frame_context_saver_setup. * inferior.h (struct dummy_frame_context_saver): New declaration. (get_return_value): Add parameter ctx_saver. * python/py-finishbreakpoint.c (bpfinishpy_pre_stop_hook): Update get_return_value caller.
2015-05-13register_dummy_frame_dtor: Permit multiple dtorsJan Kratochvil3-18/+62
Later patch needs two independent destructors for the same dummy_frame. Therefore the registrar has been extended to an arbitrary number of destructors. gdb/ChangeLog 2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com> * dummy-frame.c (struct dummy_frame_dtor_list): New. (struct dummy_frame): Replace dtor and dtor_data by dtor_list. (remove_dummy_frame): Process dtor_list. (pop_dummy_frame): Process dtor_list. (register_dummy_frame_dtor): Maintain dtor_list. (find_dummy_frame_dtor): Handle dtor_list. * dummy-frame.h (register_dummy_frame_dtor, find_dummy_frame_dtor): Update comments.
2015-05-13Call dummy_frame_dtor_ftype also from remove_dummy_frameJan Kratochvil4-7/+23
There was now a leak-like bug that if dummy_frame "disappeared" by remove_dummy_frame then its destructor was not called. For example in the case of 'compile code' dummy frames the injected objfile would never get freed after some inferior longjmp out of the injected code. gdb/ChangeLog 2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com> * compile/compile-object-run.c (do_module_cleanup): Add parameter registers_valid. (compile_object_run): Update do_module_cleanup caller. * dummy-frame.c: Include infcall.h. (struct dummy_frame): Update dtor comment. (remove_dummy_frame): Call dtor. (pop_dummy_frame): Update dtor caller. * dummy-frame.h (dummy_frame_dtor_ftype): Add parameter registers_valid.
2015-05-13Document the GDB 7.9.1 release in gdb/ChangeLogJoel Brobecker1-0/+4
gdb/ChangeLog: GDB 7.9.1 released.
2015-05-13gdb/NEWS: Move "Xmethods can now specify a result type" to GDB 7.9.1 section.Joel Brobecker2-1/+12
As this change was ported to GDB 7.9.1, the NEWS entry is moved to a newly-created "Changes in GDB 7.9.1" section, matching the NEWS file which is going to be distributed with the GDB 7.9.1 release. gdb/ChangeLog: * NEWS: Create "Changes in GDB 7.9.1" section. Move news about Xmethods now being able to specify a result type to that new section.
2015-05-13Disable the configuration of GDB for HPUX targets.John David Anglin3-8/+19
* configure.ac: Disable configuration of GDB for HPUX targets. * configure: Regenerate.
2015-05-13xtensa: fix gas trampolines regressionMax Filippov4-2/+20
Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline selection results in regressions: when relaxable jump is little longer than J_RANGE so that single trampoline makes two new jumps, one longer than J_RANGE / 2 and one shorter, correct trampoline cannot be found. Drop that condition. 2015-05-13 Max Filippov <jcmvbkbc@gmail.com> gas/ * config/tc-xtensa.c (xtensa_relax_frag): Allow trampoline to be closer than J_RANGE / 2 to jump frag. gas/testsuite/ * gas/xtensa/trampoline.s: Add regression testcase.
2015-05-13Add missing ChangeLog entry for previous commitPatrick Palka1-1/+7
2015-05-13Avoid race condition when handling a SIGWINCH signalPatrick Palka2-2/+2
The control variable win_resized must be cleared before responding to it. Otherwise there is a small window where another SIGWINCH might occur in between the handling of an earlier SIGWINCH and the clearing of win_resized, at which point win_resized would be set (again) by the signal handler. Shortly thereafter we would clear win_resized even though we only handled the earlier SIGWINCH but not the latest one. This chain of events is all avoided if we clear win_resized first. gdb/ChangeLog: * tui/tui-win.c (tui_async_resize_screen): Clear win_resized first before resizing the window. * tui.c (tui_enable): Likewise.
2015-05-13dummy_frame_dtor_ftype vs. call_function_by_hand_dummy_dtor_ftype cleanupJan Kratochvil5-5/+19
Both dummy_frame_dtor_ftype and call_function_by_hand_dummy_dtor_ftype represent the same type, there was some mistake/duplication during check-in. gdb/ChangeLog 2015-05-08 Jan Kratochvil <jan.kratochvil@redhat.com> * dummy-frame.c (struct dummy_frame): Use proper typedef for dtor. * dummy-frame.h (dummy_frame_dtor_ftype): Add its comment. * infcall.c (call_function_by_hand_dummy): Use proper typedef for dummy_dtor parameter. * infcall.h: Include dummy-frame.h. (call_function_by_hand_dummy_dtor_ftype): Remove. (call_function_by_hand_dummy): Use proper typedef for dummy_dtor parameter.
2015-05-13Fix PR gdb/17820Patrick Palka6-30/+95
This patch is a comprehensive fix for PR 17820 which reports that using "set history size unlimited" inside one's gdbinit file doesn't really work. There are three small changes in this patch. The most important change this patch makes is to decode the argument of the "size" subcommand using add_setshow_zuinteger_unlimited_cmd() instead of using add_setshow_uinteger_cmd(). The new decoder takes an int * and maps unlimited to -1 whereas the old decoder takes an unsigned int * and maps unlimited to UINT_MAX. Using the new decoder simplifies our handling of unlimited and makes it easier to interface with readline which itself expects a signed-int history size. The second change is the factoring of the [stifle|unstifle]_history logic into a common function which is now used by both init_history() and set_history_size_command(). This is technically the change that fixes the PR itself. Thirdly, this patch initializes history_size_setshow_var to -2 to mean that the variable has not been set yet. Now init_history() tests for -2 instead of 0 to determine whether to give the variable a default value. This means that having "set history size 0" in one's gdbinit file will actually keep the history size at 0 and not reset it to 256. gdb/ChangeLog: PR gdb/17820 * top.c (history_size_setshow_var): Change type to signed. Initialize to -2. Update documentation. (set_readline_history_size): Define. (set_history_size_command): Use it. Remove logic for handling out-of-range sizes. (init_history): Use set_readline_history_size(). Test for a value of -2 instead of 0 when determining whether to set a default history size. (init_main): Decode the argument of the "size" command as a zuinteger_unlimited. gdb/testsuite/ChangeLog: PR gdb/17820 * gdb.base/gdbinit-history.exp: New test. * gdb.base/gdbinit-history/unlimited/.gdbinit: New file. * gdb.base/gdbinit-history/zero/.gdbinit: New file.
2015-05-13Revert "Add -mno-shared to x86 assembler"H.J. Lu7-110/+0
This reverts commit 573cc2e57db66165b390044338d3a4ad51f36bf8.
2015-05-13Add missing ChangeLog entries for PR binutis/18386H.J. Lu3-0/+30
2015-05-13Return ELF_CLASS_BOTH by defaultH.J. Lu2-2/+5
* elfedit.c (elf_class): Return ELF_CLASS_BOTH by default.
2015-05-13MAINTAINERS: Add myself as s390 and s390x maintainer.Andreas Krebbel2-0/+5
binutils/ * MAINTAINERS: Add myself as s390 and s390x maintainer.
2015-05-13Automatic date update in version.inGDB Administrator1-1/+1
2015-05-12Allocate the first .plt entry space only if neededH.J. Lu10-11/+63
Commit dd7e64d45b317128f5fe813a8da0b13b4ad046ae may optimize out i386/x86-64 JUMP_SLOT relocation. If there is no JUMP_SLOT relocation left, we don't need to the first .plt entry. This patch allocates space for the first .plt entry only if we also reserve space for a PLT slot for JUMP_SLOT relocation. bfd/ * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate space for the first .plt entry only if needed. * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. ld/testsuite/ * ld-i386/i386.exp: Run pltgot-1 for Linux targets. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pltgot-1.d: New file. * ld-i386/pltgot-1.s: Likewise. * ld-x86-64/pltgot-1.d: Likewise. * ld-x86-64/pltgot-1.s: Likewise.
2015-05-12Also skip x86_64-*-nacl*H.J. Lu2-1/+5
* binutils-all/elfedit-1.d: Also skip x86_64-*-nacl*.
2015-05-12tweak some commentsDoug Evans2-4/+10
gdb/ChangeLog: * dwarf2read.c (struct file_entry): Tweak comments. (get_debug_line_section): Tweak comments.
2015-05-12Extended-remote fork event docsDon Breazeal4-0/+124
This patch contains the accumulated documentation changes for the rest of the extended-remote follow fork patchset. gdb/ChangeLog: * NEWS: Announce fork support in the RSP and support for fork debugging in extended mode. gdb/doc/ChangeLog: * gdb.texinfo (Forks): Note that fork debugging is supported in extended mode. (Remote Configuration): Add fork event features to table of packet settings. (Stop Reply Packets): Add fork events to list of stop reasons. (General Query Packets): Add fork events to tables of 'gdbfeatures' and 'stub features' supported in the qSupported packet, as well as to the list containing stub feature details.
2015-05-12Extended-remote fork catchDon Breazeal2-3/+241
This patch implements catchpoints for fork events on extended-remote Linux targets. Implementation appeared to be straightforward, requiring four new functions in remote.c to implement insert/remove of fork/vfork catchpoints. These functions are essentially stubs that just return 0 ('success') if the required features are enabled. If the fork events are being reported, then catchpoints are set and hit. However, there are some extra issues that arise with catchpoints. 1) Thread creation reporting -- fork catchpoints are hit before the follow_fork has been completed. When stopped at a fork catchpoint in the native implementation, the new process is not 'reported' until after the follow is done. It doesn't show up in the inferiors list or the threads list. However, in the gdbserver case, an 'info threads' while stopped at a fork catchpoint will retrieve the new thread info from the target and add it to GDB's data structures, prior to the follow operations. Because of this premature report, things on the GDB side eventually get very confused. So in remote.c:remote_update_thread_list, we check to see if there are any pending fork parent threads. If there are we remove the related fork child thread from the thread list sent by the target. 2) Kill process before fork is followed -- on the native side in linux-nat.c:linux_nat_kill, there is some code to handle the case where a fork has occurred but follow_fork hasn't been called yet. It does this by using the last status to determine if a follow is pending, and if it is, to kill the child task. The use of last_status is fragile in situations like non-stop mode where other events may have occurred after the fork event. This patch identifies a fork parent in remote.c:extended_remote_kill in a way similar to that used in thread creation reporting above. If one is found, it kills the new child as well. Tested on x64 Ubuntu Lucid, native, remote, extended-remote. Tested the case of killing the forking process before the fork has been followed manually. gdb/ChangeLog: * remote.c (remote_insert_fork_catchpoint): New function. (remote_remove_fork_catchpoint): New function. (remote_insert_vfork_catchpoint): New function. (remote_remove_vfork_catchpoint): New function. (pending_fork_parent_callback): New function. (remove_new_fork_child): New function. (remote_update_thread_list): Call remote_notif_get_pending_events and remove_new_fork_child. (extended_remote_kill): Kill fork child when killing the parent before follow_fork completes. (init_extended_remote_ops): Initialize target vector with new fork catchpoint functions.
2015-05-12Extended-remote follow vforkDon Breazeal6-7/+78
This patch implements follow-fork for vfork on extended-remote Linux targets. The implementation follows the native implementation as much as possible. Most of the work is done on the GDB side in the existing code now in infrun.c. GDBserver just has to report the events and do a little bookkeeping. Implementation includes: * enabling VFORK events by adding ptrace options for VFORK and VFORK_DONE to linux-low.c:linux_low_ptrace_options. * handling VFORK and VFORK_DONE events in linux-low.c:handle_extended_wait and reporting them to GDB. * including VFORK and VFORK_DONE events in the predicate linux-low.c:extended_event_reported. * adding support for VFORK and VFORK_DONE events in RSP by adding stop reasons "vfork" and "vforkdone" to the 'T' Stop Reply Packet in both gdbserver/remote-utils.c and gdb/remote.c. Tested on x64 Ubuntu Lucid, native, remote, extended-remote. gdb/gdbserver/ChangeLog: * linux-low.c (handle_extended_wait): Handle PTRACE_EVENT_FORK and PTRACE_EVENT_VFORK_DONE. (linux_low_ptrace_options, extended_event_reported): Add vfork events. * remote-utils.c (prepare_resume_reply): New stop reasons "vfork" and "vforkdone" for RSP 'T' Stop Reply Packet. * server.h (report_vfork_events): Declare global variable. gdb/ChangeLog: * remote.c (remove_vfork_event_p): New function. (remote_follow_fork): Add vfork event type to event checking. (remote_parse_stop_reply): New stop reasons "vfork" and "vforkdone" for RSP 'T' Stop Reply Packet.
2015-05-12Arch-specific remote follow forkDon Breazeal7-12/+187
This patch implements the architecture-specific pieces of follow-fork for remote and extended-remote Linux targets, which in the current implementation copyies the parent's debug register state into the new child's data structures. This is required for x86, arm, aarch64, and mips. This follows the native implementation as closely as possible by implementing a new linux_target_ops function 'new_fork', which is analogous to 'linux_nat_new_fork' in linux-nat.c. In gdbserver, the debug registers are stored in the process list, instead of an architecture-specific list, so the function arguments are process_info pointers instead of an lwp_info and a pid as in the native implementation. In the MIPS implementation the debug register mirror is stored differently from x86, ARM, and aarch64, so instead of doing a simple structure assignment I had to clone the list of watchpoint structures. Tested using gdb.threads/watchpoint-fork.exp on x86, and ran manual tests on a MIPS board and an ARM board. Aarch64 hasn't been tested. gdb/gdbserver/ChangeLog: * linux-aarch64-low.c (aarch64_linux_new_fork): New function. (the_low_target) <new_fork>: Initialize new member. * linux-arm-low.c (arm_new_fork): New function. (the_low_target) <new_fork>: Initialize new member. * linux-low.c (handle_extended_wait): Call new target function new_fork. * linux-low.h (struct linux_target_ops) <new_fork>: New member. * linux-mips-low.c (mips_add_watchpoint): New function extracted from mips_insert_point. (the_low_target) <new_fork>: Initialize new member. (mips_linux_new_fork): New function. (mips_insert_point): Call mips_add_watchpoint. * linux-x86-low.c (x86_linux_new_fork): New function. (the_low_target) <new_fork>: Initialize new member.
2015-05-12Extended-remote Linux follow forkDon Breazeal14-106/+415
This patch implements basic support for follow-fork and detach-on-fork on extended-remote Linux targets. Only 'fork' is supported in this patch; 'vfork' support is added n a subsequent patch. This patch depends on the previous patches in the patch series. Sufficient extended-remote functionality has been implemented here to pass gdb.base/multi-forks.exp, as well as gdb.base/foll-fork.exp with the catchpoint tests commented out. Some other fork tests fail with this patch because it doesn't provide the architecture support needed for watchpoint inheritance or fork catchpoints. The implementation follows the same general structure as for the native implementation as much as possible. This implementation includes: * enabling fork events in linux-low.c in initialize_low and linux_enable_extended_features * handling fork events in gdbserver/linux-low.c:handle_extended_wait - when a fork event occurs in gdbserver, we must do the full creation of the new process, thread, lwp, and breakpoint lists. This is required whether or not the new child is destined to be detached-on-fork, because GDB will make target calls that require all the structures. In particular we need the breakpoint lists in order to remove the breakpoints from a detaching child. If we are not detaching the child we will need all these structures anyway. - as part of this event handling we store the target_waitstatus in a new member of the parent lwp_info structure, 'waitstatus'. This is used to store extended event information for reporting to GDB. - handle_extended_wait is given a return value, denoting whether the handled event should be reported to GDB. Previously it had only handled clone events, which were never reported. * using a new predicate in gdbserver to control handling of the fork event (and eventually all extended events) in linux_wait_1. The predicate, extended_event_reported, checks a target_waitstatus.kind for an extended ptrace event. * implementing a new RSP 'T' Stop Reply Packet stop reason: "fork", in gdbserver/remote-utils.c and remote.c. * implementing new target and RSP support for target_follow_fork with target extended-remote. (The RSP components were actually defined in patch 1, but they see their first use here). - remote target routine remote_follow_fork, which just sends the 'D;pid' detach packet to detach the new fork child cleanly. We can't just call target_detach because the data structures for the forked child have not been allocated on the host side. Tested on x64 Ubuntu Lucid, native, remote, extended-remote. gdb/gdbserver/ChangeLog: * linux-low.c (handle_extended_wait): Implement return value, rename argument 'event_child' to 'event_lwp', handle PTRACE_EVENT_FORK, call internal_error for unrecognized event. (linux_low_ptrace_options): New function. (linux_low_filter_event): Call linux_low_ptrace_options, use different argument fo linux_enable_event_reporting, use return value from handle_extended_wait. (extended_event_reported): New function. (linux_wait_1): Call extended_event_reported and set status to report fork events. (linux_write_memory): Add pid to debug message. (reset_lwp_ptrace_options_callback): New function. (linux_handle_new_gdb_connection): New function. (linux_target_ops): Initialize new structure member. * linux-low.h (struct lwp_info) <waitstatus>: New member. * lynx-low.c: Initialize new structure member. * remote-utils.c (prepare_resume_reply): Implement stop reason "fork" for "T" stop message. * server.c (handle_query): Call handle_new_gdb_connection. * server.h (report_fork_events): Declare global flag. * target.h (struct target_ops) <handle_new_gdb_connection>: New member. (target_handle_new_gdb_connection): New macro. * win32-low.c: Initialize new structure member. gdb/ChangeLog: * linux-nat.c (linux_nat_ptrace_options): New function. (linux_init_ptrace, wait_lwp, linux_nat_filter_event): Call linux_nat_ptrace_options and use different argument to linux_enable_event_reporting. (_initialize_linux_nat): Delete call to linux_ptrace_set_additional_flags. * nat/linux-ptrace.c (current_ptrace_options): Rename to supported_ptrace_options. (additional_flags): Delete variable. (linux_check_ptrace_features): Use supported_ptrace_options. (linux_test_for_tracesysgood, linux_test_for_tracefork): Likewise, and remove additional_flags check. (linux_enable_event_reporting): Change 'attached' argument to 'options'. Use supported_ptrace_options. (ptrace_supports_feature): Change comment. Use supported_ptrace_options. (linux_ptrace_set_additional_flags): Delete function. * nat/linux-ptrace.h (linux_ptrace_set_additional_flags): Delete function prototype. * remote.c (remote_fork_event_p): New function. (remote_detach_pid): New function. (remote_detach_1): Call remote_detach_pid, don't mourn inferior if doing detach-on-fork. (remote_follow_fork): New function. (remote_parse_stop_reply): Handle new "T" stop reason "fork". (remote_pid_to_str): Print "process" strings for pid/0/0 ptids. (init_extended_remote_ops): Initialize to_follow_fork.
2015-05-12Clone remote breakpointsDon Breazeal3-0/+119
This patch implements gdbserver routines to clone the breakpoint lists of a process, duplicating them for another process. In gdbserver, each process maintains its own independent breakpoint list. When a fork call creates a child, all of the breakpoints currently inserted in the parent process are also inserted in the child process, but there is nothing to describe them in the data structures related to the child. The child must have a breakpoint list describing them so that they can be removed (if detaching) or recognized (if following). Implementation is a mechanical process of just cloning the lists in several new functions in gdbserver/mem-break.c. Tested by building, since none of the new functions are called yet. This was tested with another patch in the series that implements follow-fork. gdb/gdbserver/ChangeLog: * mem-break.c (APPEND_TO_LIST): Define macro. (clone_agent_expr): New function. (clone_one_breakpoint): New function. (clone_all_breakpoints): New function. * mem-break.h: Declare new functions.
2015-05-12Identify remote fork event supportDon Breazeal10-1/+120
This patch implements a mechanism for GDB to determine whether fork events are supported in gdbserver. This is a preparatory patch for remote fork and exec event support. Two new RSP packets are defined to represent fork and vfork event support. These packets are used just like PACKET_multiprocess_feature to denote whether the corresponding event is supported. GDB sends fork-events+ and vfork-events+ to gdbserver to inquire about fork event support. If the response enables these packets, then GDB knows that gdbserver supports the corresponding events and will enable them. Target functions used to query for support are included along with each new packet. In order for gdbserver to know whether the events are supported at the point where the qSupported packet arrives, the code in nat/linux-ptrace.c had to be reorganized. Previously it would test for fork/exec event support, then enable the events using the pid of the inferior. When the qSupported packet arrives there may not be an inferior. So the mechanism was split into two parts: a function that checks whether the events are supported, called when gdbserver starts up, and another that enables the events when the inferior stops for the first time. Another gdbserver change was to add some global variables similar to multi_process, one per new packet. These are used to control whether the corresponding fork events are enabled. If GDB does not inquire about the event support in the qSupported packet, then gdbserver will not set these "report the event" flags. If the flags are not set, the events are ignored like they were in the past. Thus, gdbserver will never send fork event notification to an older GDB that doesn't recognize fork events. Tested on Ubuntu x64, native/remote/extended-remote, and as part of subsequent patches in the series. gdb/gdbserver/ChangeLog: * linux-low.c (linux_supports_fork_events): New function. (linux_supports_vfork_events): New function. (linux_target_ops): Initialize new structure members. (initialize_low): Call linux_check_ptrace_features. * lynx-low.c (lynx_target_ops): Initialize new structure members. * server.c (report_fork_events, report_vfork_events): New global flags. (handle_query): Add new features to qSupported packet and response. (captured_main): Initialize new global variables. * target.h (struct target_ops) <supports_fork_events>: New member. <supports_vfork_events>: New member. (target_supports_fork_events): New macro. (target_supports_vfork_events): New macro. * win32-low.c (win32_target_ops): Initialize new structure members. gdb/ChangeLog: * nat/linux-ptrace.c (linux_check_ptrace_features): Change from static to extern. * nat/linux-ptrace.h (linux_check_ptrace_features): Declare. * remote.c (anonymous enum): <PACKET_fork_event_feature, * PACKET_vfork_event_feature>: New enumeration constants. (remote_protocol_features): Add table entries for new packets. (remote_query_supported): Add new feature queries to qSupported packet. (_initialize_remote): Exempt new packets from the requirement to have 'set remote' commands.
2015-05-12[AArch64] Add R_AARCH64_P32_LD32_GOTPAGE_LO14 to elf headerJiong Wang2-0/+5
2015-05-12 Jiong. Wang <jiong.wang@arm.com> include/ * elf/aarch64.h (R_AARCH64_P32_LD32_GOTPAGE_LO14): New enumeration.
2015-05-12Locate executables on remote stubs without multiprocess extensionsGary Benson6-9/+54
This commit allows GDB to determine filenames of main executables when debugging using remote stubs without multiprocess extensions. The qXfer:exec-file:read packet is extended to allow an empty annex, with the meaning that the remote stub should supply the filename of whatever it thinks is the current process. gdb/ChangeLog: * remote.c (remote_add_inferior): Call exec_file_locate_attach for fake PIDs as well as real ones. (remote_pid_to_exec_file): Send empty annex if PID is fake. gdb/doc/ChangeLog: * gdb.texinfo (General Query Packets): Document qXfer:exec-file:read with empty annex. gdb/gdbserver/ChangeLog: * server.c (handle_qxfer_exec_file): Use current process if annex is empty.
2015-05-12Enables the -t abbreviated form of the --temp-prefix command line option for ↵Stephen Kitt2-2/+7
dlltool. * dlltool.c (main): Accept -t as an abbreviation for --temp-prefix.
2015-05-12Automatic date update in version.inGDB Administrator1-1/+1
2015-05-11Remove Disp16|Disp32 from 64-bit direct branchesH.J. Lu3-5/+26
Disp16 and Disp32 aren't supported by direct branches in 64-bit mode. This patch removes them from 64-bit direct branches. * opcodes/i386-opc.tbl (call): Remove Disp16|Disp32 from 64-bit direct branch. (jmp): Likewise. * i386-tbl.h: Regenerated.
2015-05-11Allow mixing target and not-target directivesH.J. Lu3-5/+7
Mixing target and not-target directives can be used to run for x86_64-*-* target while skipping x86_64-*-gnux32 target. This patch allows mixing target and not-target directives. It is used to skip elfedit-1 for x86_64-*-gnux32. * binutils-all/elfedit-1.d: Skip x86_64-*-gnux32. * lib/utils-lib.exp (run_dump_test): Allow mixing target and not-target directives.
2015-05-11Default e_machine to EM_IAMCU for i?86-*-elfiamcuH.J. Lu8-1/+58
This patch sets the default ELF output format of assembler and linker to EM_IAMCU when binutils is configured to i?86-*-elfiamcu target. gas/ * configure.tgt (arch): Set to iamcu for i386-*-elfiamcu target. * config/tc-i386.c (i386_mach): Support iamcu. (i386_target_format): Likewise. ld/ * configure.tgt: Support i[3-7]86-*-elfiamcu target. ld/testsuite/ * ld-i386/i386.exp (iamcu_tests): Run iamcu-4. * ld-i386/iamcu-4.d: New file.
2015-05-11Add Intel MCU support to ldH.J. Lu14-23/+185
-m elf_iamcu must be passed to i386 linker to generate Intel MCU binary. ld/ * Makefile.am (ALL_EMULATION_SOURCES): Add eelf_iamcu.c. (eelf_iamcu.c): New. * configure.tgt (targ_extra_emuls): Add elf_iamcu if elf_i386 is enabled in BFD. * Makefile.in: Regenerated. * emulparams/elf_iamcu.sh: New file. ld/testsuite/ * ld-i386/abs-iamcu.d: New file. * ld-i386/dummy.s: Likewise. * ld-i386/foo.s: Likewise. * ld-i386/iamcu-1.d: Likewise. * ld-i386/iamcu-2.d: Likewise. * ld-i386/iamcu-3.d: Likewise. * ld-i386/start.s: Likewise. * ld-i386/i386.exp (iamcu_tests): New. Run iamcu_tests.
2015-05-11Add Intel MCU support to gasH.J. Lu18-6/+279
-march=iamcu must be passed to i386 assembler to generate Intel MCU object file. gas/ * config/tc-i386.c (cpu_arch): Add iamcu. (i386_align_code): Handle PROCESSOR_IAMCU. (i386_arch): Likewise. (i386_mach): Likewise. (i386_target_format): Likewise. (valid_iamcu_cpu_flags): New function. (check_cpu_arch_compatible): Only allow Intel MCU instructions when targeting Intel MCU. (set_cpu_arch): Call valid_iamcu_cpu_flags to check if CPU flags are valid for Intel MCU. (md_parse_option): Likewise. * tc-i386.h (ELF_TARGET_IAMCU_FORMAT): New. (processor_type): Add PROCESSOR_IAMCU. * doc/c-i386.texi: Document iamcu. gas/testsuite/ * gas/i386/i386.exp: Run iamcu-1, iamcu-2, iamcu-3, iamcu-inval-1, iamcu-inval-2 and iamcu-inval-3. * gas/i386/iamcu-1.d: New file. * gas/i386/iamcu-1.s: Likewise. * gas/i386/iamcu-2.d: Likewise. * gas/i386/iamcu-2.s: Likewise. * gas/i386/iamcu-3.d: Likewise. * gas/i386/iamcu-3.s: Likewise. * gas/i386/iamcu-inval-1.l: Likewise. * gas/i386/iamcu-inval-1.s: Likewise. * gas/i386/iamcu-inval-2.l: Likewise. * gas/i386/iamcu-inval-2.s: Likewise. * gas/i386/iamcu-inval-3.l: Likewise. * gas/i386/iamcu-inval-3.s: Likewise.
2015-05-11Add Intel MCU support to opcodesH.J. Lu8-5817/+5853
* configure.ac: Support bfd_iamcu_arch. * disassemble.c (disassembler): Support bfd_iamcu_arch. * i386-gen.c (cpu_flag_init): Add CPU_IAMCU_FLAGS and CPU_IAMCU_COMPAT_FLAGS. (cpu_flags): Add CpuIAMCU. * i386-opc.h (CpuIAMCU): New. (i386_cpu_flags): Add cpuiamcu. * configure: Regenerated. * i386-init.h: Likewise. * i386-tbl.h: Likewise.
2015-05-11Add init_dwarf_regnames_iamcuH.J. Lu4-1/+46
* dwarf.c (dwarf_regnames_iamcu): New. (init_dwarf_regnames_iamcu): Likewise. (init_dwarf_regnames): Call init_dwarf_regnames_iamcu for EM_IAMCU. * dwarf.h (init_dwarf_regnames_iamcu): New. * objdump.c (dump_dwarf): Call init_dwarf_regnames_iamcu for bfd_arch_iamcu.
2015-05-11Add Intel MCU support to bfdH.J. Lu13-26/+185
bfd/ * Makefile.am (ALL_MACHINES): Add cpu-iamcu.lo. (ALL_MACHINES_CFILES): Likewise. * archures.c (bfd_mach_iamcu): New. (bfd_mach_i386_iamcu): Likewise. (bfd_mach_i386_iamcu_intel_syntax): Likewise. (bfd_iamcu_arch): Likewise. (bfd_archures_list): Add &bfd_iamcu_arch. * config.bfd (targ_selvecs): Add iamcu_elf32_vec to i386_elf32_vec. (targ_archs): Add bfd_iamcu_arch if needed. * configure.ac: Support iamcu_elf32_vec. * cpu-iamcu.c: New file. * elf32-i386.c (elf32_iamcu_elf_object_p): New function. Add support for iamcu_elf32_vec and elf32_iamcu_bed. * targets.c (iamcu_elf32_vec): New. (_bfd_target_vector): Add iamcu_elf32_vec. * Makefile.in: Regenerated. * bfd-in2.h: Likewise. * configure: Likewise. binutils/testsuite/ * binutils-all/objdump.exp (cpus_expected): Append iamcu.
2015-05-11Add EM_386/EM_IAMCU support to elfedit.cH.J. Lu6-26/+92
binutils/ * elfedit.c (enum elfclass): New. (input_elf_class): Change type to enum elfclass. (output_elf_class): New. (elf_class): Change return type to enum elfclass. Support EM_386 and EM_IAMCU. (update_elf_header): Check if input and output ELF classes match. (elf_machine): Support EM_386 and EM_IAMCU. (main): Update input_elf_class. Set output_elf_class. * doc/binutils.texi: Update elfedit. binutils/testsuite/ * binutils-all/elfedit-5.d: New file. * binutils-all/elfedit.exp: Run elfedit-5.
2015-05-11Rename EM_486 to EM_IAMCUH.J. Lu7-10/+30
bfd/ * elfcode.h (elf_object_p): Replace EM_486 with EM_IAMCU. binutils/ * dwarf.c (init_dwarf_regnames): Replace EM_486 with EM_IAMCU. * readelf.c (guess_is_rela): Likewise. (dump_relocations): Likewise. (get_machine_name): Likewise. (get_elf_section_flags): Likewise. (process_section_headers): Likewise. (is_32bit_abs_reloc): Likewise. (is_32bit_pcrel_reloc): Likewise. include/elf/ * common.h (EM_486): Renamed to ... (EM_IAMCU): This.
2015-05-11Automatic date update in version.inGDB Administrator1-1/+1
2015-05-10Replace input_bfd and output_bfd with abfdH.J. Lu3-16/+14
The first argument to bfd_get_8/bfd_put_8 isn't used. But we should use something real. Replace input_bfd and output_bfd with abfd. * elf32-i386.c (elf_i386_convert_mov_to_lea): Replace input_bfd and output_bfd with abfd. * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
2015-05-09[Python] Add methods reference_value and const_value to gdb.Value.Siva Chandra11-1/+135
gdb/ChangeLog: * NEWS (Python Scripting): Mention the new gdb.Value methods. * python/py-value.c (valpy_reference_value): New function. (valpy_const_value): Likewise. (value_object_methods): Add new methods. * value.c (make_cv_value): New function. * value.h (make_cv_value): Declare. gdb/doc/ChangeLog: * python.texi (Values From Inferior): Add descriptions of new methods gdb.Value.reference_value and gdb.Value.const_value. gdb/testsuite/ChangeLog: * gdb.python/py-xmethods.cc: Enhance test case. * gdb.python/py-xmethods.exp: New tests. * gdb.python/py-xmethods.py (A_indexoper): New xmethod worker function. (B_indexoper): Likewise. (global_dm_list) : Add new xmethod worker functions.
2015-05-10Automatic date update in version.inGDB Administrator1-1/+1
2015-05-09Ignore 0x66 prefix for call/jmp/jcc in 64-bit modeH.J. Lu9-22/+151
The operand size prefix (0x66) is ignored for 32-bit PC-relative call, jmp and jcc in 64-bit mode. gas/testsuite/ PR binutis/18386 * gas/i386/i386.exp: Run x86-64-jump. * gas/i386/x86-64-branch.d: Updated. * gas/i386/ilp32/x86-64-branch.d: Likewise. * gas/i386/x86-64-branch.s: Add tests for the operand size prefix with call, jmp and jb. * gas/i386/x86-64-jump.d: New file. * gas/i386/x86-64-jump.s: Likewise. ld/testsuite/ PR binutis/18386 * ld-x86-64/tlsgdesc.dd: Updated. * ld-x86-64/tlspic.dd: Likewise. opcodes/ PR binutis/18386 * i386-dis.c (X86_64_E8): New. (X86_64_E9): Likewise. Update comments on 'T', 'U', 'V'. Add comments for '^'. (dis386): Replace callT/jmpT with X86_64_E8/X86_64_E9. (x86_64_table): Add X86_64_E8 and X86_64_E9. (mod_table): Replace {T|} with ^ on Jcall/Jmp. (putop): Handle '^'. (OP_J): Ignore the operand size prefix in 64-bit. Don't check REX_W.
2015-05-09Automatic date update in version.inGDB Administrator1-1/+1
2015-05-08Avoid segfault on missing directory table.Sandra Loosemore2-6/+17
2015-05-08 Yao Qi <yao@codesourcery.com> Sandra Loosemore <sandra@codesourcery.com> gdb/ * dwarf2read.c (setup_type_unit_groups): Do NULL pointer check to 'lh->include_dirs' before accessing to it. (psymtab_include_file_name): Likewise. (dwarf_decode_lines_1): Likewise. (dwarf_decode_lines): Likewise. (file_file_name): Likewise.