aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-11-15gdb::{unique_ptr,move} -> std::{unique_ptr,move}Pedro Alves10-11/+31
Now that we require C++11, use std::unique_ptr and std::move directly. gdb/ChangeLog: 2016-11-15 Pedro Alves <palves@redhat.com> * ada-lang.c (create_excep_cond_exprs): Use std::move instead of gdb::move. * break-catch-throw.c (handle_gnu_v3_exceptions): Use std::unique_ptr instead of gdb::unique_ptr. * breakpoint.c (watch_command_1): Use std::move instead of gdb::move. * cli/cli-dump.c (dump_memory_to_file, restore_binary_file): Use std::unique_ptr instead of gdb::unique_ptr. * dtrace-probe.c (dtrace_process_dof_probe): Use std::move instead of gdb::move. * elfread.c (elf_read_minimal_symbols): Use std::unique_ptr instead of gdb::unique_ptr. * mi/mi-main.c (mi_cmd_data_read_memory): Use std::unique_ptr instead of gdb::unique_ptr. * parse.c (parse_expression_for_completion): Use std::move instead of gdb::move. * printcmd.c (display_command): std::move instead of gdb::move.
2016-11-15bitfield-parent-optimized-out: Fix struct definitionAndreas Arnez2-3/+7
The "struct S" type in bitfield-parent-optimized-out.exp is declared to have a size of 4 bytes but to hold two 4-byte members: an int-based bitfield and a 4-byte int. Also, both members have the same data_member_location 2, causing them to overlap and to reach 2 bytes beyond the structure's boundary. This is fixed by increasing the structure size to 8 and setting the first and second member's data_member_location to 0 and 4, respectively. gdb/testsuite/ChangeLog: * gdb.dwarf2/bitfield-parent-optimized-out.exp: Fix DWARF code for the definition of struct S.
2016-11-15Fix SPARC relocations generated for the .eh_frame section.Nick Clifton2-1/+10
PR gas/20803 * config/tc-sparc.c (cons_fix_new_sparc): Use unaligned relocs in the .eh_frame section.
2016-11-15Automatic date update in version.inGDB Administrator1-1/+1
2016-11-14Also check GOT PLT for R_X86_64_PLTOFF64H.J. Lu6-2/+68
Since "-z now" replaces PLT with GOT PLT, we should also check GOT PLT for R_X86_64_PLTOFF64 relocation. bfd/ PR ld/20800 * elf64-x86-64.c (elf_x86_64_relocate_section): Also check plt_got.offset for R_X86_64_PLTOFF64. ld/ PR ld/20800 * testsuite/ld-x86-64/pr20800a.S: New file. * testsuite/ld-x86-64/pr20800b.S: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run PR ld/20800 test.
2016-11-14Generate correct hint value for IDATA6.Rudy2-16/+14
PR binutils/20814 * dlltool.c (struct export): Remove hint field. (make_one_lib_file): Store the ordinal value for IDATA6 not the hint. (gen_lib_file): Delete reference to hint field. (mangle_defs): Delete computation of hint field.
2016-11-14btrace: read entire aux bufferMarkus Metzger2-4/+20
The data_head of a perf event data buffer grows indefinitely. Users are expected to compute data_head % data_size to find the location inside the perf event data buffer. The aux_head of a perf event aux buffer wraps around and always stays within the perf event aux buffer. Well, at least that's the behaviour for BTS and PT - where BTS uses the data buffer and PT the aux buffer. GDB does not read beyond data_head or aux_head. This is OK for BTS but wrong for PT. It causes only a portion of the trace to be considered by GDB. In the extreme case, the buffer may appear (almost) empty. Thanks to Tim Wiederhake <tim.wiederhake@intel.com> for reporting the anomaly. Change it to read the entire aux buffer for PT. The buffer is initially zero so any extra zeroes we read before aux_head wraps around the first time will be ignored when searching for the first PSB packet in order to synchronize onto the trace stream. gdb/ * nat/linux-btrace.c (perf_event_read): Allow data_head < size. * nat/linux-btrace.c (perf_event_read_all): Do not adjust size. Change-Id: If4f8049a2080a5f16f336309450b32a3eb1e3ec9
2016-11-14 lexsup.c (parse_args): Add break at end of default case.Nick Clifton2-0/+5
2016-11-14Fix typo "Faal through" should be "Fall through".Nick Clifton2-1/+5
2016-11-14Automatic date update in version.inGDB Administrator1-1/+1
2016-11-13add missing ChangeLog entryAnthony Green1-0/+4
2016-11-13Assemble 'bad' moxie instructionAnthony Green1-0/+7
2016-11-13Automatic date update in version.inGDB Administrator1-1/+1
2016-11-12Remove some cleanups from the rust codeTom Tromey3-63/+47
This removes some cleanups from the rust code, in favor of C++ objects with destructors. 2016-11-12 Tom Tromey <tom@tromey.com> * rust-exp.y (super_name): Use std::vector. (lex_number): Use std::string. (convert_params_to_types): Return std::vector. (convert_ast_to_type, convert_name): Update. * rust-lang.c (rust_get_disr_info): Use unique_xmalloc_ptr.
2016-11-12Use std::string in rust_get_disr_infoTom Tromey2-1/+6
This changes rust_get_disr_info to use std::string in one more spot, avoiding a memory leak. 2016-11-12 Tom Tromey <tom@tromey.com> * rust-lang.c (rust_get_disr_info): Use std::string in one more spot.
2016-11-12sim: mips: add PR info to ChangeLogMike Frysinger1-0/+2
2016-11-12Automatic date update in version.inGDB Administrator1-1/+1
2016-11-11Don't handle unavailable/optimized-out in spu_software_single_stepYao Qi2-18/+7
When we do software single step, frame is always the innermost one, so it is impossible to get unavailable/optimized-out errors. gdb: 2016-11-11 Yao Qi <yao.qi@linaro.org> * spu-tdep.c (spu_software_single_step): Don't call get_frame_register_bytes, call get_frame_register_unsigned instead.
2016-11-11 Identify verilog dump tests as such.Catherine Moore2-2/+6
A couple of the verilog dump tests were marked as ihex tests. This patch identifies the tests as verilog format dump tests.
2016-11-11Accept L and LL suffixes to integer constants.Nick Clifton5-0/+35
PR gas/20732 * expr.c (integer_constant): If tc_allow_L_suffix is defined and non-zero then accept a L or LL suffix. * testsuite/gas/sparc/pr20732.d: New test source file. * testsuite/gas/sparc/pr20732.d: New test output file. * testsuite/gas/sparc/sparc.exp: Run new test.
2016-11-11Extend information displayed about objdump's output of dynamic symbols.Nick Clifton1-0/+3
2016-11-11Add the ability for nm to display symbol version information.Nick Clifton6-2/+99
PR binutils/20751 * nm.c (with_symbol_versions): New local variable. (long_options): Add --with-symbol-versions. (usage): Mention --with-symbol-versions. (print_symbol): If with_symbol_versions is set then display the version information associated with the symbol. * NEWS: Mention the new feature. * doc/binutils.texi (nm): Document the new option. (objdump): Describe how symbol version information is displayed for dynamic symbol dumps. (readelf): Describe how symbol version information is displayed. * testsuite/binutils-all/nm.exp: Add a test of the new feature.
2016-11-11[AArch64] Add ARMv8.3 combined pointer authentication branch instructionsSzabolcs Nagy8-1966/+2158
Add support for ARMv8.3 pointer authentication instructions that are encoded as unconditional branch instructions. opcodes/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * aarch64-tbl.h (arch64_opcode_table): Add braa, brab, blraa, blrab, braaz, brabz, blraaz, blrabz, retaa, retab, eretaa, eretab. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. gas/ 2016-11-08 Szabolcs Nagy <szabolcs.nagy@arm.com> * testsuite/gas/aarch64/pac.s: Add ARMv8.3 branch instruction tests. * testsuite/gas/aarch64/pac.d: Likewise.
2016-11-11[AArch64] Add ARMv8.3 PACGA instructionSzabolcs Nagy12-1855/+1901
Add support for the ARMv8.3 PACGA instruction. include/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rm_SP. opcodes/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * aarch64-tbl.h (arch64_opcode_table): Add pacga. (AARCH64_OPERANDS): Add Rm_SP. * aarch64-opc.c (aarch64_print_operand): Handle AARCH64_OPND_Rm_SP. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. gas/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * config/tc-aarch64.c (process_omitted_operand): Handle AARCH64_OPND_Rm_SP. (parse_operands): Likewise. * testsuite/gas/aarch64/pac.s: Add pacga. * testsuite/gas/aarch64/pac.d: Add pacga.
2016-11-11[AArch64] Add ARMv8.3 single source PAC instructionsSzabolcs Nagy8-1880/+2178
Add support for ARMv8.3 pointer authentication instructions that are encoded as single source data processing instructions. opcodes/ 2016-11-08 Szabolcs Nagy <szabolcs.nagy@arm.com> * aarch64-tbl.h (arch64_opcode_table): Add pacia, pacib, pacda, pacdb, autia, autib, autda, autdb, paciza, pacizb, pacdza, pacdzb, autiza, autizb, autdza, autdzb, xpaci, xpacd. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. gas/testsuite/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * testsuite/gas/aarch64/pac.s: New. * testsuite/gas/aarch64/pac.d: New.
2016-11-11[AArch64] Add ARMv8.3 pointer authentication key registersSzabolcs Nagy7-0/+111
Add support for system registers introduced in ARMv8.3 for pointer authentication. opcodes/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * aarch64-opc.c (aarch64_sys_regs): Add apiakeylo_el1, apiakeyhi_el1, apibkeylo_el1, apibkeyhi_el1, apdakeylo_el1, apdakeyhi_el1, apdbkeylo_el1, apdbkeyhi_el1, apgakeylo_el1 and apgakeyhi_el1. (aarch64_sys_reg_supported_p): Add feature test for new registers. gas/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * testsuite/gas/aarch64/sysreg-3.s: New. * testsuite/gas/aarch64/sysreg-3.d: New. * testsuite/gas/aarch64/illegal-sysreg-3.l: New. * testsuite/gas/aarch64/illegal-sysreg-3.d: New.
2016-11-11[AArch64] Add ARMv8.3 instructions which are in the NOP spaceSzabolcs Nagy9-936/+1070
This patch adds support for a subset of the ARMv8.3 pointer authentication instructions: XPACLRI, PACIA1716, PACIB1716, AUTIA1716, AUTIA1716, PACIAZ, PACIASP, PACIBZ, PACISP, AUTIAZ, AUTIASP, AUTIBZ, AUTIBSP. These are aliases to HINT #0x7, HINT #0x8, HINT #0xa, HINT #0xc, HINT #0xe, HINT #0x18, HINT #0x19, ..., HINT #0x1f respectively. For more details about pointer authentication in ARMv8.3 see https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions opcodes/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * aarch64-tbl.h (aarch64_feature_v8_3, ARMV8_3, V8_3_INSN): New. (arch64_opcode_table): Add xpaclri, pacia1716, pacib1716, autia1716, autib1716, paciaz, paciasp, pacibz, pacibsp, autiaz, autiasp, autibz, autibsp. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. gas/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * testsuite/gas/aarch64/system-3.s: New. * testsuite/gas/aarch64/system-3.d: New. * testsuite/gas/aarch64/system.d: Update expected output.
2016-11-11[AArch64] Increase max_num_aliases in aarch64-genSzabolcs Nagy2-2/+6
Some ARMv8.3 pointer authentication instructions are encoded as HINT aliases, so to allow more instruction aliases in the generator, max_num_aliases is increased from 16 to 32. opcodes/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * aarch64-gen.c (find_alias_opcode): Increase max_num_aliases to 32.
2016-11-11[AArch64] Add ARMv8.3 command line option and feature flagSzabolcs Nagy5-15/+20
ARMv8.3 can be selected with -march=armv8.3-a command line option. An overview of the ARMv8.3 architecture extension is at https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions gas/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * config/tc-aarch64.c (aarch64_archs): Add "armv8.3-a". * doc/c-aarch64.texi (-march): Likewise. include/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * opcode/aarch64.h (AARCH64_FEATURE_V8_3): Define. (AARCH64_ARCH_V8_3): Define. (AARCH64_ARCH_V8_1, AARCH64_ARCH_V8_2): Simplify.
2016-11-11[AArch64] Fix feature dependencies for +simd and +cryptoSzabolcs Nagy7-2/+48
According to the gas manual, +simd implies +fp and +crypto implies +simd. Make sure +nofp turns +simd, +crypto and +fp16 off. gas/ 2016-11-07 Szabolcs Nagy <szabolcs.nagy@arm.com> * config/tc-aarch64.c (aarch64_features): Fix "simd" and "crypto". * testsuite/gas/aarch64/illegal-crypto-nofp.d: New. * testsuite/gas/aarch64/illegal-crypto-nofp.l: New. * testsuite/gas/aarch64/illegal-fp16-nofp.d: New. * testsuite/gas/aarch64/illegal-fp16-nofp.l: New. * testsuite/gas/aarch64/illegal-fp16-nofp.s: New.
2016-11-11Accept hidden COFF symbols, but treat them as if they were debugging symbols.Luke Allardyce2-1/+10
PR ld/20722 * coffcode.h (coff_slurp_symbol_table): Accept C_HIDDEN symbols, but treat them as debugging symbols.
2016-11-11Remove apply_val_pretty_printer parameter valaddrYao Qi10-40/+51
This patch removes the parameter valaddr of extension_language_ops::apply_val_pretty_printer and remove const from "struct value *val". valaddr can be got in each extension language's implementation of apply_val_pretty_printer. gdb: 2016-11-11 Yao Qi <yao.qi@linaro.org> * cp-valprint.c (cp_print_value): Remove local base_valaddr. * extension-priv.h (struct extension_language_ops) <apply_val_pretty_printer>: Remove the second parameter. Remove const from "struct value *". Callers updated. * extension.c (apply_ext_lang_val_pretty_printer): Update comments. Remove parameter valaddr. Remove const from "struct value *". * extension.h (apply_ext_lang_val_pretty_printer): Update declaration. * guile/guile-internal.h (gdbscm_apply_val_pretty_printer): Update declaration. * guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer): Remove parameter valaddr. Remove const from "struct value *". * python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Likewise. * python/python-internal.h (gdbpy_apply_val_pretty_printer): Update declaration.
2016-11-11Remove parameter valaddr from c print functionsYao Qi4-9/+19
This patch removes parameter valaddr from some c print functions. gdb: 2016-11-11 Yao Qi <yao.qi@linaro.org> * c-lang.h (cp_print_value_fields): Update declaration. * cp-valprint.c (cp_print_value): Update declaration. (cp_print_value_fields): Remove parameter valaddr. Callers updated. (cp_print_value): Likewise.
2016-11-11sim: mips: fix dv-tx3904cpu build errorMike Frysinger2-0/+10
When building for mipstx39-rtems4.12 targets, some funcs use SD and CPU implicitly. Restore the defines for these to the local sd and cpu vars. This was broken by the clean up in commit d47f5b30d8481272e9480118bdcb. Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>
2016-11-11sim: mips: fix builds for r3900 cpus due to missing check_u64Mike Frysinger2-0/+5
2016-11-11Automatic date update in version.inGDB Administrator1-1/+1
2016-11-10Provide a more helpful error message when the BFD library is unable to load ↵Nick Clifton2-0/+14
an extremely large section. PR target/20737 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined symbol locally in PIE.
2016-11-10[AArch64] Bind defined symbol locally in PIEJiong Wang7-1/+38
bfd/ PR target/20737 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined symbol locally in PIE. ld/ * testsuite/ld-aarch64/pie-bind-locally-a.s: New test source. * testsuite/ld-aarch64/pie-bind-locally-b.s: Likewise. * testsuite/ld-aarch64/pie-bind-locally.d: New testcase. * testsuite/ld-aarch64/aarch64-elf.exp: Run new testcase.
2016-11-09Use unique_xmalloc_ptr in Python codeTom Tromey19-225/+207
This changes some utility functions in the Python code to return unique_xmalloc_ptr, and then fixes up the callers. I chose unique_xmalloc_ptr rather than std::string because at a few call points the xmalloc'd string is released and ownership transferred elsewhere. This patch found a few existing memory leaks. For example, py-unwind.c called gdbpy_obj_to_string but never freed the result. Built and regression tested on the buildbot. 2016-11-09 Tom Tromey <tom@tromey.com> * varobj.h (varobj_get_display_hint): Change return type. * varobj.c (varobj_get_display_hint): Return unique_xmalloc_ptr. (varobj_value_get_print_value): Update. * python/python.c (gdbpy_before_prompt_hook, gdbpy_print_stack) (gdbpy_apply_type_printers): Update. * python/python-internal.h (unicode_to_target_string) (python_string_to_target_string, python_string_to_host_string) (gdbpy_obj_to_string, gdbpy_exception_to_string) (gdbpy_get_display_hint): Change return types. * python/py-varobj.c (py_varobj_iter_next): Update. * python/py-value.c (valpy_getitem, convert_value_from_python): Update. * python/py-utils.c (unicode_to_encoded_string) (unicode_to_target_string, python_string_to_target_string) (python_string_to_host_string, gdbpy_obj_to_string) (gdbpy_exception_to_string): Return unique_xmalloc_ptr. * python/py-unwind.c (pyuw_parse_register_id): Update. * python/py-type.c (typy_getitem): Update. * python/py-prettyprint.c (gdbpy_get_display_hint) (print_stack_unless_memory_error, print_children) (gdbpy_apply_val_pretty_printer): Update. * python/py-param.c (set_parameter_value): Update. (get_doc_string, call_doc_function): Return unique_xmalloc_ptr. (get_set_value, get_show_value, compute_enum_values, parmpy_init): Update. * python/py-infthread.c (thpy_set_name): Update. * python/py-function.c (fnpy_call, fnpy_init): Update. * python/py-framefilter.c (extract_sym): Change "name" to unique_xmalloc_ptr. (enumerate_args, enumerate_locals): Update. (py_print_frame): Use unique_xmalloc_ptr. * python/py-frame.c (frapy_read_var): Update. Remove cleanup. * python/py-cmd.c (cmdpy_function, cmdpy_completer, cmdpy_init): Update. * python/py-breakpoint.c (bppy_set_condition): Use unique_xmalloc_ptr. (bppy_init): Likewise. Remove cleanup. (local_setattro): Update. * mi/mi-cmd-var.c (print_varobj, mi_cmd_var_list_children) (varobj_update_one): Update.
2016-11-10Automatic date update in version.inGDB Administrator1-1/+1
2016-11-09X86: Remove the .s suffix from EVEX vpextrwH.J. Lu13-84/+35
The .s suffix indicates that the instruction is encoded by swapping 2 register operands. Since vpextrw takes an XMM register and an integer register, the .s suffix should be ignored for EVEX vpextrw. gas/ PR binutils/20799 * testsuite/gas/i386/opcode.s: Add a test for EVEX vpextrw. * testsuite/gas/i386/opcode-intel.d: Updated. * testsuite/gas/i386/opcode-suffix.d: Likewise. * testsuite/gas/i386/opcode.d: Likewise. * testsuite/gas/i386/x86-64-avx512bw-opts.s: Remove vpextrw tests. * testsuite/gas/i386/x86-64-avx512bw-opts-intel.d: Updated. * testsuite/gas/i386/x86-64-avx512bw-opts.d: Likewise. opcodes/ PR binutils/20799 * i386-dis-evex.h (evex_table): Replace EdqwS with Edqw. * i386-dis.c (EdqwS): Removed. (dqw_swap_mode): Likewise. (intel_operand_size): Don't check dqw_swap_mode. (OP_E_register): Likewise. (OP_E_memory): Likewise. (OP_G): Likewise. (OP_EX): Likewise. * i386-opc.tbl: Remove "S" from EVEX vpextrw. * i386-tbl.h: Regerated.
2016-11-09Update opcodes/ChangeLogH.J. Lu1-0/+1
2016-11-09X86: Update opcode-suffix.dH.J. Lu2-0/+13
PR binutils/20754 * testsuite/gas/i386/opcode-suffix.d: Updated.
2016-11-09Further cleanup/modernization of gdb.base/commands.expPedro Alves3-121/+274
- Use multi_line for matching multi-line GDB output. - Add a multi_line_input variant of multi_line to build GDB input and use it throughout. (The two changes above make the tests much more readable, IMO.) - Add a new valnum_re global to get rid of the multiple "\\\$\[0-9\]*". - Remove gdb_stop_suppressing_tests uses. - tighten a few regexps. - Replace send_gdb/gdb_expect with gdb_test_multiple and simplify, making pass/fail messages the same. gdb/ChangeLog: 2016-11-09 Pedro Alves <palves@redhat.com> * gdb.base/commands.exp (runto_or_return): New procedure. (gdbvar_simple_if_test, gdbvar_simple_while_test) (gdbvar_complex_if_while_test, progvar_simple_if_test) (progvar_simple_while_test, progvar_complex_if_while_test) (if_while_breakpoint_command_test) (infrun_breakpoint_command_test, breakpoint_command_test) (user_defined_command_test, watchpoint_command_test) (test_command_prompt_position, redefine_hook_test) (stray_arg0_test, error_clears_commands_left, redefine_hook_test) (redefine_backtrace_test): Use runto_or_return, $valnum_re, multi_line_input and multi_line. Remove gdb_expect and gdb_stop_suppressing_tests uses. * lib/gdb.exp (valnum_re): New global. * lib/gdb.exp (valnum_re): New global. (multi_line_input): New procedure.
2016-11-09X86: Merge AVX512F vmovqH.J. Lu3-81/+17
AVX512F vmovq doesn't support masking. We can't swap register operand in AVX512F vmovq with Reg64 since Reg64 != RegXMM. This patch merges AVX512F vmovq. * i386-opc.tbl: Merge AVX512F vmovq.
2016-11-09Make gdb.mi/user-selected-context-sync.exp use proc_with_prefixSimon Marchi2-33/+39
Pedro's patch provides a cleaner way to prefix tests with the proc name, so let's use that. gdb/testsuite/ChangeLog: * gdb.mi/user-selected-context-sync.exp (with_test_prefix_procname): Remove. (test_setup): Define with proc_with_prefix. (test_cli_inferior): Likewise. (test_cli_thread): Likewise. (test_cli_frame): Likewise. (test_cli_select_frame): Likewise. (test_cli_up_down): Likewise. (test_mi_thread_select): Likewise. (test_mi_stack_select_frame): Likewise. (test_cli_in_mi_inferior): Likewise. (test_cli_in_mi_thread): Likewise. (test_cli_in_mi_frame): Likewise. (top level): Do not use with_test_prefix_procname.
2016-11-09gdb/testsuite: Introduce "proc_with_prefix"Pedro Alves3-117/+131
While adding new tests to gdb.base/commands.exp, I noticed that the file includes a bunch of individual testcases split into their own procedures, and that none have ever been adjusted to use with_test_prefix. Instead, each gdb_test/gdb_test_multiple/etc invocation takes care of including the procedure name in the test message, in order to make sure test messages are unique. Simon convinced me that using the procedure name as prefix is not that bad of an idea: https://sourceware.org/ml/gdb-patches/2016-10/msg00020.html This commit adds an IMO simpler alternative to with_test_prefix_procname added by that patch -- a new "proc_with_prefix" convenience proc that is meant to be used in place of "proc", and then uses it in commands.exp. Procedures defined with this automatically run their bodies under with_test_prefix $proc_name. Here's a sample of the resulting gdb.sum diff: [...] -PASS: gdb.base/commands.exp: break factorial #3 -PASS: gdb.base/commands.exp: set value to 5 in test_command_prompt_position -PASS: gdb.base/commands.exp: if test in test_command_prompt_position -PASS: gdb.base/commands.exp: > OK in test_command_prompt_position +PASS: gdb.base/commands.exp: test_command_prompt_position: break factorial +PASS: gdb.base/commands.exp: test_command_prompt_position: set value to 5 +PASS: gdb.base/commands.exp: test_command_prompt_position: if test +PASS: gdb.base/commands.exp: test_command_prompt_position: > OK [...] gdb/testsuite/ChangeLog: 2016-11-09 Pedro Alves <palves@redhat.com> * gdb.base/commands.exp (gdbvar_simple_if_test) (gdbvar_simple_while_test, gdbvar_complex_if_while_test) (progvar_simple_if_test, progvar_simple_while_test) (progvar_complex_if_while_test, if_while_breakpoint_command_test) (infrun_breakpoint_command_test, breakpoint_command_test) (user_defined_command_test, watchpoint_command_test) (test_command_prompt_position, deprecated_command_test) (bp_deleted_in_command, temporary_breakpoint_commands) (stray_arg0_test, source_file_with_indented_comment) (recursive_source_test, if_commands_test) (error_clears_commands_left, redefine_hook_test) (redefine_backtrace_test): Use proc_with_prefix. * lib/gdb.exp (proc_with_prefix): New proc.
2016-11-09Fix formattting of gdb/ChangeLog and gdb/testsuite/ChangeLog entiesPedro Alves2-24/+24
Leading tab/spaces. Missing periods. Duplicate date.
2016-11-09agent_expr_up: gdb::unique_ptr -> std::unique_ptrPedro Alves6-20/+29
Now that we require C++11, use std::unique_ptr directly. This allows simplifying collection_list a bit by placing unique pointers in the vector directly, making the vector own its elements. gdb/ChangeLog: 2016-11-09 Pedro Alves <palves@redhat.com> * ax-gdb.c (agent_eval_command_one): Use std::move instead of gdb::move. * ax.h (agent_expr_up): Use std::unique_ptr instead of gdb::unique_ptr. * breakpoint.c (parse_cond_to_aexpr): Use std::move instead of gdb::move. * tracepoint.c (collection_list::collect_symbol): Likewise. (collection_list::~collection_list): Delete. (encode_actions_1): Use std::move instead of gdb::move. (collection_list::add_aexpr): Use std::move instead of unique_ptr::release. * tracepoint.h (collection_list) <~collection_list>: Delete declaration. <m_aexprs>: Now a vector of agent_ptr_up.
2016-11-09gdb: Use vector::emplace_backPedro Alves3-22/+17
Now that we require C++11, we can use vector::emplace_back to construct elements in place instead of constructing and then copying. gdb/ChangeLog: 2016-11-09 Pedro Alves <palves@redhat.com> * main.c (struct cmdarg): Add constructor. (captured_main_1): Use vector::emplace_back. * tracepoint.c (collection_list::add_memrange): Likewise.