70748 Commits

Author SHA1 Message Date
a8279f827a 2011-09-19 Sriraman Tallam <tmsriram@google.com>
* plugin.h (should_defer_layout): Modify to check for any_claimed_.
2011-09-19 23:19:16 +00:00
0c9350c83f * incremental.cc (can_incremental_update): Fix typo in comment.
* incremental.h (can_incremental_update): Likewise.
2011-09-19 19:29:55 +00:00
562f943bcc * python/py-auto-load.c (source_section_scripts): Fix file
descriptor leak.
	* python/python.c (source_python_script_for_objfile): Tweak comments.
2011-09-19 19:01:40 +00:00
3c9057f381 * gdb.trace/tspeed.exp: New file.
* gdb.trace/tspeed.c: New file.
2011-09-19 16:55:26 +00:00
0672bf414a [OBV] fix typos in ChangeLog 2011-09-19 10:50:53 +00:00
a06413e3ef 2011-09-19 Tristan Gingold <gingold@adacore.com>
* config/tc-alpha.c (insert_operand): Call as_bad_value_out_of_range
	instead of as_warn_out_of_range.
2011-09-19 08:24:23 +00:00
d061e45b9a *** empty log message *** 2011-09-19 00:00:32 +00:00
116a5e0dcc daily update 2011-09-19 00:00:05 +00:00
b3681d67e4 Check zero address size.
2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/13196
	* dwarf.c (display_debug_aranges): Check zero address size.
2011-09-18 16:50:17 +00:00
aa06ae28f1 * incremental.cc (can_incremental_update): New function.
* incremental.h (can_incremental_update): New function.
	* layout.cc (Layout::init_fixed_output_section): Call it.
	(Layout::make_output_section): Don't allow patch space in .eh_frame.
	* object.cc (Sized_relobj_file::do_layout): Call
	can_incremental_update.
2011-09-18 15:06:28 +00:00
3451853062 Support displaced stepping for Thumb 16-bit insns.
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 14:34:55 +00:00
2b16b2e33b gdb/
* arm-tdep.c (install_copro_load_store): PC is set 4-byte aligned.
	(install_b_bl_blx): Likewise.
2011-09-18 14:18:07 +00:00
ab254057b8 gdb/testsuite/
* 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 02:36:27 +00:00
f5b1e24db0 *** empty log message *** 2011-09-18 00:00:32 +00:00
a0a4e818f5 daily update 2011-09-18 00:00:06 +00:00
0f6f04bad9 gdb/
* 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 14:37:59 +00:00
9c317b7184 gdb/testsuite/
* gdb.base/disp-step-fork.c: New.
	* gdb.base/disp-step-syscall.exp: New.
	* gdb.base/disp-step-vfork.c: New.
2011-09-17 13:34:01 +00:00
e2d966398c gdb/
* 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-17 13:29:32 +00:00
53dad163f7 daily update 2011-09-17 00:00:06 +00:00
f8c9c016f7 *** empty log message *** 2011-09-17 00:00:03 +00:00
a812315168 [Ada] Re-implement `info tasks' command using ui-out
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 19:09:57 +00:00
fbf0682413 [Ada] Remove `from_tty' parameter from ada-tasks.c:info_task
This parameter is unused, and probably will never be useful.

gdb/ChangeLog:

        * ada-tasks.c (info_task): Delete parameter `from_tty'.
2011-09-16 19:09:43 +00:00
34a0bc90f4 [Ada] Remove `from_tty' parameter from ada-tasks.c:info_tasks
This parameter is unused, and probably will never be useful.

gdb/ChangeLog:

        * ada-tasks.c (info_tasks): Delete parameter `from_tty'.
2011-09-16 19:09:34 +00:00
79779fa90b [Ada] Adjust ada-tasks.c:ada_build_task_list
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 19:09:26 +00:00
e225eb91c1 [Ada] Store the Ada task list in per-inferior data
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 19:09:17 +00:00
6da9ca05ac [Ada] Make the ATCB type info program-space-specific
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 19:09:07 +00:00
dccd3cbdab [Ada] Rename struct tcb_fieldnos into atcb_fieldnos.
`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-16 19:08:50 +00:00
eecd4c56b4 Only run pr12975/pr13177 for *-*-linux* and *-*-gnu* targets.
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-16 16:07:16 +00:00
f877b031e8 2011-09-16 Tristan Gingold <gingold@adacore.com>
* 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-16 15:41:09 +00:00
ae0c443d84 gdb/
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-16 14:36:55 +00:00
d99f7e4842 2011-09-16 Hui Zhu <teawater@gmail.com>
* gdb.texinfo (Tracepoint Restrictions): Change *$esp@300
	to *(unsigned char *)$esp@300.
2011-09-16 09:07:01 +00:00
63a9aad80e gdb/testsuite/
* gdb.python/py-evthreads.exp (Run to breakpoint 1)
	(reached breakpoint 2, reached breakpoint 3): Update expected output.
2011-09-16 07:34:27 +00:00
4c8e8a7ee0 Remove the group section if all members are removed.
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-16 04:23:19 +00:00
1a766c6843 Also hide symbols without PLT nor GOT references.
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-16 01:17:16 +00:00
fd91d41947 Check if a symbol is hidden by linker script.
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 01:15:20 +00:00
d0bc107f79 *** empty log message *** 2011-09-16 00:00:33 +00:00
8bc5d770cd daily update 2011-09-16 00:00:06 +00:00
6b9801d456 * server.h (struct emit_ops): Add compare-goto fields.
* 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 22:54:13 +00:00
5af65ec072 * python/py-cmd.c (gdbpy_string_to_argv): Decrement reference
count of item appended to list.
* python/py-type.c (typy_fields): Likewise.
2011-09-15 18:33:15 +00:00
883640a804 Fix ChangeLog typo 2011-09-15 17:20:56 +00:00
d812018b48 * gdb.texinfo: Make style of Python functions and methods match
the syntax of Python.  Also put class and module names explicitly
on function, member, and variable names, matching Python
documentation conventions.
2011-09-15 16:09:42 +00:00
2b7e430865 Support thin archive member for LTO.
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-15 16:03:03 +00:00
d93db82c58 Add period at end of sentence in top entry. 2011-09-15 15:49:53 +00:00
72be8ccc5e MAINTAINERS (Right After Approval): Add myself to the list 2011-09-15 15:40:22 +00:00
92f6badcc0 2011-09-15 Kevin Pouget <kevin.pouget@st.com>
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-15 12:47:07 +00:00
2aa483373c 2011-09-15 Kevin Pouget <kevin.pouget@st.com>
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-15 12:42:30 +00:00
6839b47f2b 2011-09-15 Kevin Pouget <kevin.pouget@st.com>
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-15 12:27:20 +00:00
672f9b6009 2011-09-15 Kevin Pouget <kevin.pouget@st.com>
* breakpoint.c (describe_other_breakpoints): Do not write 'duplicate'
	note if the breakpoint is internal.
2011-09-15 12:18:29 +00:00
43675ae423 2011-09-15 Kevin Pouget <kevin.pouget@st.com>
* MAINTAINERS (Right After Approval): Add myself to the list
2011-09-15 11:53:03 +00:00
d9fb730937 daily update 2011-09-15 00:00:05 +00:00