aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-03-122013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>Sandra Loosemore8-0/+87
include/ * opcode/nios2.h (OP_RDPRS): New define. (OP_MATCH_RDPRS): Likewise. opcodes/ * nios2-opc.c (nios2_builtin_opcodes): Add entry for rdprs. gas/testsuite/ * gas/nios2/nios2.exp: Run rdprs. * gas/nios2/rdprs.d: New file. * gas/nios2/rdprs.s: Likewise.
2013-03-122013-03-11 Sebastian Huber <sebastian.huber@embedded-brains.de>Sandra Loosemore6-0/+114
opcodes/ * nios2-opc.c (nios2_builtin_regs): Add sstatus alias for ba register. gas/testsuite/ * gas/nios2/nios2.exp: Run registers. * gas/nios2/registers.d: New file. * gas/nios2/registers.s: Likewise.
2013-03-12 * gc.h (gc_process_relocs): Look through function descriptorsAlan Modra2-20/+52
to determine shndx, symvalue and addend used by ICF. Tidy variable duplication.
2013-03-12*** empty log message ***gdbadmin1-1/+1
2013-03-11daily updateAlan Modra1-1/+1
2013-03-11 * gdb.texinfo (General Query Packets): Don't use colon in indexEli Zaretskii2-0/+8
entries visible to Info format.
2013-03-11 * watchpoint.exp (test_no_hw_watchpoints): Add test usingKeith Seitz2-0/+11
both condition and thread. Then delete the watchpoint.
2013-03-11gdb/Jan Kratochvil3-0/+13
* configure: Regenerate. * configure.ac (check dynamic export flag): Link python test with $PYTHON_LIBS.
2013-03-11 * linespec.c (find_linespec_symbols): Call find_function_symbolsDoug Evans2-58/+77
first, and then call lookup_prefix_sym/find_method.
2013-03-11Avoid invalid pointer to pointer conversions.Pedro Alves3-20/+35
Casts between 'char **' <-> 'unsigned char **' and 'char **' <-> const char **' are actually invalid: http://gcc.gnu.org/ml/gcc-help/2013-03/msg00118.html In a nutshell, char (and variants) can alias anything, but pointers to chars get no special treatment (cf. C99/N1256, 6.5/7). Turns out older gcc's actually warn/complain on these constructs, though newer one's don't: http://sourceware.org/ml/gdb-patches/2013-03/msg00429.html http://sourceware.org/ml/gdb-patches/2013-03/msg00430.html This patch fixes the cases I added last week. It also fixes one other preexisting case in charset.c, though it seems even older gccs don't complain of char * <-> const char * aliasing. Tested on x86_64 Fedora 17. gdb/ 2013-03-11 Pedro Alves <palves@redhat.com> * charset.c (convert_between_encodings): Don't cast between different pointer to pointer types. Instead, make the 'inp' local be of the type iconv expects. (wchar_iterate): Don't cast between different pointer to pointer types. Instead, use new pointer local of the type iconv expects. * target.c (target_read_stralloc, target_fileio_read_stralloc): Add new local of type char pointer, and use it to get a char/string view of the byte buffer, instead of casting between pointer to pointer types.
2013-03-112013-03-11 Hafiz Abid Qadeer <abidh@codesourcery.com>Hafiz Abid Qadeer2-2/+7
* remote.c (remote_set_trace_buffer_size): Move != operator to the start of next line to fix an ARI warning.
2013-03-11Add support for AArch32 CRC instruction in ARMv8.Kyrylo Tkachov12-1/+221
gas/ChangeLog 2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/tc-arm.c (crc_ext_armv8): New feature set. (UNPRED_REG): New macro. (do_crc32_1): New function. (do_crc32b, do_crc32h, do_crc32w, do_crc32cb, do_crc32ch, do_crc32cw): Likewise. (TUEc): New macro. (insns): Add entries for crc32 mnemonics. (arm_extensions): Add entry for crc. include/opcode/ChangeLog 2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * arm.h (CRC_EXT_ARMV8): New constant. (ARCH_CRC_ARMV8): New macro. opcodes/ChangeLog 2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * arm-dis.c (arm_opcodes): Add entries for CRC instructions. (thumb32_opcodes): Likewise. (print_insn_thumb32): Handle 'S' control char. gas/testsuite/ChangeLog 2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * gas/arm/crc32-bad.d: New file. * gas/arm/crc32-bad.l: Likewise. * gas/arm/crc32-bad.s: Likewise. * gas/arm/crc32.d: Likewise. * gas/arm/crc32.s: Likewise.
2013-03-11Add tests for the new record-btrace target.Markus Metzger13-4/+730
testsuite/ * Makefile.in: Add btrace testsuite. * configure: Regenerated. * configure.ac: Add btrace testsuite. * gdb.btrace/Makefile.in: New file. * gdb.btrace/enable.c: New file. * gdb.btrace/enable.exp: New file. * gdb.btrace/function_call_history.c: New file. * gdb.btrace/function_call_history.exp: New file. * gdb.btrace/instruction_history.c: New file. * gdb.btrace/instruction_history.exp: New file. * gdb.btrace/instruction_history.S: New file. * lib/gdb.exp: Add btrace skip proc.
2013-03-11Document changes to the record target resulting from the renaming intoMarkus Metzger4-34/+220
record-full. Document two new record sub-commands "record instruction-history" and "record function-call-history" and two associated set/show commands "set record instruction-history-size" and "set record function-call-history-size". Add this to NEWS. gdb/ * NEWS: Add record changes. doc/ * gdb.texinfo (Process Record and Replay): Document record changes.
2013-03-11Add a disassembly flag to omit the pc prefix and use it in the "recordMarkus Metzger4-1/+15
instruction-history" command of record-btrace. The pc prefix would appear multiple times in the branch trace disassembly, which is more confusing than helpful. gdb/ * record-btrace.c (btrace_insn_history): Omit the pc prefix in the instruction history disassembly. * disasm.c (dump_insns): Omit the pc prefix, if requested. * disasm.h (DISASSEMBLY_OMIT_PC): New.
2013-03-11Add a target for branch trace recording.Markus Metzger4-2/+704
The target implements the new record sub-commands "record instruction-history" and "record function-call-history". The target does not support reverse execution or navigation in the recorded execution log. gdb/ * Makefile.in (SFILES): Add record-btrace.c (COMMON_OBS): Add record-btrace.o * record-btrace.c: New. * objfiles.c: Include btrace.h. (free_objfile): call btrace_free_objfile.
2013-03-11Add command to print the function names from recorded instructions.Markus Metzger5-0/+248
This command provides a quick high-level overview over the recorded execution log at function granularity without having to reverse-step. gdb/ * target.c (target_call_history, target_call_history_from, target_call_history_range): New. * target.h (target_ops) <to_call_history, to_call_history_from, to_call_history_range>: New fields. (target_call_history, target_call_history_from, target_call_history_range): New declaration. * record.c (get_call_history_modifiers, cmd_record_call_history, record_call_history_size): New. (_initialize_record): Add the "record function-call-history" command. Add "set/show record function-call-history-size" commands. * record.h (record_print_flag): New.
2013-03-11Add a command to provide a disassembly of the execution trace log.Markus Metzger4-0/+299
gdb/ * target.h (target_ops) <to_insn_history, to_insn_history_from, to_insn_history_range>: New fields. (target_insn_history): New. (target_insn_history_from): New. (target_insn_history_range): New. * target.c (target_insn_history): New. (target_insn_history_from): New. (target_insn_history_range): New. * record.c: Include cli/cli-utils.h, disasm.h, ctype.h. (record_insn_history_size): New. (get_insn_number): New. (get_context_size): New. (no_chunk): New. (get_insn_history_modifiers): New. (cmd_record_insn_history): New. (_initialize_record): Add "set/show record instruction-history-size" command. Add "record instruction-history" command.
2013-03-11Provide default target methods for record targets that are likely to be sharedMarkus Metzger6-59/+153
between different record targets. gdb/ * record.h (record_disconnect): New. (record_detach): New. (record_mourn_inferior): New. (record_kill): New. * record-full.c (record_disconnect, record_detach, record_mourn_inferior, record_kill): Move to... * record.c: ...here. (DEBUG): New. (record_stop): New. (record_unpush): New. (cmd_record_stop): Call record_stop. Replace unpush_target call with record_unpush call. (record_disconnect, record_detach): Assert that the target is of record stratum. Call record_unpush, record_stop, and DEBUG. (record_mourn_inferior, record_kill): Assert that the target is of record stratum. Call record_unpush and DEBUG.
2013-03-11Rename record_ prefixes in record-full.h into record_full_.Markus Metzger10-608/+656
gdb/ * record-full.h, record-full.c (record_memory_query): Rename to ... (record_full_memory_query): ...this. Update all users. (record_arch_list_add_reg): Rename to ... (record_full_arch_list_add_reg): ...this. Update all users. (record_arch_list_add_mem): Rename to ... (record_full_arch_list_add_mem): ...this. Update all users. (record_arch_list_add_end): Rename to ... (record_full_arch_list_add_end): ...this. Update all users. (record_gdb_operation_disable_set): Rename to ... (record_full_gdb_operation_disable_set): ...this. Update all users.
2013-03-11Rename record_ prefixes in record-full.c into record_full_.Markus Metzger2-754/+1064
gdb/ * record-full.c (DEFAULT_RECORD_INSN_MAX_NUM): Renamed to ... (DEFAULT_RECORD_FULL_INSN_MAX_NUM): ... this. Updated all users. (RECORD_IS_REPLAY): Renamed to ... (RECORD_FULL_IS_REPLAY): ... this. Updated all users. (RECORD_FILE_MAGIC): Renamed to ... (RECORD_FULL_FILE_MAGIC): ... this. Updated all users. (record_mem_entry): Renamed to ... (record_full_mem_entry): ... this. Updated all users. (record_reg_entry): Renamed to ... (record_full_reg_entry): ... this. Updated all users. (record_end_entry): Renamed to ... (record_full_end_entry): ... this. Updated all users. (record_type) <record_end, record_reg, record_mem>: Renamed to ... (record_full_type) <record_full_end, record_full_reg, record_full_mem>: ... this. Updated all users. (record_entry): Renamed to ... (record_full_entry): ... this. Updated all users. (record_core_buf_entry): Renamed to ... (record_full_core_buf_entry): ... this. Updated all users. (record_core_regbuf): Renamed to ... (record_full_core_regbuf): ... this. Updated all users. (record_core_start): Renamed to ... (record_full_core_start): ... this. Updated all users. (record_core_end): Renamed to ... (record_full_core_end): ... this. Updated all users. (record_core_buf_list): Renamed to ... (record_full_core_buf_list): ... this. Updated all users. (record_first): Renamed to ... (record_full_first): ... this. Updated all users. (record_list): Renamed to ... (record_full_list): ... this. Updated all users. (record_arch_list_head): Renamed to ... (record_full_arch_list_head): ... this. Updated all users. (record_arch_list_tail): Renamed to ... (record_full_arch_list_tail): ... this. Updated all users. (record_stop_at_limit): Renamed to ... (record_full_stop_at_limit): ... this. Updated all users. (record_insn_max_num): Renamed to ... (record_full_insn_max_num): ... this. Updated all users. (record_insn_num): Renamed to ... (record_full_insn_num): ... this. Updated all users. (record_insn_count): Renamed to ... (record_full_insn_count): ... this. Updated all users. (record_ops): Renamed to ... (record_full_ops): ... this. Updated all users. (record_core_ops): Renamed to ... (record_full_core_ops): ... this. Updated all users. (set_record_cmdlist): Renamed to ... (set_record_full_cmdlist): ... this. Updated all users. (show_record_cmdlist): Renamed to ... (show_record_full_cmdlist): ... this. Updated all users. (record_cmdlist): Renamed to ... (record_full_cmdlist): ... this. Updated all users. (record_beneath_to_resume_ops): Renamed to ... (record_full_beneath_to_resume_ops): ... this. Updated all users. (record_beneath_to_resume): Renamed to ... (record_full_beneath_to_resume): ... this. Updated all users. (record_beneath_to_wait_ops): Renamed to ... (record_full_beneath_to_wait_ops): ... this. Updated all users. (record_beneath_to_wait): Renamed to ... (record_full_beneath_to_wait): ... this. Updated all users. (record_beneath_to_store_registers_ops): Renamed to ... (record_full_beneath_to_store_registers_ops): ... this. Updated all users. (record_beneath_to_store_registers): Renamed to ... (record_full_beneath_to_store_registers): ... this. Updated all users. (record_beneath_to_xfer_partial_ops): Renamed to ... (record_full_beneath_to_xfer_partial_ops): ... this. Updated all users. (record_beneath_to_xfer_partial): Renamed to ... (record_full_beneath_to_xfer_partial): ... this. Updated all users. (record_beneath_to_insert_breakpoint): Renamed to ... (record_full_beneath_to_insert_breakpoint): ... this. Updated all users. (record_beneath_to_stopped_by_watchpoint): Renamed to ... (record_full_beneath_to_stopped_by_watchpoint): ... this. Updated all users. (record_beneath_to_stopped_data_address): Renamed to ... (record_full_beneath_to_stopped_data_address): ... this. Updated all users. (record_beneath_to_async): Renamed to ... (record_full_beneath_to_async): ... this. Updated all users. (record_goto_insn): Renamed to ... (record_full_goto_insn): ... this. Updated all users. (record_save): Renamed to ... (record_full_save): ... this. Updated all users. (record_reg_alloc): Renamed to ... (record_full_reg_alloc): ... this. Updated all users. (record_reg_release): Renamed to ... (record_full_reg_release): ... this. Updated all users. (record_mem_alloc): Renamed to ... (record_full_mem_alloc): ... this. Updated all users. (record_mem_release): Renamed to ... (record_full_mem_release): ... this. Updated all users. (record_end_alloc): Renamed to ... (record_full_end_alloc): ... this. Updated all users. (record_end_release): Renamed to ... (record_full_end_release): ... this. Updated all users. (record_entry_release): Renamed to ... (record_full_entry_release): ... this. Updated all users. (record_list_release): Renamed to ... (record_full_list_release): ... this. Updated all users. (record_list_release_following): Renamed to ... (record_full_list_release_following): ... this. Updated all users. (record_list_release_first): Renamed to ... (record_full_list_release_first): ... this. Updated all users. (record_arch_list_add): Renamed to ... (record_full_arch_list_add): ... this. Updated all users. (record_get_loc): Renamed to ... (record_full_get_loc): ... this. Updated all users. (record_check_insn_num): Renamed to ... (record_full_check_insn_num): ... this. Updated all users. (record_arch_list_cleanups): Renamed to ... (record_full_arch_list_cleanups): ... this. Updated all users. (record_message): Renamed to ... (record_full_message): ... this. Updated all users. (record_message_wrapper): Renamed to ... (record_full_message_wrapper): ... this. Updated all users. (record_message_wrapper_safe): Renamed to ... (record_full_message_wrapper_safe): ... this. Updated all users. (record_gdb_operation_disable): Renamed to ... (record_full_gdb_operation_disable): ... this. Updated all users. (record_hw_watchpoint): Renamed to ... (record_full_hw_watchpoint): ... this. Updated all users. (record_exec_insn): Renamed to ... (record_full_exec_insn): ... this. Updated all users. (record_restore): Renamed to ... (record_full_restore): ... this. Updated all users. (record_async_inferior_event_token): Renamed to ... (record_full_async_inferior_event_token): ... this. Updated all users. (record_async_inferior_event_handler): Renamed to ... (record_full_async_inferior_event_handler): ... this. Updated all users. (record_core_open_1): Renamed to ... (record_full_core_open_1): ... this. Updated all users. (record_open_1): Renamed to ... (record_full_open_1): ... this. Updated all users. (record_open): Renamed to ... (record_full_open): ... this. Updated all users. (record_close): Renamed to ... (record_full_close): ... this. Updated all users. (record_resume_step): Renamed to ... (record_full_resume_step): ... this. Updated all users. (record_resumed): Renamed to ... (record_full_resumed): ... this. Updated all users. (record_execution_dir): Renamed to ... (record_full_execution_dir): ... this. Updated all users. (record_resume): Renamed to ... (record_full_resume): ... this. Updated all users. (record_get_sig): Renamed to ... (record_full_get_sig): ... this. Updated all users. (record_sig_handler): Renamed to ... (record_full_sig_handler): ... this. Updated all users. (record_wait_cleanups): Renamed to ... (record_full_wait_cleanups): ... this. Updated all users. (record_wait_1): Renamed to ... (record_full_wait_1): ... this. Updated all users. (record_wait): Renamed to ... (record_full_wait): ... this. Updated all users. (record_stopped_by_watchpoint): Renamed to ... (record_full_stopped_by_watchpoint): ... this. Updated all users. (record_disconnect): Renamed to ... (record_full_disconnect): ... this. Updated all users. (record_detach): Renamed to ... (record_full_detach): ... this. Updated all users. (record_mourn_inferior): Renamed to ... (record_full_mourn_inferior): ... this. Updated all users. (record_kill): Renamed to ... (record_full_kill): ... this. Updated all users. (record_stopped_data_address): Renamed to ... (record_full_stopped_data_address): ... this. Updated all users. (record_registers_change): Renamed to ... (record_full_registers_change): ... this. Updated all users. (record_store_registers): Renamed to ... (record_full_store_registers): ... this. Updated all users. (record_xfer_partial): Renamed to ... (record_full_xfer_partial): ... this. Updated all users. (record_breakpoint): Renamed to ... (record_full_breakpoint): ... this. Updated all users. (record_breakpoint_p): Renamed to ... (record_full_breakpoint_p): ... this. Updated all users. (record_breakpoints): Renamed to ... (record_full_breakpoints): ... this. Updated all users. (record_sync_record_breakpoints): Renamed to ... (record_full_sync_record_breakpoints): ... this. Updated all users. (record_init_record_breakpoints): Renamed to ... (record_full_init_record_breakpoints): ... this. Updated all users. (record_insert_breakpoint): Renamed to ... (record_full_insert_breakpoint): ... this. Updated all users. (record_remove_breakpoint): Renamed to ... (record_full_remove_breakpoint): ... this. Updated all users. (record_can_execute_reverse): Renamed to ... (record_full_can_execute_reverse): ... this. Updated all users. (record_get_bookmark): Renamed to ... (record_full_get_bookmark): ... this. Updated all users. (record_goto_bookmark): Renamed to ... (record_full_goto_bookmark): ... this. Updated all users. (record_async): Renamed to ... (record_full_async): ... this. Updated all users. (record_can_async_p): Renamed to ... (record_full_can_async_p): ... this. Updated all users. (record_is_async_p): Renamed to ... (record_full_is_async_p): ... this. Updated all users. (record_execution_direction): Renamed to ... (record_full_execution_direction): ... this. Updated all users. (record_info): Renamed to ... (record_full_info): ... this. Updated all users. (record_delete): Renamed to ... (record_full_delete): ... this. Updated all users. (record_is_replaying): Renamed to ... (record_full_is_replaying): ... this. Updated all users. (record_goto_entry): Renamed to ... (record_full_goto_entry): ... this. Updated all users. (record_goto_begin): Renamed to ... (record_full_goto_begin): ... this. Updated all users. (record_goto_end): Renamed to ... (record_full_goto_end): ... this. Updated all users. (record_goto): Renamed to ... (record_full_goto): ... this. Updated all users. (init_record_ops): Renamed to ... (init_record_full_ops): ... this. Updated all users. (record_core_resume): Renamed to ... (record_full_core_resume): ... this. Updated all users. (record_core_kill): Renamed to ... (record_full_core_kill): ... this. Updated all users. (record_core_fetch_registers): Renamed to ... (record_full_core_fetch_registers): ... this. Updated all users. (record_core_prepare_to_store): Renamed to ... (record_full_core_prepare_to_store): ... this. Updated all users. (record_core_store_registers): Renamed to ... (record_full_core_store_registers): ... this. Updated all users. (record_core_xfer_partial): Renamed to ... (record_full_core_xfer_partial): ... this. Updated all users. (record_core_insert_breakpoint): Renamed to ... (record_full_core_insert_breakpoint): ... this. Updated all users. (record_core_remove_breakpoint): Renamed to ... (record_full_core_remove_breakpoint): ... this. Updated all users. (record_core_has_execution): Renamed to ... (record_full_core_has_execution): ... this. Updated all users. (init_record_core_ops): Renamed to ... (init_record_full_core_ops): ... this. Updated all users. (cmd_record_restore): Renamed to ... (cmd_record_full_restore): ... this. Updated all users. (record_save_cleanups): Renamed to ... (record_full_save_cleanups): ... this. Updated all users. (cmd_record_start): Renamed to ... (cmd_record_full_start): ... this. Updated all users. (set_record_insn_max_num): Renamed to ... (set_record_full_insn_max_num): ... this. Updated all users. (set_record_command): Renamed to ... (set_record_full_command): ... this. Updated all users. (show_record_command): Renamed to ... (show_record_full_command): ... this. Updated all users. (_initialize_record): Renamed to ... (_initialize_record_full): ... this. Updated all users.
2013-03-11Split record.h into record.h and record-full.h.Markus Metzger15-2873/+3408
Split record.c into record.c and record-full.c. The split leaves the command part in record.c and moves the target part into record-full.c. gdb/ * record.h: Split into this and ... * record-full.h: ... this. * record.c: Split into this and ... * record-full.c: ... this. * target.h (target_ops): Add new fields to_info_record, to_save_record, to_delete_record, to_record_is_replaying, to_goto_record_begin, to_goto_record_end, to_goto_record. (target_info_record): New. (target_save_record): New. (target_supports_delete_record): New. (target_delete_record): New. (target_record_is_replaying): New. (target_goto_record_begin): New. (target_goto_record_end): New. (target_goto_record): New. * target.c (target_info_record): New. (target_save_record): New. (target_supports_delete_record): New. (target_delete_record): New. (target_record_is_replaying): New. (target_goto_record_begin): New. (target_goto_record_end): New. (target_goto_record): New. * record.h: Declare struct cmd_list_element. (record_cmdlist): New declaration. (set_record_cmdlist): New declaration. (show_record_cmdlist): New declaration. (info_record_cmdlist): New declaration. (cmd_record_goto): New declaration. * record.c: Remove unnecessary includes. Include inferior.h. (cmd_record_goto): Remove declaration. (record_cmdlist): Now extern. Initialize. (set_record_cmdlist): Now extern. Initialize. (show_record_cmdlist): Now extern. Initialize. (info_record_cmdlist): Now extern. Initialize. (find_record_target): New. (require_record_target): New. (cmd_record_start): Update. (cmd_record_delete): Remove target-specific code. Call target_delete_record. (cmd_record_stop): Unpush any record target. (set_record_insn_max_num): Move to record-full.c (set_record_command): Add comment. (show_record_command): Add comment. (info_record_command): Update comment. Remove target-specific code. Call the record target's to_info_record. (cmd_record_start): New. (cmd_record_goto): Now extern. Remove target-specific code. Call target_goto_begin, target_goto_end, or target_goto. (_initialize_record): Move record target ops initialization to record-full.c. Change "record" command help text. Move "record restore", "record set", and "record show" commands to record-full.c. * Makefile.in (SFILES): Add record-full.c. (HFILES_NO_SRCDIR): Add record-full.h. (COMMON_OBS): Add record-full.o. * amd64-linux-tdep.c: Include record-full.h instead of record.h. * arm-tdep.c: Include record-full.h. * i386-linux-tdep.c: Include record-full.h instead of record.h. * i386-tdep.c: Include record-full.h. * infrun.c: Include record-full.h. * linux-record.c: Include record-full.h. * moxie-tdep.c: Include record-full.h. * record-full.c: Include record-full.h. Change module comment. (set_record_full_cmdlist): New. (show_record_full_cmdlist): New. (record_full_cmdlist): New. (record_goto_insn): New declaration. (record_save): New declaration. (record_check_insn_num): Change query string. (record_info): New. (record_delete): New. (record_is_replaying): New. (record_goto_entry): New. (record_goto_begin): New. (record_goto_end): New. (record_goto): New. (init_record_ops): Update. (init_record_core_ops): Update. (cmd_record_save): Rename to record_save. Remove target and arg checks. (cmd_record_start): New. (set_record_insn_max_num): Moved from record.c (set_record_full_command): New. (show_record_full_command): New. (_initialize_record_full): New.
2013-03-11Add a new function to target.h to add an alias command for a target and mark itMarkus Metzger3-0/+25
deprecated. This is useful when renaming targets. gdb/ * target.h (add_deprecated_target_alias): New. * target.c (add_deprecated_target_alias): New.
2013-03-11LBR, BTM, or BTS records may have incorrect branch "from" information afer anMarkus Metzger2-1/+196
EIST transition, T-states, C1E, or Adaptive Thermal Throttling (AAJ122). This results in sporadic test fails. Disable btrace on those processors. gdb/ * common/linux-btrace.c: Include sys/ptrace, sys/types, sys/wait.h, and signal.h. (linux_supports_btrace): Add kernel and cpuid check. (kernel_supports_btrace): New function. (cpu_supports_btrace): New function. (intel_supports_btrace): New function.
2013-03-11Document the branch tracing extensions to the remote serial protocol.Markus Metzger2-0/+125
doc/ * gdb.texinfo (Requirements): List qXfer:btrace:read requiring expat. (General Query Packets): Describe Qbtrace:bts, Qbtrace:off, and qXfer:btrace:read.
2013-03-11Add the gdb remote target operations for branch tracing.Markus Metzger13-2/+489
We define the following packets: Qbtrace:bts enable branch tracing for the current thread returns "OK" or "Enn" Qbtrace:off disable branch tracing for the current thread returns "OK" or "Enn" qXfer:btrace:read read the full branch trace data for the current thread gdb/ * target.h (enum target_object): Add TARGET_OBJECT_BTRACE. * remote.c: Include btrace.h. (struct btrace_target_info): New struct. (remote_supports_btrace): New function. (send_Qbtrace): New function. (remote_enable_btrace): New function. (remote_disable_btrace): New function. (remote_teardown_btrace): New function. (remote_read_btrace): New function. (init_remote_ops): Add btrace ops. (enum <unnamed>): Add btrace packets. (struct protocol_feature remote_protocol_features[]): Add btrace packets. (_initialize_remote): Add packet configuration for branch tracing. gdbserver/ * target.h (struct target_ops): Add btrace ops. (target_supports_btrace): New macro. (target_enable_btrace): New macro. (target_disable_btrace): New macro. (target_read_btrace): New macro. * gdbthread.h (struct thread_info): Add btrace field. * server.c: Include btrace-common.h. (handle_btrace_general_set): New function. (handle_btrace_enable): New function. (handle_btrace_disable): New function. (handle_general_set): Call handle_btrace_general_set. (handle_qxfer_btrace): New function. (struct qxfer qxfer_packets[]): Add btrace entry. * inferiors.c (remove_thread): Disable btrace. * linux-low: Include linux-btrace.h. (linux_low_enable_btrace): New function. (linux_low_read_btrace): New function. (linux_target_ops): Add btrace ops. * configure.srv (i[34567]86-*-linux*): Add linux-btrace.o. Add srv_linux_btrace=yes. (x86_64-*-linux*): Add linux-btrace.o. Add srv_linux_btrace=yes. * configure.ac: Define HAVE_LINUX_BTRACE. * config.in: Regenerated. * configure: Regenerated.
2013-03-11Preserve a verbose error message of xfer functions if they return -3.Markus Metzger2-4/+18
gdbserver/ * server.c (handle_qxfer): Preserve error message if -3 is returned. (qxfer): Document the -3 return value.
2013-03-11Define the xml document style for transferring branch trace data.Markus Metzger5-1/+124
Add a function to parse a btrace xml document into a vector of branch trace blocks. gdb/ * features/btrace.dtd: New file. * Makefile.in (XMLFILES): Add btrace.dtd. * btrace.h (parse_xml_btrace): New declaration. * btrace.c: Include xml-support.h. (parse_xml_btrace): New function. (parse_xml_btrace_block): New function. (block_attributes): New struct. (btrace_attributes): New struct. (btrace_children): New struct. (btrace_elements): New struct.
2013-03-11Install the btrace target ops for i386-linux-nat and amd64-linux-nat.Markus Metzger5-2/+120
gdb/ * amd64-linux-nat.c: Include btrace.h and linux-btrace.h. (amd64_linux_enable_btrace): New. (amd64_linux_disable_btrace): New. (amd64_linux_teardown_btrace): New. (_initialize_amd64_linux_nat): Initialize btrace ops. * i386-linux.nat.c: Include btrace.h and linux-btrace.h. (i386_linux_enable_btrace): New. (i386_linux_disable_btrace): New. (i386_linux_teardown_btrace): New. (_initialize_i386_linux_nat): Initialize btrace ops. * config/i386/linux.mh: Add linux-btrace.o. * config/i386/linux64.mh: Add linux-btrace.o.
2013-03-11Implement branch tracing on Linux based on perf_event such that it can be sharedMarkus Metzger6-2/+528
between gdb and gdbserver. gdb/ * common/linux_btrace.h: New file. * common/linux_btrace.c: New file. * Makefile.in (SFILES): Add btrace.c. (HFILES_NO_SRCDIR): Add common/linux-btrace.h. (COMMON_OBS): Add btrace.o. (linux-btrace.o): New rule. gdbserver/ * Makefile.in (SFILES): Add $(srcdir)/common/linux-btrace.c. (linux_btrace_h): New variable. (linux-btrace.o): New rule.
2013-03-11Fix ChangeLog date.Markus Metzger1-1/+1
2013-03-11Add branch trace information to struct thread_info.Markus Metzger9-3/+801
Add functions to enable, disable, clear, and fetch a thread's branch trace. gdb/ * target.h: Include btrace.h. (struct target_ops) <to_supports_btrace, to_enable_btrace, to_disable_btrace, to_teardown_btrace, to_read_btrace>: New. * target.c (target_supports_btrace): New function. (target_enable_btrace): New function. (target_disable_btrace): New function. (target_teardown_btrace): New function. (target_read_btrace): New function. * btrace.h: New file. * btrace.c: New file. * Makefile.in: Add btrace.c. * gdbthread.h: Include btrace.h. (struct thread_info): Add btrace field. * thread.c: Include btrace.h. (clear_thread_inferior_resources): Call target_teardown_btrace. * common/btrace-common.h: New file.
2013-03-11*** empty log message ***gdbadmin1-1/+1
2013-03-10 * gold.cc (queue_middle_tasks): Move detect_odr_violations..Alan Modra9-38/+342
* layout.cc (Layout_task_runner::run): ..to here. * symtab.h (struct Symbol_location): Extract from.. (class Symbol_table): ..here. * symtab.cc (Symbol_table::linenos_from_loc): Invoke function_location. * target.h (class Target): Add function_location and do_function_location functions. (class Sized_target): Add do_function_location. * object.h (class Sized_relobj_file): Move find_shdr.. (class Object): ..to here. * object.cc: Likewise. Update to suit. Instantiate. (Sized_relobj_file::find_eh_frame): Update find_shdr call. * powerpc.cc (class Powerpc_dynobj): New. (Target_powerpc::do_function_location): New function. (Powerpc_relobj::do_find_special_sections): Update find_shdr call. (Powerpc_dynobj::do_read_symbols): New function. (Target_powerpc::do_make_elf_object): Make a Powerpc_dynobj.
2013-03-10daily updateAlan Modra1-1/+1
2013-03-10gdb/Jan Kratochvil2-23/+21
* common/linux-ptrace.c (linux_ptrace_test_ret_to_nx): Call also kill for CHILD, ignore PTRACE_KILL errors, move the inner block variable kill_status to outer block.
2013-03-10gdb/Jan Kratochvil6-1/+792
Fix entry-values if the callee called a noreturn function. * dwarf2-frame-tailcall.c (dwarf2_tailcall_sniffer_first): Use get_frame_address_in_block. Add new comment. gdb/testsuite/ Fix entry-values if the callee called a noreturn function. * gdb.arch/amd64-tailcall-noret.S: New file. * gdb.arch/amd64-tailcall-noret.c: New file. * gdb.arch/amd64-tailcall-noret.exp: New file.
2013-03-10gdb/Jan Kratochvil9-4/+768
Fix entry-values in C++ across CUs. * dwarf2loc.c (call_site_to_target_addr) <FIELD_LOC_KIND_PHYSNAME>: Use lookup_minimal_symbol. Add a comment. * dwarf2read.c (read_call_site_scope) <is_ref_attr> <die_is_declaration>: Prefer DW_AT_linkage_name. gdb/testsuite/ Fix entry-values in C++ across CUs. * gdb.arch/amd64-tailcall-cxx.exp: New file. * gdb.arch/amd64-tailcall-cxx1.S: New file. * gdb.arch/amd64-tailcall-cxx1.cc: New file. * gdb.arch/amd64-tailcall-cxx2.S: New file. * gdb.arch/amd64-tailcall-cxx2.cc: New file.
2013-03-10*** empty log message ***gdbadmin1-1/+1
2013-03-09daily updateAlan Modra1-1/+1
2013-03-092013-03-09 Hafiz Abid Qadeer <abidh@codesourcery.com>Hafiz Abid Qadeer4-5/+5
Fixed year number in Changelog files.
2013-03-09Fix last commit.Eli Zaretskii2-3/+8
doc/gdb.texinfo (General Query Packets, Tracepoint Packets): Don't use colons in @anchor and @cindex entries.
2013-03-092012-03-09 Hafiz Abid Qadeer <abidh@codesourcery.com>Hafiz Abid Qadeer2-0/+6
* gdb.texinfo (QTBuffer:size): Add cindex and anchor.
2013-03-09*** empty log message ***gdbadmin1-1/+1
2013-03-08daily updateAlan Modra1-1/+1
2013-03-08 * options.cc (General_options::string_to_object_format): AcceptIan Lance Taylor2-1/+6
"default".
2013-03-08 * elf64-aarch64.c (elf_backend_can_gc_sections): EnableNick Clifton4-21/+161
gc-section support. (elf64_aarch64_gc_sweep_hook): Handle GOT, TLS and PLT related relocs. * lib/ld-lib.exp (check_gc_sections_available): Remove aarch64 from list of targets that don't support gc-section.
2013-03-08 PR binutils/15241Nick Clifton4-3/+20
* lm32.cpu (Control and status registers): Add CFG2, PSW, TLBVADDR, TLBPADDR and TLBBADVADDR. * lm32-desc.c: Regenerate.
2013-03-08 * elf-bfd.h (elfcore_write_s390_tdb): Add prototype.Nick Clifton7-11/+52
* elf.c (elfcore_write_s390_tdb): New function. (elfcore_write_register_note): Call it. (elfcore_grok_s390_tdb): New function. (elfcore_grok_note): Call it. * readelf.c (get_note_type): Add NT_S390_TDB.
2013-03-08gdb/Yao Qi2-3/+7
* tracepoint.c (_initialize_tracepoint): Indent the code.