aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-09-18 Support displaced stepping for Thumb 16-bit insns.Yao Qi5-69/+1651
gdb/ * arm-tdep.c (THUMB_NOP) Define. (thumb_copy_unmodified_16bit): New. (thumb_copy_b, thumb_copy_bx_blx_reg): New. (thumb_copy_alu_reg): New. (arm_copy_svc): Move some common code to ... (install_svc): ... here. New. (thumb_copy_svc): New. (install_pc_relative): New. (thumb_copy_pc_relative_16bit): New. (thumb_decode_pc_relative_16bit): New. (thumb_copy_16bit_ldr_literal): New. (thumb_copy_cbnz_cbz): New. (cleanup_pop_pc_16bit_all): New. (thumb_copy_pop_pc_16bit): New. (thumb_process_displaced_16bit_insn): New. (thumb_process_displaced_32bit_insn): New. (thumb_process_displaced_insn): process thumb instruction. Support displaced stepping for Thumb 32-bit insns. gdb/ * arm-tdep.c (thumb_copy_unmodified_32bit): New. (thumb2_copy_preload): New. (thumb2_copy_copro_load_store): New. (thumb2_copy_b_bl_blx): New. (thumb2_copy_alu_imm): New. (thumb2_copy_load_reg_imm): New. (thumb2_copy_load_literal): New (thumb2_copy_block_xfer): New. (thumb_32bit_copy_undef): New. (thumb_32bit_copy_unpred): New. (thumb2_decode_ext_reg_ld_st): New. (thumb2_decode_svc_copro): New. (decode_thumb_32bit_store_single_data_item): New. (thumb_copy_pc_relative_32bit): New. (thumb_decode_pc_relative_32bit): New. (decode_thumb_32bit_ld_mem_hints): New. (thumb2_copy_table_branch): New (thumb_process_displaced_32bit_insn): Process Thumb 32-bit instructions. gdb/testsuite/ * gdb.arch/arm-disp-step.S (test_ldr_literal): Test for Thumb instructions. (test_adr_32bit, test_pop_pc): Likewise. (test_ldr_literal_16, test_cbz_cbnz, test_adr): New test for Thumb instructions. * gdb.arch/arm-disp-step.exp (test_ldm_stm_pc): Match $gdb_prompt in gdb_test_multiple. (test_ldr_literal_16, test_cbz_cbnz, test_adr): New.
2011-09-18 gdb/Yao Qi2-2/+14
* arm-tdep.c (install_copro_load_store): PC is set 4-byte aligned. (install_b_bl_blx): Likewise.
2011-09-18 gdb/testsuite/Yao Qi3-0/+28
* lib/gdb.exp (can_single_step_to_signal_handler): New. * gdb.base/kill-after-signal.exp: Call it. Skip if target doesn't support single step to signal handler.
2011-09-18*** empty log message ***gdbadmin1-1/+1
2011-09-18daily updateAlan Modra1-1/+1
2011-09-17 gdb/Yao Qi2-15/+23
* arm-tdep.c (install_ldr_str_ldrb_strb): Renamed to ... (install_load_store): ... this. New. Change parameter BYTE to SIZE. (arm_copy_ldr_str_ldrb_strb): Update caller. (arm_decode_ld_st_word_ubyte): Update caller.
2011-09-17 gdb/testsuite/Yao Qi4-0/+271
* gdb.base/disp-step-fork.c: New. * gdb.base/disp-step-syscall.exp: New. * gdb.base/disp-step-vfork.c: New.
2011-09-17 gdb/Yao Qi4-22/+103
* infrun.c (displaced_step_fixup): Move some code ... (displaced_step_restore): ... here. New function. (handle_inferior_event): Cleanup displaced stepping state for both child and parent when get forked or vforked event. * regcache.c (get_thread_arch_aspace_regcache): New function. get_thread_arch_regcache (): Call it.
2011-09-17daily updateAlan Modra1-1/+1
2011-09-17*** empty log message ***gdbadmin1-1/+1
2011-09-16[Ada] Re-implement `info tasks' command using ui-outJoel Brobecker4-73/+132
This is in preparation for providing a GDB/MI equivalent of the `info tasks' command. The previous implementation was using various printf commands to generate the command output, which does not work at all if we want to use that same code to generate the result for that new GDB/MI command. This patch thus re-implements the `info tasks' command (with no arguments) in a way that makes it GDB/MI friendly. There is an additional hicup, which is the fact that the `info tasks' command displays a completely different type of output when a task ID is given. For instance: (gdb) info task 2 Ada Task: 0x644d20 Name: my_callee Thread: 0 LWP: 0x5809 Parent: 1 (main_task) Base Priority: 48 State: Blocked in accept or select with terminate The above output is better when in CLI mode, but really not what we want when in GDB/MI mode. In GDB/MI mode, we want to follow what the `-thread-info' command does when a task-id is given as an argument, which is to produce the same table, but with only one element/task in it. For compatibility as well as practical reasons, we do not want to change the output of the `info task TASKNO' command when in CLI mode. But it's easy to preserve this behavior while providing the desirable output when in GDB/MI mode. For this, the function used to generated the `info tasks' output has been enhanced to take an argument interpreted as a string. The CLI command knows to never provide that argument, while the GDB/MI command will pass one if provided by the user. gdb/ChangeLog: * ada-tasks.c (print_ada_task_info): New function, merging short_task_info and info_tasks together. Reimplement using ui-out instead of printing to stdout directly. Move the code building and checking the task list here, instead of leaving it in info_tasks_command. (info_task): Move the code building and checking the task list here, instead of leaving it in info_tasks_command. (info_tasks_command): Delete code building and checking the task list - moved elsewhere. Update calls to info_tasks and info_task. One of the minor changes the switch caused is the introduction of a space between the "current" column, and the task "ID" column, which wasn't there before. This matches what we do in the "info threads" command, so I kept that change. This required an adjustment in the testsuite, however... gdb/testsuite/ChangeLog: * gdb.ada/tasks.exp: Make the expected output for the `info tasks' tests more resilient to spacing changes.
2011-09-16[Ada] Remove `from_tty' parameter from ada-tasks.c:info_taskJoel Brobecker2-2/+6
This parameter is unused, and probably will never be useful. gdb/ChangeLog: * ada-tasks.c (info_task): Delete parameter `from_tty'.
2011-09-16[Ada] Remove `from_tty' parameter from ada-tasks.c:info_tasksJoel Brobecker2-2/+6
This parameter is unused, and probably will never be useful. gdb/ChangeLog: * ada-tasks.c (info_tasks): Delete parameter `from_tty'.
2011-09-16[Ada] Adjust ada-tasks.c:ada_build_task_listJoel Brobecker4-22/+36
Originally, this function had a parameter called `warn_if_null' which would trigger a message to be printed on stdout if the program was found to not use Ada tasking. It used one of the printf_ functions for that, which is wrong when considering the context of GDB/MI interpreters. So, this patch changes this function to stop printing the message, and leaves that part to the callers instead. It also changes the semantics slightly to return the number of tasks found, rather than a yes/no answer. Not strictly needed, but simple enough to do, and potentially useful later. gdb/ChangeLog: * ada-lang.h (ada_build_task_list): Remove parameter `warn_if_null'. * ada-tasks.c (ada_build_task_list): Remove parameter `warn_if_null'. Adjust implementation and documentation. (valid_task_id, ada_get_environment_task) iterate_over_live_ada_tasks): Adjust call to ada_build_task_list. (info_tasks_command): Adjust implementation. (task_command): Likewise. * ravenscar-thread.c (ravenscar_find_new_threads): Fix call to ada_build_task_list.
2011-09-16[Ada] Store the Ada task list in per-inferior dataJoel Brobecker2-105/+265
Instead of storing "the" Ada task list using a static global in ada-tasks, this patch stores that information inside per-inferior data. We also add in the per-inferior data the location and type of data used in the runtime to store that task list. Previously, this information was saved as a static variable in one of the functions, but this approach has the major flaw that it does not handle multi-inferior debugging. gdb/ChangeLog: * ada-tasks.c (ada_tasks_check_symbol_table, task_list): Delete. (enum ada_known_tasks_kind, struct ada_tasks_inferior_data): New. (ada_tasks_inferior_data_handle): New static global. (get_ada_tasks_inferior_data): New function. (ada_get_task_number, get_task_number_from_id, valid_task_id) (ada_get_environment_task, iterate_over_live_ada_tasks) (add_ada_task, read_known_tasks_array, read_known_tasks_list): Adjust. (ada_set_current_inferior_known_tasks_addr): New function. (read_known_tasks, ada_build_task_list, short_task_info) (info_tasks, info_task, info_tasks_command, task_command_1) (task_command, ada_task_list_changed): Adjust. (ada_tasks_invalidate_inferior_data): New function. (ada_normal_stop_observer, ada_new_objfile_observer): Adjust. (_initialize_tasks): Set ada_tasks_inferior_data_handle. * ada-lang.h (struct inferior): Add declaration. (ada_task_list_changed): Update profile. * remote-wtx-pd.c: #include "inferior.h". (switch_to_pd_internal): Update call to ada_task_list_changed.
2011-09-16[Ada] Make the ATCB type info program-space-specificJoel Brobecker2-53/+150
This module caches the type description of various elements of the Ada Task Control Block (ATCB). This cache was implemented as static globals, which is wrong in the case where we have multiple inferiors. This change cleans things up a bit by moving some of these static globals to a per-program-space area. gdb/ChangeLog: * ada-tasks.c: #include "progspace.h" and "objfiles.h". (atcb_type, atcb_common_type, atcb_ll_type, atcb_call_type) (atcb_fieldno): Delete these static globals. (struct ada_tasks_pspace_data): New struct. (ada_tasks_pspace_data_handle): New static global. (get_ada_tasks_pspace_data): New function. (ada_tasks_invalidate_pspace_data): New function. (get_tcb_types_info, ptid_from_atcb_common, read_atcb) (read_known_tasks_list, ada_new_objfile_observer): Adjust. (_initialize_tasks): Create this module's per-progspace data handle.
2011-09-16[Ada] Rename struct tcb_fieldnos into atcb_fieldnos.Joel Brobecker2-4/+8
`atcb' is clearer than `tcb', as it stands for Ada Task Control Block. This is also consistent with the rest of the code, which uses atcb... gdb/ChangeLog: * ada-tasks.c (struct atcb_fieldnos): Renames struct tcb_fieldnos.
2011-09-16Only run pr12975/pr13177 for *-*-linux* and *-*-gnu* targets.H.J. Lu4-2/+12
2011-09-16 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/pr12975.d: Only run for *-*-linux* and *-*-gnu* targets. * ld-elf/pr13177.d: Likewise. * ld-elf/pr13177.s: Avoid relocations in text sections.
2011-09-162011-09-16 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-52/+44
* fork-child.c (fork_inferior): Update comment. Use alloca instead of xmalloc for argv. Move len and shell_command declarations in the block where they are used. Only call execvp. Factorize failure code.
2011-09-16gdb/Jan Kratochvil3-17/+28
Code cleanup. * parse.c (write_exp_elt): Change argument to pass a pointer of union `exp_element' instead of an element of the same and make the function static. (write_exp_elt_opcode, write_exp_elt_sym, write_exp_elt_block) (write_exp_elt_objfile, write_exp_elt_longcst, write_exp_elt_dblcst) (write_exp_elt_decfloatcst, write_exp_elt_type, write_exp_elt_intern): Change argument of `write_exp_elt' function call. Remove extra spaces from comments. * parser-defs.h (write_exp_elt): Remove prototype.
2011-09-162011-09-16 Hui Zhu <teawater@gmail.com>Hui Zhu2-1/+6
* gdb.texinfo (Tracepoint Restrictions): Change *$esp@300 to *(unsigned char *)$esp@300.
2011-09-16gdb/testsuite/Jan Kratochvil2-3/+8
* gdb.python/py-evthreads.exp (Run to breakpoint 1) (reached breakpoint 2, reached breakpoint 3): Update expected output.
2011-09-16Remove the group section if all members are removed.H.J. Lu6-2/+56
binutils/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR binutils/13180 * objcopy.c (is_strip_section_1): New. (is_strip_section): Use it. Remove the group section if all members are removed. binutils/testsuite/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR binutils/13180 * binutils-all/group-6.d: New. * binutils-all/group-6.s: Likewise. * binutils-all/objcopy.exp: Run group-6 for ELF targrts.
2011-09-16Also hide symbols without PLT nor GOT references.H.J. Lu5-5/+42
bfd/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/13177 * elflink.c (elf_gc_sweep_symbol): Also hide symbols without PLT nor GOT references. ld/testsuite/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/13177 * ld-elf/pr13177.d: New. * ld-elf/pr13177.s: Likewise.
2011-09-16Check if a symbol is hidden by linker script.H.J. Lu18-53/+148
bfd/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * bfd-in.h (bfd_elf_size_dynamic_sections): Remove pointer to struct bfd_elf_version_tree. * elflink.c (elf_info_failed): Remove verdefs. (_bfd_elf_export_symbol): Updated. _bfd_elf_link_assign_sym_version): Likewise. (bfd_elf_size_dynamic_sections): Remove pointer to struct bfd_elf_version_tree. Updated. (bfd_elf_gc_mark_dynamic_ref_symbol): Check if a symbol is hidden by linker script. * linker.c (bfd_hide_sym_by_version): New. * bfd-in2.h: Regenerated. include/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * bfdlink.h (bfd_link_info): Add version_info. ld/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * ldlang.c (lang_elf_version_info): Removed. (lang_register_vers_node): Replace lang_elf_version_info with link_info.version_info. (lang_add_vers_depend): Likewise. * pe-dll.c (process_def_file_and_drectve): Likewise. * emultempl/solaris2.em (elf_solaris2_before_allocation): Likewise. * ldlang.h (lang_elf_version_info): Removed. * plugin.c (is_visible_from_outside): Check if symbol is hidden by version script. * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Remove lang_elf_version_info. ld/testsuite/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/12975 * ld-elf/pr12975.d: New. * ld-elf/pr12975.s: Likewise. * ld-elf/pr12975.t: Likewise.
2011-09-16*** empty log message ***gdbadmin1-1/+1
2011-09-16daily updateAlan Modra1-1/+1
2011-09-15 * server.h (struct emit_ops): Add compare-goto fields.Stan Shebs4-6/+484
* tracepoint.c (gdb_agent_op_sizes): New table. (emit_eq_goto): New function. (emit_ne_goto): New function. (emit_lt_goto): New function. (emit_le_goto): New function. (emit_gt_goto): New function. (emit_ge_goto): New function. (is_goto_target): New function. (compile_bytecodes): Recognize special cases of compare-goto combinations and call specialized emitters for them. * linux-x86-low.c (amd64_emit_eq_goto): New function. (amd64_emit_ne_goto): New function. (amd64_emit_lt_goto): New function. (amd64_emit_le_goto): New function. (amd64_emit_gt_goto): New function. (amd64_emit_ge_goto): New function. (amd64_emit_ops): Add the new functions. (i386_emit_eq_goto): New function. (i386_emit_ne_goto): New function. (i386_emit_lt_goto): New function. (i386_emit_le_goto): New function. (i386_emit_gt_goto): New function. (i386_emit_ge_goto): New function. (i386_emit_ops): Add the new functions.
2011-09-15* python/py-cmd.c (gdbpy_string_to_argv): Decrement referencePaul Koning3-4/+9
count of item appended to list. * python/py-type.c (typy_fields): Likewise.
2011-09-15Fix ChangeLog typoPaul Koning1-1/+1
2011-09-15* gdb.texinfo: Make style of Python functions and methods matchPaul Koning2-373/+381
the syntax of Python. Also put class and module names explicitly on function, member, and variable names, matching Python documentation conventions.
2011-09-15Support thin archive member for LTO.H.J. Lu2-5/+11
2011-09-15 Dmitry Gorbachev <d.g.gorbachev@gmail.com> PR ld/13183 * ldmain.c (add_archive_element): Support thin archive member for LTO.
2011-09-15Add period at end of sentence in top entry.Joel Brobecker1-1/+1
2011-09-15MAINTAINERS (Right After Approval): Add myself to the listPaul Koning2-0/+5
2011-09-152011-09-15 Kevin Pouget <kevin.pouget@st.com>Kevin Pouget2-0/+43
PR threads/12628 * linux-fork.c (checkpoint_command): Disallow checkpointing of processes with multiple threads. (inf_has_multiple_thread_cb): New function. (inf_has_multiple_threads): New function.
2011-09-152011-09-15 Kevin Pouget <kevin.pouget@st.com>Kevin Pouget8-1/+49
PR Python/12692 Add gdb.selected_inferior() to Python interface. * python/py-inferior.c (GdbMethods): New Python method definition. doc: PR Python/12692 Add gdb.selected_inferior() to Python interface. * gdb.texinfo (Inferiors In Python): Describe new gdb.selected_inferior() function. testsuite: PR Python/12692 Add gdb.selected_inferior() to Python interface. * gdb.python/py-inferior.exp: Add testcase for gdb.selected_inferior().
2011-09-152011-09-15 Kevin Pouget <kevin.pouget@st.com>Kevin Pouget10-17/+85
Handle multiple breakpoint hits in Python interface: * python/py-bpevent.c (create_breakpoint_event_object): Rename C/Python variable to breakpoints. * python/py-stopevent.c (emit_stop_event): Return a Python tuple of bps instead of single breakpoint. Fix some space typos. * python/py-stopevent.c (create_breakpoint_event_object): Rename variable to breakpoints. testsuite: * gdb.python/py-events.exp: Set a duplicate breakpoint and check its presence. * gdb.python/py-events.py (breakpoint_stop_handler): Browse all the breakpoint hits. doc: * gdb.texinfo (Events In Python): New function documentation: gdb.BreakpointEvent.breakpoints. Indicate that gdb.BreakpointEvent.breakpoint is now deprecated.
2011-09-152011-09-15 Kevin Pouget <kevin.pouget@st.com>Kevin Pouget2-3/+9
* breakpoint.c (describe_other_breakpoints): Do not write 'duplicate' note if the breakpoint is internal.
2011-09-152011-09-15 Kevin Pouget <kevin.pouget@st.com>Kevin Pouget2-0/+5
* MAINTAINERS (Right After Approval): Add myself to the list
2011-09-15daily updateAlan Modra1-1/+1
2011-09-15*** empty log message ***gdbadmin1-1/+1
2011-09-142011-09-14 Pedro Alves <pedro@codesourcery.com>Pedro Alves3-33/+10
* infrun.c (prepare_for_detach, wait_for_inferior) (fetch_inferior_event): Don't flush the register cache. * remote.c (struct stop_reply) <regcache>: Add comment.
2011-09-14 * configure.ac: Check for glibc support for gnu_indirect_functionCary Coutant6-73/+262
support with static linking, setting automake conditional IFUNC_STATIC. * Makefile.in: Regenerate. * configure: Regenerate. * testsuite/Makefile.am (ifuncmain1static, ifuncmain2static) (ifuncmain4static, ifuncmain5static, ifuncmain7static): Add check for IFUNC_STATIC. * testsuite/Makefile.in: Regenerate.
2011-09-14 * incremental.cc (Sized_relobj_incr::do_layout): CallCary Coutant8-14/+268
report_comdat_group for kept comdat sections. * testsuite/Makefile.am (incremental_comdat_test_1): New test. * testsuite/Makefile.in: Regenerate. * testsuite/incr_comdat_test_1.cc: New source file. * testsuite/incr_comdat_test_2_v1.cc: New source file. * testsuite/incr_comdat_test_2_v2.cc: New source file. * testsuite/incr_comdat_test_2_v3.cc: New source file.
2011-09-14*** empty log message ***gdbadmin1-1/+1
2011-09-14daily updateAlan Modra1-1/+1
2011-09-13gdb/Jan Kratochvil3-26/+18
Remove excessive DWARF expressions memory duplication. * dwarf2loc.c (per_cu_dwarf_call): Remove variable back_to and its use for block.data. (indirect_pieced_value): Remove variable result. Remove variable back_to and its use for baton.data. (dwarf2_compile_expr_to_ax): Remove variable back_to and its use for block.data. * dwarf2read.c (dwarf2_fetch_die_location_block): Remove xmemdup. Update the function comment.
2011-09-13gdb/testsuite/Jan Kratochvil5-88/+117
* gdb.python/py-events.exp: Remove pretty printing comment. * gdb.python/py-evsignal.exp: New file. * gdb.python/py-evthreads.c: Include signal.h. (thread3): Remove variable count3. Remove variable bad and use raise instead. (thread2): Remove variable count2. Move thread3 pthread_create here, merge pthread_join to a single line. (main): Remove variable count1. Merge pthread_join with pthread_create to a single line. * gdb.python/py-evthreads.exp: Remove pretty printing comment. New KFAIL python/12966 for gdbserver. Test return value of gdb_compile_pthreads. Use gdb_run_cmd. Replace send_gdb and gdb_expect by gdb_test and gdb_test_multiple. (thread 2, thread 3): New tests.
2011-09-132011-09-13 Pedro Alves <pedro@codesourcery.com>Pedro Alves3-18/+28
* inferior.h (ALL_INFERIORS): New. * linux-thread-db.c (thread_db_find_new_threads_2): Remove check for a stopped thread. (thread_db_find_new_threads): Look for threads in all inferiors.
2011-09-132011-09-13 Pedro Alves <pedro@codesourcery.com>Pedro Alves2-24/+86
* breakpoint.c (update_watchpoint): Handle the case of the watchpoint to update not being in the breakpoint list yet. (hw_watchpoint_use_count): New, factored out from hw_watchpoint_used_count. (hw_watchpoint_used_count): Rename to ... (hw_watchpoint_used_count_others): ... this. Add `except' parameter. Don't count resources of `except'. Use hw_watchpoint_use_count.