aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-06-18constify complete_lineTom Tromey3-2/+7
This changes complete_line to take a const parameter. 2014-06-18 Tom Tromey <tromey@redhat.com> * completer.c (complete_line): Make "line_buffer" const. * completer.h (complete_line): Update.
2014-06-18remove unneeded cast in symtab.cTom Tromey2-1/+5
This removes an unneeded const cast from symtab.c:add_macro_name. 2014-06-18 Tom Tromey <tromey@redhat.com> * symtab.c (add_macro_name): Remove unneeded cast.
2014-06-18constify parse_cli_boolean_valueTom Tromey3-2/+7
This changes a parameter of parse_cli_boolean_value to be const. 2014-06-18 Tom Tromey <tromey@redhat.com> * cli/cli-setshow.h (parse_cli_boolean_value): Update. * cli/cli-setshow.c (parse_cli_boolean_value): Make "arg" const.
2014-06-18constify probe.c functionTom Tromey3-5/+11
This constifies an argument to info_probes_for_ops. 2014-06-18 Tom Tromey <tromey@redhat.com> * probe.c (info_probes_for_ops): Make "arg" const. * probe.h (info_probes_for_ops): Update.
2014-06-18constify struct block in some placesTom Tromey32-75/+133
This makes some spots in gdb, particularly general_symbol_info, use a "const struct block", then fixes the fallout. The justification is that, ordinarily, blocks ought to be readonly. Note though that we can't add "const" in the blockvector due to block relocation. This can be done once blocks are made independent of the program space. 2014-06-18 Tom Tromey <tromey@redhat.com> * varobj.c (varobj_create): Update. * valops.c (value_of_this): Update. * tracepoint.c (add_local_symbols, scope_info): Update. * symtab.h (struct general_symbol_info) <block>: Now const. * symtab.c (skip_prologue_sal) (default_make_symbol_completion_list_break_on) (skip_prologue_using_sal): Update. * stack.h (iterate_over_block_locals) (iterate_over_block_local_vars): Update. * stack.c (print_frame_args): Update. (iterate_over_block_locals, iterate_over_block_local_vars): Make parameter const. (get_selected_block): Make return type const. * python/py-frame.c (frapy_block): Update. * python/py-block.c (gdbpy_block_for_pc): Update. * p-exp.y (%union) <bval>: Now const. * mi/mi-cmd-stack.c (list_args_or_locals): Update. * mdebugread.c (mylookup_symbol, parse_procedure): Update. * m2-exp.y (%union) <bval>: Now const. * linespec.c (get_current_search_block): Make return type const. (create_sals_line_offset, find_label_symbols): Update. * inline-frame.c (inline_frame_sniffer, skip_inline_frames): Update. (block_starting_point_at): Make "block" const. * infrun.c (insert_exception_resume_breakpoint): Make "b" const. (check_exception_resume): Update. * guile/scm-frame.c (gdbscm_frame_block): Update. * guile/scm-block.c (gdbscm_lookup_block): Update. * frame.h (get_frame_block): Update. (get_selected_block): Make return type const. * frame.c (frame_id_inner): Update. * f-valprint.c (info_common_command_for_block) (info_common_command): Update. * dwarf2loc.c (dwarf2_find_location_expression) (dwarf_expr_frame_base, dwarf2_compile_expr_to_ax) (locexpr_describe_location_piece): Update. * c-exp.y (%union) <bval>: Now const. * breakpoint.c (resolve_sal_pc): Update. * blockframe.c (get_frame_block):Make return type const. (get_pc_function_start, get_frame_function, find_pc_sect_function) (block_innermost_frame): Update. * block.h (blockvector_for_pc, blockvector_for_pc_sect) (block_for_pc, block_for_pc_sect): Update. * block.c (blockvector_for_pc_sect, blockvector_for_pc): Make 'pblock' const. (block_for_pc_sect, block_for_pc): Make return type const. * ax-gdb.c (gen_expr): Update. * alpha-mdebug-tdep.c (find_proc_desc): Update. * ada-lang.c (ada_read_renaming_var_value): Make 'block' const. (ada_make_symbol_completion_list, ada_add_exceptions_from_frame) (ada_read_var_value): Update. * ada-exp.y (struct name_info) <block>: Now const. (%union): Likewise. (block_lookup): Constify.
2014-06-18Make xmethods tests not to depend on inferior IO.Siva Chandra3-25/+70
gdb/testsuite/ PR gdb/17017 * gdb.python/py-xmethods.cc: Add global function call counters and increment them in their respective functions. Remove "cout" statements. * gdb.python/py-xmethods.exp: Make tests check the global function call counters instead of depending on inferior IO.
2014-06-18Move macros from i386-{nat,low}.c to i386-{nat,low}.hGary Benson5-24/+46
This commit moves macros required by the soon-to-be-created nat/i386-dregs.c into i386-{nat,low}.h.
2014-06-18Create nat/i386-dregs.hGary Benson8-100/+173
This commit moves code to be shared from i386-{nat,low}.[ch] into a new file, nat/i386-dregs.h. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * nat/i386-dregs.h: New file. * Makefile.in (HFILES_NO_SRCDIR): Add the above. * i386-nat.h (i386-dregs.h): New include. (DR_FIRSTADDR): Now in i386-dregs.h. (DR_LASTADDR): Likewise. (DR_NADDR): Likewise. (DR_STATUS): Likewise. (DR_CONTROL): Likewise. (i386_debug_reg_state): Likewise. * i386-nat.c (ALL_DEBUG_REGISTERS): Likewise. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.h (i386-dregs.h): New include. (DR_FIRSTADDR): Now in i386-dregs.h. (DR_LASTADDR): Likewise. (DR_NADDR): Likewise. (DR_STATUS): Likewise. (DR_CONTROL): Likewise. (i386_debug_reg_state): Likewise. (i386_dr_insert_watchpoint): Likewise. (i386_dr_remove_watchpoint): Likewise. (i386_dr_region_ok_for_watchpoint): Likewise. (i386_dr_stopped_data_address): Likewise. (i386_dr_stopped_by_watchpoint): Likewise. * i386-low.c (ALL_DEBUG_REGISTERS): Likewise.
2014-06-18Symptom:Luis Machado5-72/+182
Using the test program gdb.base/foll-fork.c, with follow-fork-mode set to "child" and detach-on-fork set to "off", stepping or running past the fork call results in the child process running to completion, when it should just finish the single step. In addition, the breakpoint is not removed from the parent process, so if it is resumed it receives a SIGTRAP. Cause: No matter what the setting for detach-on-fork, when stepping past a fork, the single-step breakpoint (step_resume_breakpoint) is not handled correctly in the parent. The SR breakpoint is cloned for the child process, but before the clone is associated with the child it is treated as a duplicate of the original, associated wth the parent. This results in the insertion state of the original SR breakpoint and the clone being "swapped" by breakpoint.c:update_global_location_list, so that the clone is marked as inserted. In the case where the parent is not detached, the two breakpoints remain in that state. The breakpoint is never inserted in the child, because although the cloned SR breakpoint is associated with the child, it is marked as inserted. When the child is resumed, it runs to completion. The breakpoint is never removed from the parent, so that if it is resumed after the child exits, it gets a SIGTRAP. Here is the sequence of events: 1) handle_inferior_event: FORK event is recognized. 2) handle_inferior_event: detach_breakpoints removes all breakpoints from the child. 3) follow_fork: the parent SR breakpoint is cloned. Part of this procedure is to call update_global_location_list, which swaps the insertion state of the original and cloned SR breakpoints as part of ensuring that duplicate breakpoints are only inserted once. At this point the original SR breakpoint is not marked as inserted, and the clone is. The breakpoint is actually inserted in the parent but not the child. 4) follow_fork: the original breakpoint is deleted by calling delete_step_resume_breakpoint. Since the original is not marked as inserted, the actual breakpoint remains in the parent process. update_global_location_list is called again as part of the deletion. The clone is still associated with the parent, but since it is marked as enabled and inserted, the breakpoint is left in the parent. 5) follow_fork: if detach-on-fork is 'on', the actual breakpoint will be removed from the parent in target_detach, based on the cloned breakpoint still associated with the parent. Then the clone is no longer marked as inserted. In follow_inferior_reset_breakpoints the clone is associated with the child, and can be inserted. If detach-on-fork is 'off', the actual breakpoint in the parent is never removed (although the breakpoint had been deleted from the list). Since the clone continues to be marked 'inserted', the SR breakpoint is never inserted in the child. Fix: Set the cloned breakpoint as disabled from the moment it is created. This is done by modifying clone_momentary_breakpoint to take an additional argument, LOC_ENABLED, which is used as the value of the bp_location->enabled member. The clone must be disabled at that point because clone_momentary_breakpoint calls update_global_location_list, which will swap treat the clone as a duplicate of the original breakpoint if it is enabled. All the calls to clone_momentary_breakpoint had to be modified to pass '1' or '0'. I looked at implementing an enum for the enabled member, but concluded that readability would suffer because there are so many places it is used as a boolean, e.g. "if (bl->enabled)". In follow_inferior_reset_breakpoints the clone is set to enabled once it has been associated with the child process. With this, the bp_location 'inserted' member is maintained correctly throughout the follow-fork procedure and the behavior is as expected. The same treatment is given to the exception_resume_breakpoint when following a fork. Testing: Ran 'make check' on Linux x64. Along with the fix above, the coverage of the follow-fork test gdb.base/foll-fork.exp was expanded to: 1) cover all the combinations of values for follow-fork-mode and detach-on-fork 2) make sure that both user breakpoints and single-step breakpoints are propagated correctly to the child 3) check that the inferior list has the expected contents after following the fork. 4) check that unfollowed, undetached inferiors can be resumed. gdb/ 2014-06-18 Don Breazeal <donb@codesourcery.com> * breakpoint.c (set_longjmp_breakpoint): Call momentary_breakpoint_from_master with additional argument. (set_longjmp_breakpoint_for_call_dummy): Call momentary_breakpoint_from_master with additional argument. (set_std_terminate_breakpoint): Call momentary_breakpoint_from_master with additional argument. (momentary_breakpoint_from_master): Add argument to function definition and use it to initialize structure member flag. (clone_momentary_breakpoint): Call momentary_breakpoint_from_master with additional argument. * infrun.c (follow_inferior_reset_breakpoints): Clear structure member flags set in momentary_breakpoint_from_master. gdb/testsuite/ 2014-06-18 Don Breazeal <donb@codesourcery.com> * gdb.base/foll-fork.exp (default_fork_parent_follow): Deleted procedure. (explicit_fork_parent_follow): Deleted procedure. (explicit_fork_child_follow): Deleted procedure. (test_follow_fork): New procedure. (do_fork_tests): Replace calls to deleted procedures with calls to test_follow_fork and reset GDB for subsequent procedure calls.
2014-06-18Rename functions and make nonstatic as necessaryGary Benson7-105/+160
This commit renames the functions that are to be shared. Functions to be shared that were static are made nonstatic. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (i386_show_dr): Renamed to i386_dr_show and made nonstatic. All uses updated. (i386_length_and_rw_bits): Renamed to i386_dr_length_and_rw_bits and made nonstatic. All uses updated. (i386_insert_aligned_watchpoint): Renamed to i386_dr_insert_aligned_watchpoint and made nonstatic. All uses updated. (i386_remove_aligned_watchpoint): Renamed to i386_dr_remove_aligned_watchpoint and made nonstatic. All uses updated. (i386_update_inferior_debug_regs): Renamed to i386_dr_update_inferior_debug_regs and made nonstatic. All uses updated. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.h (i386_low_insert_watchpoint): Renamed to i386_dr_insert_watchpoint. (i386_low_remove_watchpoint): Renamed to i386_dr_remove_watchpoint. (i386_low_region_ok_for_watchpoint): Renamed to i386_dr_region_ok_for_watchpoint. (i386_low_stopped_data_address): Renamed to i386_dr_stopped_data_address. (i386_low_stopped_by_watchpoint): Renamed to i386_dr_stopped_by_watchpoint. * i386-low.c (i386_show_dr): Renamed to i386_dr_show and made nonstatic. All uses updated. (i386_length_and_rw_bits): Renamed to i386_dr_length_and_rw_bits and made nonstatic. All uses updated. (i386_insert_aligned_watchpoint): Renamed to i386_dr_insert_aligned_watchpoint and made nonstatic. All uses updated. (i386_remove_aligned_watchpoint): Renamed to i386_dr_remove_aligned_watchpoint and made nonstatic. All uses updated. (i386_update_inferior_debug_regs): Renamed to i386_dr_update_inferior_debug_regs and made nonstatic. All uses updated. (i386_low_insert_watchpoint): Renamed to i386_dr_insert_watchpoint. All uses updated. (i386_low_remove_watchpoint): Renamed to i386_dr_remove_watchpoint. All uses updated. (i386_low_region_ok_for_watchpoint): Renamed to i386_dr_region_ok_for_watchpoint. All uses updated. (i386_low_stopped_data_address): Renamed to i386_dr_stopped_data_address. All uses updated. (i386_low_stopped_by_watchpoint): Renamed to i386_dr_stopped_by_watchpoint. All uses updated.
2014-06-18Abstract i386_dr_low accessGary Benson4-6/+44
This commit adds macros to abstract access to the i386_dr_low function vector used by i386-nat.c. The macros are named so as to match the names of the functions that do the same work in gdbserver. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (i386_dr_low_can_set_addr): New macro. (i386_dr_low_can_set_control): Likewise. (i386_dr_low_set_addr): Likewise. (i386_dr_low_set_control): Likewise. (i386_dr_low_get_addr): Likewise. (i386_dr_low_get_status): Likewise. (i386_dr_low_get_control): Likewise. (i386_insert_aligned_watchpoint): Use new macros. (i386_update_inferior_debug_regs): Likewise. (i386_stopped_data_address): Likewise. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.c (i386_dr_low_can_set_addr): New macro. (i386_dr_low_can_set_control): Likewise. (i386_insert_aligned_watchpoint): New check.
2014-06-18Merge i386_update_inferior_debug_regsGary Benson4-15/+24
This commit synchronizes the i386_update_inferior_debug_regs functions in i386-nat.c and i386-low.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (i386_update_inferior_debug_regs) <state>: New parameter. All uses updated. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.c (i386_update_inferior_debug_regs) <inf_state>: Renamed to state.
2014-06-18Rename maint_show_dr to debug_hw_pointsGary Benson2-10/+15
This commit renames maint_show_dr to debug_hw_points in i386-nat.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (maint_show_dr): Renamed to debug_hw_points. All uses updated.
2014-06-18Merge error handlingGary Benson2-9/+16
This commit makes all error handling in i386-low.c use internal_error rather than fatal and error. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.c (i386_length_and_rw_bits): Use internal_error instead of fatal and error. (i386_handle_nonaligned_watchpoint): Likewise.
2014-06-18Merge printing codeGary Benson4-47/+73
This commit synchronizes the debug printing code in i386-nat.c and i386-low.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (debug_printf): New macro. (i386_get_debug_register_length): Likewise. (TARGET_HAS_DR_LEN_8): Use above macro. (i386_show_dr): Use debug_printf instead of puts_unfiltered and printf_unfiltered. Use phex to format values. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.c (i386_get_debug_register_length): New macro. (TARGET_HAS_DR_LEN_8): Remove conditional. Use above macro. (i386_show_dr): Use debug_printf instead of fprintf. Use phex to format values.
2014-06-18Add a constGary Benson2-1/+6
This commit adds a const that was in i386-low.c but not in i386-nat.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (i386_handle_nonaligned_watchpoint) <size_try_array>: Make const.
2014-06-18Comment changesGary Benson5-34/+56
This commit fixes various comment differences between i386-nat.[ch] and i386-low.[ch]. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c: Comment changes. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.h: Comment changes. * i386-low.c: Likewise.
2014-06-18Remove unused macroGary Benson2-3/+4
This commit removes an unused macro from i386-nat.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (I386_DR_WATCH_MASK): Remove macro.
2014-06-18Remove unnecessary prototypesGary Benson2-36/+7
This commit removes four unnecessary prototypes from i386-nat.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c (i386_length_and_rw_bits): Remove prototype. (i386_insert_aligned_watchpoint): Likewise. (i386_remove_aligned_watchpoint): Likewise. (i386_handle_nonaligned_watchpoint): Likewise.
2014-06-18Whitespace changesGary Benson4-25/+45
This commit fixes various whitespace differences between i386-nat.c and i386-low.c. gdb/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-nat.c: Whitespace changes. gdb/gdbserver/ 2014-06-18 Gary Benson <gbenson@redhat.com> * i386-low.c: Whitespace changes.
2014-06-18Brown paper bag: left out part of the ChangeLog entry ...Samuel Bronson1-1/+1
2014-06-18* MAINTAINERS: Update Roland McGrath's email address.Samuel Bronson2-1/+7
Thanks to Sergio Durigan Junior for pointing out that he left Red Hat a while ago, and giving me a current address.
2014-06-18daily updateAlan Modra1-1/+1
2014-06-18GAS: Fix MMIX err-fb-2.s regression caused by recent generic GAS changes.Hans-Peter Nilsson2-0/+18
2014-06-17remove redundant savestring declarationTom Tromey2-2/+4
I happened to notice that savestring is still declared in utils.h, despite the fact that it was moved to common/ a while back. This patch removes the redundant declaration. Tested by rebuilding. I'm committing this as obvious. 2014-06-17 Tom Tromey <tromey@redhat.com> * utils.h (savestring): Remove declaration.
2014-06-17use make_cleanup_freeargvTom Tromey2-1/+5
This replaces a function cast with a call to make_cleanup_freeargv. I'm checking this in as obvious. 2014-06-17 Tom Tromey <tromey@redhat.com> * remote.c (extended_remote_run): Use make_cleanup_freeargv.
2014-06-17This fixes a bug whereby #line directives inside a macro would be ignored,Chris Metcalf2-0/+28
thus resulting in bad line debug information. PR gas/16908 * macro.c (buffer_and_nest): Honour #line directives inside macros.
2014-06-17Prevent large (or negative) version values from overflowing into other ↵Nick Clifton2-4/+10
fields when parsing version strings. PR binutils/16923 * rcparse.y (fixedverinfo): Prevent large version numbers from corrupting other values.
2014-06-17Different outputs affected by hostsYao Qi2-0/+19
We find the following fails in gdb test on mingw host. FAIL: gdb.base/wchar.exp: print repeat FAIL: gdb.base/wchar.exp: print repeat_p FAIL: gdb.base/wchar.exp: print repeat (print null on) FAIL: gdb.base/wchar.exp: print repeat (print elements 3) FAIL: gdb.base/wchar.exp: print repeat_p (print elements 3) print repeat^M $7 = L"A", '¢' <repeats 21 times>, "B", '\000' <repeats 104 times>^M (gdb) FAIL: gdb.base/wchar.exp: print repeat the \242 is expected in the test but cent sign is displayed. In valprint.c:print_wchar, wchar_printable is called to determine whether a wchar is printable. wchar_printable calls iswprint but the iswprint's return value depends on LC_CTYPE setting of locale [1, 2]. The output may vary with different locale settings and OS. IMO, '¢' (cent sign) is a correct output on Windows. [1] http://pubs.opengroup.org/onlinepubs/009604499/functions/iswprint.html [2] http://msdn.microsoft.com/en-us/library/ewx8s4kw.aspx This patch is set $cent to cent sign if the GDB is running on a Windows host. gdb/testsuite: 2014-06-17 Yao Qi <yao@codesourcery.com> * gdb.base/wchar.exp: Set $cent to \u00A2 if "host-charset" is CP1252.
2014-06-17In a couple functions (type_update_when_use_rtti_test andLuis Machado2-12/+22
skip_type_update_when_not_use_rtti_test) the testcase assumes an uninitialized object has a specific type. In particular, 'ptr' and 's'. In reality the compiler is free to do what it wants with that uninitialized variable, even initialize it beforehand with the future assignment's value. This is exactly what happens on some targets. ptr should have type 'Base *', but it really has type 'Derived *' because it is already initialized (earlier) by the compiler. The same thing happens to 's'. The following patch addresses this by explicitly initializing those variables so the compiler doesn't optimize their assignments and GDB can print their correct values. 2014-06-17 Luis Machado <lgustavo@codesourcery.com> * gdb.mi/mi-var-rtti.cc (type_update_when_use_rtti_test): Initialize ptr and S explicitly. (skip_type_update_when_not_use_rtti_test): Likewise.
2014-06-17gas/ARM: Misses deprecated IT instruction warning for ARMv8Jiong Wang5-0/+31
Add sp increment and decrement to ARMv8 IT block deprecate pattern. gas/ * config/tc-arm.c (depr_it_insns): New check for inc/dec sp. gas/testsuite/ * gas/arm/armv8-a-it-bad.s: New check for inc/dec sp. * gas/arm/armv8-a-it-bad.l: Likewise.
2014-06-17daily updateAlan Modra1-1/+1
2014-06-17GAS: Fix CRIS double-error reports caused by recent generic GAS changes.Hans-Peter Nilsson4-24/+59
2014-06-16Fix for PR mi/15863Keith Seitz4-1/+21
If an MI client creates a varobj and attempts to update the root /before/ the inferior is started, gdb will throw an internal error: (gdb) -var-create * - batch_flag ^done,name="var1",numchild="0",value="0",type="int",has_more="0" (gdb) -var-update var1 ^done,changelist=[] (gdb) -var-update * ~"../../src/gdb/thread.c:628: internal-error: is_thread_state: Assertion `tp' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nQuit this debugging session? " ~"(y or n) " The function that handles the varobj update in the failing case, mi_cmd_var_udpate_iter, checks if the thread/inferior is stopped before attempting to update the varobj. It calls is_stopped (inferior_ptid) which calls is_thread_state: tp = find_thread_ptid (ptid); gdb_assert (tp); When there is no inferior, ptid is null_ptid, and find_thread_ptid (null_ptid) returns NULL and the assertion is triggered. This patch changes mi_cmd_var_update_iter to behave the same way "-var-update var1" does: by calling the thread "stopped" if there is no inferior (and thereby calling varobj_update_one). ChangeLog 2014-06-16 Keith Seitz <keiths@redhat.com> PR mi/15863 * mi/mi-cmd-var.c (mi_cmd_var_update_iter): Do not attempt to update the varobj if inferior_ptid is null_ptid. testsuite/ChangeLog 2014-06-16 Keith Seitz <keiths@redhat.com> PR mi/15863 * gdb.mi/mi-var-cmd.exp: Add test for -var-update before the inferior is started.
2014-06-16Fixes a problem exposed by the aarcg64/illegal.s test case - where the ↵Nick Clifton2-0/+8
assembler was generating too many error messages. * config/tc-aarch64.c (md_apply_fix): Ignore unused relocs.
2014-06-16constify to_info_proc and friendsTom Tromey9-19/+41
This makes a parameter of to_info_proc const and then fixes up some fallout, including parameters in a couple of gdbarch methods. I could not test the procfs.c change. I verified it by inspection. If this causes an error here, it will be trivial to fix. 2014-06-16 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_info_proc>: Make parameter const. (target_info_proc): Update. * target.c (target_info_proc): Make "args" const. * procfs.c (procfs_info_proc): Update. * linux-tdep.c (linux_info_proc): Update. (linux_core_info_proc_mappings): Make "args" const. (linux_core_info_proc): Update. * gdbarch.sh (info_proc, core_info_proc): Make "args" const. * gdbarch.c: Rebuild. * gdbarch.h: Rebuild. * corelow.c (core_info_proc): Update.
2014-06-16constify to_disconnectTom Tromey8-9/+21
This constifies an parameter of to_disconnect and updates target_disconnect as well. 2014-06-16 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_disconnect>: Make parameter const. (target_disconnect): Update. * target.c (target_disconnect): Make "args" const. * target-delegates.c: Rebuild. * remote.c (remote_disconnect): Update. * record.h (record_disconnect): Update. * record.c (record_disconnect): Update. * inf-child.c (inf_child_disconnect): Update.
2014-06-16constify to_rcmdTom Tromey6-8/+17
This makes the "command" parameter of the to_rcmd target method const. 2014-06-16 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <to_rcmd>: Make "command" const. * target.c (debug_to_rcmd, default_rcmd): Update. * target-delegates.c: Rebuild. * remote.c (remote_rcmd): Update. * monitor.c (monitor_rcmd): Update.
2014-06-16This fixes the aarch64 assembler so that it will generate error messages whenJiong Wang5-10/+61
a syntax error is detected in an optional operand. * config/tc-aarch64.c (END_OF_INSN): New macro. (parse_operands): Handle operand given and be in wrong format when operand is optional. * gas/aarch64/diagnostic.s: New test patterns. * gas/aarch64/diagnostic.l: Likewise.
2014-06-16ld/ARM: Fix IFUNC and TLS descriptors in the same shared objectWill Newton7-3/+63
Combining TLS descriptors and GNU indirect functions in the same object could lead to assertions or multiple dynamic relocations for the same GOT slot. Fix the bookkeeping so this doesn't happen. This allows building and make checking glibc with -mtls-dialect=gnu2. bfd/ChangeLog: 2014-06-16 Will Newton <will.newton@linaro.org> * elf32-arm.c (elf32_arm_allocate_plt_entry): Increment htab->next_tls_desc_index in the non-IPLT case. Calculate GOT offset correctly for the non-IPLT case. (allocate_dynrelocs_for_symbol): Don't increment htab->next_tls_desc_index here. ld/testsuite/ChangeLog: 2014-06-16 Will Newton <will.newton@linaro.org> * ld-arm/arm-elf.exp: Add ifunc-gdesc test. * ld-arm/ifunc-gdesc.r: New file. * ld-arm/ifunc-gdesc.s: Likewise. * ld-arm/ifunc-gdesc.ver: Likewise.
2014-06-16"$ gdb PROGRAM" vs "(gdb) file PROGRAM" difference; warn on failure to ↵Pedro Alves9-52/+256
remove breakpoint. Turns out there's a difference between loading the program with "gdb PROGRAM", vs loading it with "(gdb) file PROGRAM". The latter results in the objfile ending up with OBJF_USERLOADED set, while not with the former. (That difference seems bogus, but still that's not the point of this patch. We can revisit that afterwards.) The new code that suppresses breakpoint removal errors for add-symbol-file objects ends up being too greedy: /* In some cases, we might not be able to remove a breakpoint in a shared library that has already been removed, but we have not yet processed the shlib unload event. Similarly for an unloaded add-symbol-file object - the user might not yet have had the chance to remove-symbol-file it. shlib_disabled will be set if the library/object has already been removed, but the breakpoint hasn't been uninserted yet, e.g., after "nosharedlibrary" or "remove-symbol-file" with breakpoints always-inserted mode. */ if (val && (bl->loc_type == bp_loc_software_breakpoint && (bl->shlib_disabled || solib_name_from_address (bl->pspace, bl->address) || userloaded_objfile_contains_address_p (bl->pspace, bl->address)))) val = 0; as it turns out that OBJF_USERLOADED can be set for objfiles loaded by some other means not add-symbol-file. In this case, symbol-file (or "file", which is really just "exec-file"+"symbol-file"). Recall that add-symbol-file is documented as: (gdb) help add-symbol-file Load symbols from FILE, assuming FILE has been dynamically loaded. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ And it's the "dynamically loaded" aspect that the breakpoint.c code cares about. So make add-symbol-file set OBJF_SHARED on its objfiles too, and tweak the breakpoint.c code to look for OBJF_SHARED instead of OBJF_USERLOADED. This restores back the missing breakpoint removal warning when we let sss-bp-on-user-bp-2.exp run on native GNU/Linux (https://sourceware.org/ml/gdb-patches/2014-06/msg00335.html): (gdb) PASS: gdb.base/sss-bp-on-user-bp-2.exp: define stepi_del_break stepi_del_break warning: Error removing breakpoint 3 (gdb) FAIL: gdb.base/sss-bp-on-user-bp-2.exp: stepi_del_break I say "restores" because this was GDB's behavior in 7.7 and earlier. And, likewise, "file" with no arguments only started turning breakpoints set in the main executable to "<pending>" with the remote-symbol-file patch (63644780). The old behavior is now restored, and we break-unload-file.exp test now exercizes both "gdb; file PROGRAM" and "gdb PROGRAM". gdb/ 2014-06-16 Pedro Alves <palves@redhat.com> * breakpoint.c (insert_bp_location, remove_breakpoint_1): Adjust. (disable_breakpoints_in_freed_objfile): Skip objfiles that don't have OBJF_SHARED set. * objfiles.c (userloaded_objfile_contains_address_p): Rename to... (shared_objfile_contains_address_p): ... this. Check OBJF_SHARED instead of OBJF_USERLOADED. * objfiles.h (OBJF_SHARED): Update comment. (userloaded_objfile_contains_address_p): Rename to ... (shared_objfile_contains_address_p): ... this, and update comments. * symfile.c (add_symbol_file_command): Also set OBJF_SHARED in the new objfile. (remove_symbol_file_command): Skip objfiles that don't have OBJF_SHARED set. gdb/testsuite/ 2014-06-16 Pedro Alves <palves@redhat.com> * gdb.base/break-main-file-remove-fail.c: New file. * gdb.base/break-main-file-remove-fail.exp: New file. * gdb.base/break-unload-file.exp: Use build_executable instead of prepare_for_testing. (test_break): New parameter "initial_load". Handle it. (top level): Add initial_load cmdline/file axis.
2014-06-16fix incorrect comments in minsyms.hTom Tromey2-2/+7
minsyms.h incorrectly claims that a couple of functions call prim_record_minimal_symbol_full with COPY_NAME=0 -- but actually they pass 1. Passing 1 is the correct behavior, so this patch fixes the documentation. I'm checking this in as obvious. 2014-06-16 Tom Tromey <tromey@redhat.com> * minsyms.h (prim_record_minimal_symbol) (prim_record_minimal_symbol_and_info): Update comments.
2014-06-16Fix duplicated assignments to __rel_iplt and __rela_iplt symbolsAlan Modra5-20/+28
and fix more nds32 dependencies. * scripttempl/elf.sc: Edit out __rela_iplt symbol assignments from .rel sections, and __rel_iplt from .rela sections. * scripttempl/nds32elf.sc: Likewise. * Makefile.am (ends32*.c): Depend on nds32elf.sc. * Makefile.in: Regenerate.
2014-06-16Run write_object_file after errorsAlan Modra16-66/+102
This is to fix unitialised memory access when printing listings. Many targets don't initialise parts of insn frags or data frags that have fixups, relying on md_apply_fix to finalise the frag. Which is fine normally, but means we need to run write_object_file after errors, for listings. Otherwise MALLOC_PERTURB_=1 causes errors like: x86_64-linux +FAIL: i386 mpx-inval-1 x86_64-linux +FAIL: i386 inval-equ-1 x86_64-linux +FAIL: i386 x86-64-mpx-inval-1 Running write_object_file after errors requires some tweaking to the testsuite, since we then get extra errors reported from md_apply_fix. gas/ * write.h (subsegs_finish): Delete declaration. * write.c (subsegs_finish): Make static. (write_object_file): Call subsegs_finish from here. Don't print warning and error count here.. * as.c (main): ..do so here instead. Remove dead code for "no object file generated". Split out count strings to better support internationalisation. Don't call subsegs_finish. Tidy setting of "keep_it". Run write_object_file even after errors. (keep_it): Make static. * config/obj-elf.c (elf_frob_symbol): Remove assert. (elf_frob_file_before_adjust): Likewise. gas/testsuite/ * gas/elf/bad-group.s: Use %function. * gas/elf/bad-group.err: Expect correct line number. Allow other errors. * gas/elf/bad-size.err: Allow other errors. Match expected error somewhat more rigorously. * gas/i386/reloc32.l: Allow other errors. * gas/i386/mpx-inval-1.l: Match applied relocs. * gas/i386/x86-64-mpx-inval-1.l: Likewise, and nop padding. * gas/i386/x86-64-mpx-inval-2.l: Match nop padding, and allow other errors. * gas/macros/dot.s: Use .balign. * gas/macros/dot.l: Update alignment output. * gas/symver/symver6.l: Allow other errors.
2014-06-16Don't leave DLX the_insn uninitialisedAlan Modra2-12/+10
In particular the_insn.reloc must be initialised, otherwise the early exit cases for bad opcodes will result in cascading errors if write_object_file is called after an error. * config/tc-dlx.c (machine_ip): Move initialisation of the_insn earlier.
2014-06-16Report an error on x86 pcrel BFD_RELOC_SIZE64Alan Modra2-2/+10
* config/tc-i386.c (reloc): Don't avoid pcrel check for BFD_RELOC_SIZE64. Return NO_RELOC on failing pcrel check.
2014-06-16Fix unintitialised TIC6X dataAlan Modra2-1/+9
MALLOC_PERTURB_=1 results in the following fails due to uninitialised exindx data: FAIL: C6X unwinding directives 1 (little endian) FAIL: C6X unwinding directives 2 (big endian) FAIL: C6X unwinding directives 3 (segment change) FAIL: ld-tic6x/unwind-1 FAIL: ld-tic6x/unwind-2 FAIL: ld-tic6x/unwind-3 FAIL: ld-tic6x/unwind-4 FAIL: ld-tic6x/unwind-6 * config/tc-tic6x.c (s_tic6x_ehtype): Clear after frag_more. (tic6x_output_exidx_entry): Likewise. (md_apply_fix): Simplify 1 byte md_number_to_chars.
2014-06-16Fix TIC54X buffer overrunsAlan Modra2-3/+10
MALLOC_PERTURB_=1 results in "FAIL: c54x macros". * config/tc-tic54x.c (tic54x_mlib): Don't write garbage past end of archive to temp file. (tic54x_start_line_hook): Start scan for parallel on next line, not one char into next line (which may overrun the buffer).
2014-06-16Fix uninitialised VAX insnAlan Modra4-14/+30
MALLOC_PERTURB_=1 results in "FAIL: VAX ELF relocations", due to object file being emitted with uninitialised fields. Since these fields had RELA relocs the field value won't be used at final link time, so the problem is only seen in relocatable object files. This rewrite of md_apply_fix clears all fields with relocs, whereas before some fields had non-zero values. gas/ * config/tc-vax.c (md_apply_fix): Rewrite. (tc_gen_reloc, vax_cons, vax_cons_fix_new): Style: Use NO_RELOC define rather than the equivalent BFD_RELOC_NONE. gas/testsuite/ * gas/vax/elf-rel.d: Update.
2014-06-16Fix uninitialised VAX .got and .got.plt sectionAlan Modra2-1/+6
Cures these failures with MALLOC_PERTURB_=1 FAIL: GOT test (executable) FAIL: GOT test (shared library) FAIL: VAX export class call relocation test FAIL: VAX export class data relocation test * elf32-vax.c (elf_vax_size_dynamic_sections): Clear linker created sections.