OSDN Git Service
Ulrich Weigand [Sat, 12 Jul 2008 22:16:34 +0000 (22:16 +0000)]
* spu-linux-nat.c: Include "gdbthread.h".
(spu_child_post_startup_inferior): Register main thread.
(spu_child_post_attach): Likewise.
* Makefile.in (spu-linux-nat.o): Update dependencies.
Pedro Alves [Sat, 12 Jul 2008 19:25:42 +0000 (19:25 +0000)]
2008-07-12 Pedro Alves <pedro@codesourcery.com>
Rewrite continuations internals on top of cleanups and plug
continuation arguments leaks.
* defs.h (struct continuation): Make it opaque.
(add_continuation, add_intermediate_continuation): Drop the int
argument of the continuation hook argument. Add
continuation_free_args argument.
(do_all_continuations, do_all_intermediate_continuations): Drop
the error_p argument.
* utils.c (add_continuation): Drop the int argument of the
continuation hook argument. Add continuation_free_args argument.
Reimplement on top of cleanups.
(do_all_continuations): Drop error argument. Reimplement on top
of cleanups.
(discard_all_continuations): Reimplement on top of cleanups.
(add_intermediate_continuation): Drop the int argument of the
continuation hook argument. Add continuation_free_args argument.
Reimplement on top of cleanups.
(do_all_intermediate_continuations): Drop error argument.
Reimplement on top of cleanups.
(discard_all_intermediate_continuations): Reimplement on top of
cleanups.
* breakpoint.c (until_break_command_continuation): Drop error
argument. Add xfree as continuation argument deleter.
* inf-loop.c (inferior_event_handler): On error, discard all
continuations. Adjust to new do_all_intermediate_continuations
and do_all_continuations interfaces.
* infcmd.c (step_1_continuation): Drop error_p argument. Adjust.
Pass xfree as continuation argument deleter.
(finish_command_continuation): Drop error_p argument. Adjust.
(finish_command_continuation_free_arg): New.
(finish_command): Pass finish_command_continuation_free_arg as
continuation argument deleter. Adjust to new do_all_continuations
interfaces.
(attach_command_continuation): Drop error_p argument.
(attach_command_continuation_free_args): New.
(attach_command): Pass attach_command_continuation_free_args as
continuation argument deleter.
* interps.c (interp_set): Adjust to new do_all_continuations
interfaces.
* event-top.c (stdin_event_handler): In error, also discard the
intermediate continuations.
Pedro Alves [Sat, 12 Jul 2008 19:07:38 +0000 (19:07 +0000)]
Replace struct continuation_args by void* and per command structs.
* top.c (execute_command): Remove unused arg1 and arg2 locals.
* breakpoint.c (struct until_break_command_continuation_args):
New.
(until_break_command_continuation): Take a void* instead of a
continuations_arg. Adjust.
(until_break_command): Adjust to use struct
until_break_command_continuation_args instead of struct
continuation_arg.
* infcmd.c (struct step_1_continuation_args): New.
(step_1_continuation): Take a void* instead of a
continuations_arg. Adjust to use struct step_1_continuation_args.
(step_once): Adjust to use struct step_1_continuation_args.
(struct finish_command_continuation_args): New.
(finish_command_continuation): Take a void* instead of a
continuations_arg. Adjust to use struct
finish_command_continuation_args.
(finish_command): Adjust to use struct
finish_command_continuation_args.
(struct attach_command_continuation_args): New.
(attach_command_continuation): Take a void* instead of a
continuations_arg. Adjust to use struct
attach_command_continuation_args.
(attach_command): Adjust to use struct
attach_command_continuation_args.
* defs.h (struct continuation_arg): Delete.
(struct continuation): Replace the struct continuation_arg*
parameter of continuation_hook by a void*. Replace "arg_list"
member by a new "args" member with void* type.
(add_continuation, add_intermediate_continuation): Replace struct
continuation_arg type usages by void* usages.
* utils.c (add_continuation, do_all_continuations)
(add_intermediate_continuation)
(do_all_intermediate_continuations): Replace struct
continuation_arg type usages by void* usages. Pass "args" instead
of "arg_list".
Pedro Alves [Sat, 12 Jul 2008 18:39:10 +0000 (18:39 +0000)]
2008-07-12 Pedro Alves <pedro@codesourcery.com>
* infrun.c (struct thread_stepping_state): Delete sal member.
(init_thread_stepping_state): Add local sal. Use it instead of
tss->sal.
(handle_inferior_event): New local stop_pc_sal. Use it instead of
tss->sal.
(step_into_function): Add local stop_func_sal. Use it instead of
tss->sal.
Vladimir Prus [Sat, 12 Jul 2008 17:10:59 +0000 (17:10 +0000)]
Implement -exec-continue/-exec-interrupt --all.
* infcmd.c (continue_1): New, extracted from
(continue_command): ...here.
(interrupt_target_1): New, extracted from
(interrupt_target_command): ...here.
* inferior.h (continue_1, interrupt_target_1): New.
* mi/mi-main.c (mi_cmd_exec_continue)
(mi_cmd_exec_interrupt): Handle --all.
Vladimir Prus [Sat, 12 Jul 2008 16:37:57 +0000 (16:37 +0000)]
Implement --thread and --frame.
* gdbthread.h (find_thread_id): Declare.
* thread.c (find_thread_id): Make non-static.
* mi/mi-main.c (mi_cmd_execute): Switch to the right
thread and frame, if necessary.
* mi/mi-parse.c (mi_parse): Handle --thread and --frame.
* mi/mi-parse.h (strcut mi_parse): New fields thread and frame.
Vladimir Prus [Sat, 12 Jul 2008 13:42:54 +0000 (13:42 +0000)]
* infrun.c (resume): Discard cleanups on early exit path.
Vladimir Prus [Sat, 12 Jul 2008 12:41:56 +0000 (12:41 +0000)]
* infrun.c (normal_stop): For MI, report which threads
were stopped.
Vladimir Prus [Sat, 12 Jul 2008 12:34:19 +0000 (12:34 +0000)]
Report thread state in -thread-info output.
* thread.c (print_thread_info): Add new field "state".
Jie Zhang [Sat, 12 Jul 2008 08:54:12 +0000 (08:54 +0000)]
Revert my last change since it has not been approved.
gdbadmin [Sat, 12 Jul 2008 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 12 Jul 2008 00:00:04 +0000 (00:00 +0000)]
daily update
Kevin Buettner [Fri, 11 Jul 2008 21:57:24 +0000 (21:57 +0000)]
* gdb.arch/e500-regs.exp (decimal_vector): Adjust "v8_int8" portion
of regexp to account for changes made to GDB in the printing of
byte vectors.
Jie Zhang [Fri, 11 Jul 2008 19:24:39 +0000 (19:24 +0000)]
bfd/
* elf.c (_bfd_elf_map_sections_to_segments): Don't put
executable sections into the same segment with other
read only sections if --sep-code.
* elf32-bfin.c (elf32_bfin_code_in_l1): New variable.
(elf32_bfin_data_in_l1): New variable.
(elf32_bfin_final_write_processing): New.
(elf32_bfin_special_sections[]): New.
(elf_backend_final_write_processing): Define.
(elf_backend_special_sections): Define.
binutils/
* readelf.c (get_machine_flags): Deal with Blackfin specific
flags.
include/
* bfdlink.h (struct bfd_link_info): Add sep_code member
variable.
* elf/bfin.h (EF_BFIN_CODE_IN_L1): Define.
(EF_BFIN_DATA_IN_L1): Define.
ld/
* Makefile.am (eelf32bfin.c): Depend on bfin.em.
(eelf32bfinfd.c): Likewise.
* Makefile.in: Regenerate.
* gen-doc.texi: Set Blackfin.
* ld.texinfo: Document --sep-code and Blackfin specific
options.
* ldmain.c (main): Initialize link_info.sep_code.
* lexsup.c (enum option_values): Add OPTION_SEP_CODE.
(ld_options[]): Add --sep-code.
(parse_args): Deal with --sep-code.
* emulparams/bfin.sh (EXTRA_EM_FILE): Define.
* emulparams/elf32bfinfd.sh (OTHER_SECTIONS): Define.
* emultempl/bfin.em: New file.
Pedro Alves [Fri, 11 Jul 2008 17:46:40 +0000 (17:46 +0000)]
* infrun.c (handle_inferior_event): Also ignore a
TARGET_SIGNAL_TRAP on a STOP_QUIETLY_NO_SIGSTOP.
Tom Tromey [Fri, 11 Jul 2008 15:07:52 +0000 (15:07 +0000)]
gdb
* completer.c (complete_line_internal): New function, from
complete_line. Add 'for_help' parameter.
(complete_line): Use it.
(command_completer): Move later. Rewrite.
gdb/testsuite
* gdb.base/completion.exp: Add 'help' completion test.
Pedro Alves [Fri, 11 Jul 2008 11:26:39 +0000 (11:26 +0000)]
* thread.c (thread_apply_command): Move making the cleanup out of
the loop.
Joseph Myers [Fri, 11 Jul 2008 11:15:59 +0000 (11:15 +0000)]
* mh-mingw (LDFLAGS): Append to rather than replacing previous
value.
Pedro Alves [Fri, 11 Jul 2008 11:07:39 +0000 (11:07 +0000)]
Exited threads.
* thread.c (enum thread_state): New.
(thread_state main_thread_running): Delete, in favor of...
(thread_state main_thread_state): ... this. Update throughout.
(clear_thread_inferior_resources): New, split from free_thread.
(free_thread): Call clear_thread_inferior_resources.
(init_thread_list): Set main thread to stopped state.
(add_thread_silent): Take care of PTID reuses.
(delete_thread): If deleting inferior_ptid or a thread with
refcount > 0, mark it as exited, but still keep it in the list.
Only notify of thread exits, if we haven't done so yet.
(iterate_over_threads): Make it safe to delete threads while
iterating over them.
(do_captured_list_thread_ids): Don't account for exited threads.
(thread_alive): Check for the THREAD_EXITED state, and don't set
ptid to -1 on exited threads.
(set_running): Update to account for extra possible states.
(is_thread_state): New.
(is_stopped, is_exited): New.
(is_running): Implement in terms of is_thread_state.
(any_running): Update.
(print_thread_info): Update. Account for exited threads. Don't
warn about missed frame restoring here, its done in the cleanup.
(switch_to_thread): Don't read from a thread that has gone.
(restore_current_thread): In non-stop mode, do a full context
switch.
(restore_selected_frame): Add a frame_level argument. Rewrite.
(struct current_thread_cleanup): Add selected_frame_level and
was_stopped members.
(do_restore_current_thread_cleanup): Check if thread was stopped
and still is, and if the target has registers, stack and memory
before restoring the selected frame. Don't delete the cleanup
argument here.
(restore_current_thread_cleanup_dtor): New.
(make_cleanup_restore_current_thread): Remove all arguments.
Rewrite.
(thread_apply_all_command): Update. Prune threads.
(thread_apply_command): Update.
(thread_command): Account for currently selected exited thread.
(do_captured_thread_select): Check for a running thread. Prune
threads.
(_initialize_thread): Make "info threads", "thread", "thread
apply", and "thread apply all" appliable without a selected thread.
* gdbthread.h (struct thread_info): Replace running_ by state_.
Add refcount.
(is_exited, is_stopped): Declare.
(make_cleanup_restore_current_thread): Remove all arguments.
* infrun.c: Include "event-top.h".
(fetch_inferior_event): In non-stop mode, restore selected thread
and frame after handling the event and running breakpoint
commands. Display GDB prompt if needed.
(normal_stop): In non-stop mode, don't print thread switching
notice.
* cli/cli-decode.c (set_cmd_no_selected_thread_ok)
(get_cmd_no_selected_thread_ok): New.
* cli/cli-decode.h (CMD_NO_SELECTED_THREAD_OK): New.
(set_cmd_no_selected_thread_ok, get_cmd_no_selected_thread_ok):
Declare.
* cli/cli-cmds.c: Set "pwd", "help", "info", "show" as
no-selected-thread ok.
* top.c (execute_command): Check for non no-selected-thread-ok
commands.
* linux-nat.c (struct saved_ptids, threads_to_delete)
(record_dead_thread, prune_lwps): Delete.
(exit_lwp): Unconditionally delete thread.
(linux_nat_resume): Remove prune_lwps call.
* infcmd.c (proceed_thread_callback): Check if !is_stopped instead
of is_running. Adjust to make_cleanup_restore_current_thread
interface change.
* mi/mi-main.c (mi_cmd_execute): Only allow a few commands if the
selected thread has exited.
* inf-loop.c (inferior_event_handler): Don't display the prompt
here.
* varobj.c (c_value_of_root): Update.
* defs.h (make_cleanup_dtor): Declare.
* utils.c (make_cleanup_dtor): New.
* Makefile.in (infrun.o): Depend on $(event_top_h).
Pedro Alves [Fri, 11 Jul 2008 10:59:21 +0000 (10:59 +0000)]
Add "continue -a" and "interrupt -a" options for non-stop mode.
* infcmd.c (proceed_thread_callback, do_context_switch_to): New.
(continue_command): Add "-a" option.
(interrupt_target_command): Add "-a" option.
(_initialize_infcmd): Add extend help of continue and interrupt
command to mention the new "-a" option. Mark "continue" async ok.
Andreas Schwab [Fri, 11 Jul 2008 09:18:19 +0000 (09:18 +0000)]
(read_section): Take pointer to bfd_size_type instead
of unsigned long as last parameter.
(struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size,
dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of
unsigned long.
Hans-Peter Nilsson [Fri, 11 Jul 2008 02:42:35 +0000 (02:42 +0000)]
* common.m4: Add test for libz and zlib.h.
Hans-Peter Nilsson [Fri, 11 Jul 2008 02:41:22 +0000 (02:41 +0000)]
* configure: Regenerate to track ../common/common.m4 changes.
* config.in: Ditto.
Hans-Peter Nilsson [Fri, 11 Jul 2008 02:39:11 +0000 (02:39 +0000)]
* configure.ac: Add test for libz and zlib.h.
* Makefile.in (LIBS): Set from @LIBS@.
* configure: Regenerate.
* config.in: Ditto.
Hans-Peter Nilsson [Fri, 11 Jul 2008 02:32:33 +0000 (02:32 +0000)]
* cris/configure: Regenerate to track ../common/common.m4 changes.
* cris/config.in: Ditto.
Hans-Peter Nilsson [Fri, 11 Jul 2008 02:31:04 +0000 (02:31 +0000)]
* common.m4: Add test for libz and zlib.h.
* configure: Regenerate to track ../common/common.m4 changes.
* config.in: Ditto.
Hans-Peter Nilsson [Fri, 11 Jul 2008 01:32:00 +0000 (01:32 +0000)]
* interp.c (hash): Remove incorrect prototype.
gdbadmin [Fri, 11 Jul 2008 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 11 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
Doug Evans [Thu, 10 Jul 2008 23:08:21 +0000 (23:08 +0000)]
Add "set print symbol-loading on|off".
* NEWS: Document new option.
* symfile.h (print_symbol_loading): Declare.
* symfile.c (print_symbol_loading): New global.
(symbol_file_add_with_addrs_or_offsets): Only print "Reading symbols
from ..." if print_symbol_loading.
(_initialize_symfile): Add set/show print symbol-loading.
* solib.c (solib_read_symbols): Only print "Loaded symbols for ..."
if print_symbol_loading.
* doc/gdb.texinfo: Document "set print symbol-loading on|off".
Pedro Alves [Thu, 10 Jul 2008 22:58:37 +0000 (22:58 +0000)]
Non-stop linux native.
* linux-nat.c (linux_test_for_tracefork): Block events while we're
here.
(get_pending_status): Implement non-stop mode.
(linux_nat_detach): Stop threads before detaching.
(linux_nat_resume): In non-stop mode, always resume only a single
PTID.
(linux_handle_extended_wait): On a clone event, in non-stop mode,
add new lwp to GDB's thread table, and mark as running, executing
and stopped appropriately.
(linux_nat_filter_event): Don't assume there are other running
threads when a thread exits.
(linux_nat_wait): Mark the main thread as running and executing.
In non-stop mode, don't stop all lwps.
(linux_nat_kill): Stop lwps before killing them.
(linux_nat_thread_alive): Use signal 0 to detect if a thread is
alive.
(send_sigint_callback): New.
(linux_nat_stop): New.
(linux_nat_add_target): Set to_stop to linux_nat_stop.
* linux-nat.h (thread_db_attach_lwp): Declare.
* linux-thread-db.c (thread_get_info_callback): Check for new
threads if we have none.
(thread_from_lwp, enable_thread_event): Set proc_handle.pid to the
stopped lwp. Check for new threads if we have none.
(thread_db_attach_lwp): New.
(thread_db_init): Set proc_handle.pid to inferior_ptid.
(check_event): Set proc_handle.pid to the stopped lwp.
(thread_db_find_new_threads): Set proc_handle.pid to any stopped
lwp available, bail out if there is none.
* linux-fork.c (linux_fork_killall): Use SIGKILL instead of
PTRACE_KILL.
Jan Kratochvil [Thu, 10 Jul 2008 20:16:27 +0000 (20:16 +0000)]
* gdb.base/randomize.exp: Remove dependency on tcl-8.4+.
Kevin Buettner [Thu, 10 Jul 2008 19:40:43 +0000 (19:40 +0000)]
* rs6000-tdep.c (ppc_displaced_step_fixup): Change type of
`current_pc' from CORE_ADDR to ULONGEST.
Kevin Buettner [Thu, 10 Jul 2008 19:34:00 +0000 (19:34 +0000)]
* remote-sim.c (gdbsim_cntrl_c): Pass remote_sim_ptid to
gdbsim_stop().
Richard Sandiford [Thu, 10 Jul 2008 19:06:53 +0000 (19:06 +0000)]
bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0
for all relocation types. Allow any type of relocation to refer to
__gnu_local_gp.
ld/testsuite/
* ld-mips-elf/no-shared-1-o32.s,
ld-mips-elf/no-shared-1-o32.d,
ld-mips-elf/no-shared-1-n32.d,
ld-mips-elf/no-shared-1-n64.s,
ld-mips-elf/no-shared-1-n64.d,
ld-mips-elf/no-shared-1.ld: New tests.
* ld-mips-elf/mips-elf.exp: Run them.
Richard Sandiford [Thu, 10 Jul 2008 19:05:28 +0000 (19:05 +0000)]
include/elf/
* mips.h (ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): New macros.
bfd/
* elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16.
(mips_elf_calculate_relocation): Likewise.
(_bfd_mips_elf_add_symbol_hook): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
opcodes/
* mips-dis.c (_print_insn_mips): Use ELF_ST_IS_MIPS16.
gas/
* config/tc-mips.c (mips16_mark_labels): Use ELF_ST_SET_MIPS16.
(mips_fix_adjustable): Likewise.
(mips_frob_file_after_relocs): Likewise.
gas/testsuite/
* gas/mips/mips16-vis-1.d, gas/mips/mips16-vis-1.s: New tests.
* gas/mips/mips.exp: Run them.
Doug Evans [Thu, 10 Jul 2008 16:44:47 +0000 (16:44 +0000)]
fix typo in "set debug timetstamp"
Andreas Schwab [Thu, 10 Jul 2008 16:24:03 +0000 (16:24 +0000)]
(_bfd_mips_elf_section_from_shdr): Add missing
paren.
Jan Kratochvil [Thu, 10 Jul 2008 09:31:00 +0000 (09:31 +0000)]
gdb/
* NEWS (New commands): Mention "set disable-randomization".
* configure.ac: Add check for HAVE_PERSONALITY and
HAVE_DECL_ADDR_NO_RANDOMIZE.
* configure, config.in: Regenerate.
* linux-nat.c [HAVE_PERSONALITY]: New include <sys/personality.h>.
[HAVE_PERSONALITY] [!HAVE_DECL_ADDR_NO_RANDOMIZE]: Set
ADDR_NO_RANDOMIZE.
(disable_randomization, show_disable_randomization)
(set_disable_randomization): New.
(linux_nat_create_inferior) [HAVE_PERSONALITY]: New variables
PERSONALITY_ORIG and PERSONALITY_SET. Disable randomization upon the
variable DISABLE_RANDOMIZATION.
(_initialize_linux_nat): Call ADD_SETSHOW_BOOLEAN_CMD for the variable
DISABLE_RANDOMIZATION.
gdb/doc/
* gdb.texinfo (Starting): Document "set disable-randomization".
gdb/testsuite/
* gdb.base/randomize.exp, gdb.base/randomize.c: New files.
Craig Silverstein [Thu, 10 Jul 2008 01:32:22 +0000 (01:32 +0000)]
bfd/
* Makefile.am (BFD32_LIBS): Add compress.lo.
(BFD32_LIBS_CFILES): Add compress.c.
(BFD_H_FILES): Likewise.
* Makefile.in: Regenerate.
* bfd-in2.h: Regenerate.
* config.in: Add HAVE_ZLIB_H
* configure.in: Add test for libz and zlib.h
* configure: Regenerate.
* dwarf2.c (read_section): New function.
(read_indirect_string): Call new function read_section.
(read_abbrevs): Likewise.
(decode_line_info): Likewise.
(read_debug_ranges): Likewise.
(find_line): Call new function read_section when just one
.zdebug_info section is found, otherwise read and compress
multiple sections.
(_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr.
* elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix.
(special_sections_z): New struct.
(special_sections): Refer to special_sections_z.
* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize
sections named .zdebug_*.
(_bfd_mips_elf_fake_sections): Likewise.
* compress.c: New file.
(bfd_uncompress_section_contents): New function.
bfd/doc/
* Makefile.am (BFD_H_DEP): Add ../compress.c.
* Makefile.in: Regenerate.
binutils/
* config.in: Add HAVE_ZLIB_H
* configure.in: Add test for libz and zlib.h
* configure: Regenerate.
* dwarf.c (debug_displays): Add .zdebug_* strings.
* dwarf.h (struct dwarf_section): Add fields uncompressed_namd
and compressed_name.
* objdump.c (load_debug_section): Call
bfd_uncompress_section_contents when loading a compressed
section.
(dump_dwarf_section): Recognize compressed section name.
(mach_o_dwarf_sections): Rename as
mach_o_uncompressed_dwarf_sections.
(mach_o_compressed_dwarf_sections): New variable.
(generic_dwarf_section): Rename as
generic_uncompressed_dwarf_sections.
(generic_compressed_dwarf_sections): New variable.
(check_mach_o_dwarf): Save and restore
mach_o_compressed_dwarf_sections.
* readelf.c: Add #include for config.h and zlib.h
(process_section_headers): Recognize compressed section name.
(uncompress_section_contents): New function.
(load_debug_section): Call uncompress_section_contents when
loading a compressed section.
(display_debug_section): Recognize compressed section name.
binutils/testsuite:
* binutils-all/objdump.exp: Add test for objdump -s on a file
with a compressed debug section. Add test for objdump -W on a
file that contains a compressed debug section.
* binutils-all/readelf.exp: Call readelf_compressed_wa_test.
(readelf_compressed_wa_test): New function.
* binutils-all/dw2-compressed.S: New file.
* binutils-all/objdump.W: New file.
* binutils-all/objdump.s: New file.
* binutils-all/readelf.wa: New file.
Alan Modra [Thu, 10 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Thu, 10 Jul 2008 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Pedro Alves [Wed, 9 Jul 2008 22:49:56 +0000 (22:49 +0000)]
Adjust all targets to new target_stop interface.
* gnu-nat.c (gnu_stop): Add ptid argument.
* go32-nat.c (go32_stop): Add ptid argument.
(go32_create_inferior): Pass inferior_ptid to go32_stop.
* hpux-thread.c (hpux_thread_stop): Add ptid argument.
* monitor.c (monitor_stop): Add ptid argument.
(monitor_open): Pass inferior_ptid to monitor_stop.
(monitor_interrupt): Pass inferior_ptid to target_stop.
(monitor_stop): Add ptid argument.
* nto-procfs.c (nto_interrupt): Pass inferior_ptid to target_stop.
(procfs_create_inferior): Add ptid argument.
* procfs.c (procfs_stop): Add ptid argument.
* remote-m32r-sdi.c (m32r_stop): Add ptid argument.
* remote-sim.c (gdbsim_stop): Add ptid argument.
* sol-thread.c (sol_thread_stop): Add ptid argument.
* win32-nat.c (win32_stop): Add ptid argument.
Pedro Alves [Wed, 9 Jul 2008 22:42:43 +0000 (22:42 +0000)]
Non-stop inferior control.
* infrun.c (resume): In non-stop mode, always resume just one
thread.
(proceed): Don't call prepare_to_proceed in non-stop mode.
(fetch_inferior_event): In non-stop mode, switch context before
handling the event.
(error_is_running, ensure_not_running): New.
(handle_inferior_event): In non-stop mode: Mark only the event
thread as stopped. Require that the target module manages adding
threads to the thread list. Assert that there isn't a
deferred_step_ptid set. Don't switch to infwait_thread_hop_state.
(normal_stop): Only mark not-running if inferior hasn't exited.
In non-stop mode, only mark the event thread.
* thread.c:Include "cli/cli-decode.h".
(print_thread_info): Don't read from a running thread.
Output "(running)" if thread is running.
(switch_to_thread): Don't read stop_pc if thread is executing.
(do_restore_current_thread_cleanup): Don't write to a running
thread.
(thread_apply_all_command): Don't read from a running thread. In
non-stop mode, do a full context-switch instead of just switching
threads.
(thread_apply_command): In non-stop mode, do a full context-switch
instead of just switching threads.
(do_captured_thread_select): Likewise. Inform user if selected
thread is running.
(_initialize_thread): Mark "info threads" and "thread" and
async_ok.
* inf-loop.c (inferior_event_handler): In non-stop mode, don't
unregister the target from the event loop.
* infcmd.c (continue_command, step_1, jump_command)
(signal_command): Ensure the selected thread isn't running.
(interrupt_target_command): In non-stop mode, interrupt only the
selected thread.
* inferior.h (error_is_running, ensure_not_running): Declare.
* target.h (struct target_ops): Add ptid argument to the to_stop
member.
(target_stop): Add ptid_t argument.
* target.c (update_current_target): Add ptid argument to to_stop's
type.
(debug_to_stop): Add ptid_t argument.
(debug_to_rcmd): Set to_stop_ptid.
* remote.c (remote_stop): Add ptid_t argument.
(async_remote_interrupt): Add inferior_ptid to target_stop.
* inf-ptrace.c (inf_ptrace_stop): Add ptid argument.
* Makefile.in (thread.o): Depend on $(cli_decode_h).
Pedro Alves [Wed, 9 Jul 2008 22:36:51 +0000 (22:36 +0000)]
Don't rely on ecs->wait_for_more.
* infrun.c (proceed): Clear the stepping state, set
previous_inferior_ptid and clear infwait state.
(wait_for_inferior): Don't clear the stepping state, set
previous_inferior_ptid, or clear the infwait state here.
(fetch_inferior_event): Don't clear the stepping state, set
previous_inferior_ptid, or clear the infwait state here. Don't
condition on wait_for_more.
Pedro Alves [Wed, 9 Jul 2008 22:33:16 +0000 (22:33 +0000)]
Refactor infrun a bit.
* infrun.c (currently_stepping): Take a struct
thread_stepping_state instead of an execution_control_state.
(struct thread_stepping_state): New, split from
execution_control_state.
(gtss, tss): New globals.
(proceed): Clear the stepping state, set previous_inferior_ptid
and clear infwait state.
(init_wait_for_inferior): Clear the stepping state,
previous_inferior_ptid and infwait state.
(waiton_ptid, infwait_state): New, split from
execution_control_state.
(struct execution_control_state): Members that persist through
events moved out to either struct thred_stepping_state or made
global. Deleted unneeded wp, saved_inferior_ptid, tmpstatus.
(wait_for_inferior, fetch_inferior_event): Use local
execution_control_state. Update to execution_control_state split.
(init_execution_control_state): Adjust.
(init_thread_stepping_state): New, extracted from
init_execution_control_state.
(context_switch): Take a ptid instead of an
execution_control_state.
(context_switch_to): Adjust.
(adjust_pc_after_break): Adjust.
(init_infwait_state): New.
(handle_inferior_event): Adjust.
Pedro Alves [Wed, 9 Jul 2008 22:30:46 +0000 (22:30 +0000)]
Per-thread commands.
* gdbthread.h: Remove unneeded forward declarations.
Include "inferior.h".
(struct thread_info): Add continuations,
intermediate_continuations, proceed_to_finish, step_over_calls,
stop_step, step_multi and stop_signal members.
(save_infrun_state): Add continuations,
intermediate_continuations, proceed_to_finish, step_over_calls,
stop_step, step_multi, stop_signal and stop_bpstat parameters.
(load_infrun_state): Add continuations,
intermediate_continuations, proceed_to_finish, step_over_calls,
stop_step, step_multi, stop_signal and stop_bpstat parameters.
* thread.c (load_infrun_state): In non-stop mode, load
continuations, intermediate_continuations, proceed_to_finish,
step_over_calls, stop_step, step_multi and stop_signal.
(save_infrun_state): Store continuations,
intermediate_continuations, proceed_to_finish, step_over_calls,
stop_step, step_multi, stop_signal and stop_bpstat.
(save_infrun_state): Store continuations,
intermediate_continuations, proceed_to_finish, step_over_calls,
stop_step, step_multi, stop_signal and stop_bpstat.
(free_thread): Clear The thread's stop_bpstat.
* inferior.h (context_switch_to): Declare.
* infrun.c (ecss): New global.
(context_switch): Context switch continuations,
intermediate_continuations, proceed_to_finish, step_over_calls,
stop_step, step_multi, stop_signal and stop_bpstat.
(wait_for_inferior): Use global ecss.
(async_ecss, async_ecs): Delete.
(fetch_inferior_event): Use global ecss.
(context_switch_to): New.
* top.c (execute_command): In non-stop, only check if the current
thread is running, in all-stop, check if there's any thread
running.
* breakpoint.c (bpstat_remove_breakpoint): New.
(bpstat_remove_breakpoint_callback): New.
(delete_breakpoint): Clear the stop_bpstats of all threads.
* mi/mi-main.c (mi_cmd_execute): In non-stop, only check if the
current thread is running, in all-stop, check if there's any
thread running.
* Makefile.in (gdbthread_h): Depend on $(inferior_h).
Pedro Alves [Wed, 9 Jul 2008 22:27:13 +0000 (22:27 +0000)]
Add non_stop global.
* inferior.h (non_stop): Declare.
* infrun.c (non_stop, non_stop_1): New.
(set_non_stop, show_non_stop): New.
(_initialize_infrun): Add "set/show non-stop" command.
Pedro Alves [Wed, 9 Jul 2008 22:23:05 +0000 (22:23 +0000)]
Adjust fork/vfork/exec to pass ptids around.
* target.h (struct target_waitstatus): Store related_pid as a ptid.
(inferior_has_forked, inferior_has_vforked, inferior_has_execd):
Take a ptid_t.
* breakpoint.h (struct breakpoint): Change forked_inferior_pid
type to ptid.
* breakpoint.c (print_it_typical, bpstat_check_location)
(print_one_breakpoint_location, set_raw_breakpoint_without_location)
(create_fork_vfork_event_catchpoint): Adjust.
* infrun.c (fork_event): Change parent_pid and child_pid types to
ptid.
(follow_exec, inferior_has_forked, inferior_has_vforked)
(inferior_has_execd): Take a ptid_t and don't trim it.
* linux-thread-db.c (thread_db_wait): Don't trim the returned ptid.
* linux-nat.c (linux_child_follow_fork): Adjust.
* inf-ptrace.c (inf_ptrace_wait): Adjust.
* inf-ttrace.c (inf_ttrace_wait): Adjust.
* win32-nat.c (get_win32_debug_event): Don't set related_pid.
Pedro Alves [Wed, 9 Jul 2008 22:16:15 +0000 (22:16 +0000)]
Add "executing" property to threads.
* inferior.h (target_executing): Delete.
* gdbthread.h (struct thread_info): Add executing_ field.
(set_executing, is_executing): New.
* thread.c (main_thread_executing): New.
(init_thread_list): Clear it and also main_thread_running.
(is_running): Return false if target has no execution.
(any_running, is_executing, set_executing): New.
* top.c: Include "gdbthread.h".
(target_executing): Delete.
(execute_command): Replace target_executing check by any_running.
* event-top.c: Include "gdbthread.h".
(display_gdb_prompt, command_handler): Replace target_executing by
is_running.
* inf-loop.c: Include "gdbthread.h". Don't mark as not executing
here. Replace target_executing by is_running.
* infrun.c (handle_inferior_event): Mark all threads as
not-executing.
* linux-nat.c (linux_nat_resume): Don't mark thread as executing
here.
* stack.c (get_selected_block): Return null if inferior is
executing.
* target.c (target_resume): Mark resumed ptid as executing.
* breakpoint.c (until_break_command): Replace target_executing
check by is_executing.
* remote.c (remote_async_resume): Don't mark inferior as executing
here.
* mi/mi-interp.c (mi_cmd_interpreter_exec): Replace target_executing
by any_running.
* mi/mi-main.c (mi_cmd_exec_interrupt, mi_cmd_execute)
(mi_execute_async_cli_command): Replace target_executing by
is_running.
* frame.c (get_current_frame): Error out if the current thread is
executing.
(has_stack_frames): New.
(get_selected_frame, deprecated_safe_get_selected_frame): Check
has_stack_frames.
* Makefile.in (event-top.o, frame.o, inf-loop.o, top.o): Depend on
$(gdbthread_h).
Pedro Alves [Wed, 9 Jul 2008 11:16:49 +0000 (11:16 +0000)]
gdb/
2008-07-09 Pedro Alves <pedro@codesourcery.com>
* symfile.c (load_command): Reopen the exec file and reread
symbols before anything else.
gdb/testsuite/
2008-07-09 Pedro Alves <pedro@codesourcery.com>
* gdb.base/chng-syms.exp: Don't expect "No symbol ...".
Pedro Alves [Wed, 9 Jul 2008 11:02:56 +0000 (11:02 +0000)]
* remote-sim.c: Include gdbthread.h.
(remote_sim_ptid): New global.
(gdbsim_create_inferior): Silently add the main task to GDB's
thread list.
(gdbsim_close, gdbsim_mourn_inferior): Silently delete the main
task from GDB's thread list.
(gdbsim_resume): Adjust to use remote_sim_ptid.
(gdbsim_thread_alive, gdbsim_pid_to_str): New.
(init_gdbsim_ops): Register gdbsim_thread_alive and
gdbsim_pid_to_str.
(_initialize_remote_sim): Initialize remote_sim_ptid.
* Makefile.in (remote-sim.o): Depend on $(gdbthread_h).
Pedro Alves [Wed, 9 Jul 2008 10:58:41 +0000 (10:58 +0000)]
* monitor (monitor_ptid): New global.
(monitor_open): Silently add the main task to GDB's thread list.
(monitor_close, monitor_mourn_inferior): Silently delete the main
task from GDB's thread list.
(monitor_thread_alive, monitor_pid_to_str): New.
(init_base_monitor_ops): Register monitor_thread_alive and
monitor_pid_to_str.
(_initialize_remote_monitors): Initialize monitor_ptid.
* gdbthread.h (delete_thread_silent): Declare.
* thread.c (delete_thread): Rename to ...
(delete_thread_1): ... this. Add "silent" parameter. If silent,
don't do exit notifications.
(delete_thread, delete_thread_silent): New, as wrappers to
delete_thread_1.
Pedro Alves [Wed, 9 Jul 2008 10:50:52 +0000 (10:50 +0000)]
* gdb.base/fullname.exp: Restore pwd if compiling failed.
Alan Modra [Wed, 9 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Wed, 9 Jul 2008 00:00:04 +0000 (00:00 +0000)]
*** empty log message ***
Pedro Alves [Tue, 8 Jul 2008 11:09:40 +0000 (11:09 +0000)]
* breakpoint.c (update_global_location_list): Add boolean
"should_insert" argument. Only insert locations if caller told it
too.
(update_global_location_list_nothrow): Add boolean "should_insert"
argument. Pass it to update_global_location_list.
(insert_breakpoints, create_longjmp_breakpoint)
(create_overlay_event_breakpoint, enable_overlay_breakpoints)
(create_thread_event_breakpoint, create_solib_event_breakpoint)
(create_fork_vfork_event_catchpoint, create_exec_event_catchpoint)
(enable_watchpoints_after_interactive_call_stop)
(set_momentary_breakpoint, create_breakpoints)
(break_command_really, watch_command_1)
(create_ada_exception_breakpoint, update_breakpoint_locations)
(do_enable_breakpoint, enable_command): Pass true to
update_global_location_list.
(bpstat_stop_status, disable_overlay_breakpoints)
(disable_watchpoints_before_interactive_call_start)
(delete_breakpoint, disable_breakpoint, disable_command): Pass
false to update_global_location_list.
(update_breakpoints_after_exec): Don't temporarily disable
always-inserted mode.
Pedro Alves [Tue, 8 Jul 2008 10:59:57 +0000 (10:59 +0000)]
* breakpoint.c (mark_breakpoints_out): Make public.
(update_breakpoints_after_exec): Don't call mark_breakpoints_out
here. Update comment.
* breakpoint.h (mark_breakpoints_out): Declare.
* linux-nat.c (linux_handle_extended_wait): On
TARGET_WAITKIND_EXECD, call mark_breakpoints_out.
* inf-ttrace.c (inf_ttrace_wait): Likewise.
Pedro Alves [Tue, 8 Jul 2008 10:31:16 +0000 (10:31 +0000)]
* infrun.c (follow_exec): Reset shared libraries before adding the
main exec file.
gdbadmin [Tue, 8 Jul 2008 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 8 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
Pedro Alves [Mon, 7 Jul 2008 23:00:11 +0000 (23:00 +0000)]
* server.c (handle_v_attach): Inhibit reporting dll changes.
Jan Kratochvil [Mon, 7 Jul 2008 22:39:59 +0000 (22:39 +0000)]
gdb/
* breakpoint.c (bpstat_copy): Call RELEASE_VALUE on the new OLD_VAL.
gdb/testsuite/
* gdb.base/value-double-free.exp, gdb.base/value-double-free.c: New.
Pedro Alves [Mon, 7 Jul 2008 22:05:45 +0000 (22:05 +0000)]
* i386-dicos-tdep.c: Include "inferior.h".
(i386_dicos_frame_align): New.
(i386_dicos_init_abi): Register i386_dicos_frame_align. Set call
dummy location ON_STACK.
* Makefile.in (i386-dicos-tdep.o): Depend on $(inferior_h).
Adam Nemet [Mon, 7 Jul 2008 19:11:15 +0000 (19:11 +0000)]
* mips-opc.c (CP): New macro.
(mips_builtin_opcodes): Mark c0, c2 and c3 as CP. Add Octeon to the
membership of di, dmfc0, dmtc0, ei, mfc0 and mtc0. Add dmfc2 and
dmtc2 Octeon instructions.
Stan Shebs [Mon, 7 Jul 2008 18:40:13 +0000 (18:40 +0000)]
2008-07-07 Stan Shebs <stan@codesourcery.com>
* dis-asm.h (struct disassemble_info): Add endian_code field.
Stan Shebs [Mon, 7 Jul 2008 18:35:24 +0000 (18:35 +0000)]
2008-07-07 Stan Shebs <stan@codesourcery.com>
* dis-init.c (init_disassemble_info): Init endian_code field.
* arm-dis.c (print_insn): Disassemble code according to
setting of endian_code.
(print_insn_big_arm): Detect when BE8 extension flag has been set.
Joel Brobecker [Mon, 7 Jul 2008 17:11:56 +0000 (17:11 +0000)]
* gstdint.h: New file.
Joel Brobecker [Mon, 7 Jul 2008 17:09:31 +0000 (17:09 +0000)]
* safe-ctype.h: Add #include of ctype.h before redefining
the ctype.h macros.
Nick Clifton [Mon, 7 Jul 2008 16:02:32 +0000 (16:02 +0000)]
* elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in
the presence of a PLT.
Andreas Schwab [Mon, 7 Jul 2008 12:05:30 +0000 (12:05 +0000)]
(GDB/MI Target Manipulation): Fix last change.
Alan Modra [Mon, 7 Jul 2008 11:48:27 +0000 (11:48 +0000)]
* bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char.
gdbadmin [Mon, 7 Jul 2008 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 7 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
Vladimir Prus [Sun, 6 Jul 2008 13:21:19 +0000 (13:21 +0000)]
* gdb.texinfo (GDB/MI Target Manipulation): Add
example of -target-attach.
Alan Modra [Sun, 6 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Sun, 6 Jul 2008 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Vladimir Prus [Sat, 5 Jul 2008 17:57:24 +0000 (17:57 +0000)]
* mi/mi-interp.c (mi_on_resume): Don't try to report
resumed thread it the thread list is empty.
Daniel Jacobowitz [Sat, 5 Jul 2008 13:48:21 +0000 (13:48 +0000)]
Add missed changelog entry.
gdbadmin [Sat, 5 Jul 2008 00:00:36 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 5 Jul 2008 00:00:06 +0000 (00:00 +0000)]
daily update
Pierre Muller [Fri, 4 Jul 2008 22:30:19 +0000 (22:30 +0000)]
* cli/cli-decode.c (add_setshow_optional_filename_cmd): Set
completer for set to filename_completer.
NEWS: Mention it.
Joel Brobecker [Fri, 4 Jul 2008 17:11:29 +0000 (17:11 +0000)]
* safe-ctype.h: Remove #error when detecting that ctype.h has been
included. Redefine the various macros provided by ctype.h as
undefined variables.
Vladimir Prus [Fri, 4 Jul 2008 09:04:36 +0000 (09:04 +0000)]
Implement -target-attach.
* mi/mi-cmds.c (mi_cmds): Forward -target-attach to CLI attach.
gdbadmin [Fri, 4 Jul 2008 00:00:34 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 4 Jul 2008 00:00:04 +0000 (00:00 +0000)]
daily update
Michael Snyder [Thu, 3 Jul 2008 23:14:35 +0000 (23:14 +0000)]
2008-06-21 Hui Zhu <teawater@gmail.com>
* target-descriptions.c (maint_print_c_tdesc_cmd): Fix a memory leak.
Pedro Alves [Thu, 3 Jul 2008 17:38:08 +0000 (17:38 +0000)]
* config/i386/nm-cygwin.h (ATTACH_NO_WAIT): Delete.
* config/i386/nm-i386gnu.h (ATTACH_NO_WAIT): Delete.
* target.h (struct target_ops): Add to_attach_no_wait member.
(target_attach_no_wait): New.
* target.c (update_current_target): Inherit to_attach_no_wait.
* infcmd.c: Replace ATTACH_NO_WAIT compile time check by
target_attach_no_wait runtime check.
* gnu-nat.c (init_gnu_ops): Set to_attach_no_wait in gnu_ops.
* win32-nat.c (init_win32_ops): Set to_attach_no_wait in
win32_ops.
Pedro Alves [Thu, 3 Jul 2008 00:19:58 +0000 (00:19 +0000)]
* i386-tdep.c (i386_displaced_step_fixup): Condition log printing
on debug_displaced being set.
gdbadmin [Thu, 3 Jul 2008 00:00:35 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 3 Jul 2008 00:00:06 +0000 (00:00 +0000)]
daily update
Alan Modra [Wed, 2 Jul 2008 13:31:53 +0000 (13:31 +0000)]
* elf32-ppc.c (is_pic_glink_stub): New function.
(ppc_elf_get_synthetic_symtab): Don't generate symbols when
multiple shared/pie stubs per plt entry.
Alan Modra [Wed, 2 Jul 2008 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Wed, 2 Jul 2008 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 1 Jul 2008 00:00:06 +0000 (00:00 +0000)]
daily update
gdbadmin [Tue, 1 Jul 2008 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Richard Sandiford [Mon, 30 Jun 2008 20:53:06 +0000 (20:53 +0000)]
bfd/
* elf.c (_bfd_elf_get_synthetic_symtab): Increment p by
bed->s->int_rels_per_ext_rel.
Richard Sandiford [Mon, 30 Jun 2008 20:51:58 +0000 (20:51 +0000)]
bfd/
* syms.c (BSF_SYNTHETIC): New flag.
* elf.c (_bfd_elf_get_synthetic_symtab): Set it.
* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise.
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise.
* bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour
for synthetic symbols.
* bfd-in2.h: Regenerate.
opcodes/
* mips-dis.c (_print_insn_mips): Use bfd_asymbol_flavour to check
for ELF symbols.
Daniel Jacobowitz [Mon, 30 Jun 2008 17:59:03 +0000 (17:59 +0000)]
* frame.c (get_prev_frame_1): Call frame_unwind_find_by_frame
directly instead of get_frame_id.
Daniel Jacobowitz [Mon, 30 Jun 2008 15:32:51 +0000 (15:32 +0000)]
* elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
Expand comments.
(arm_map_one_stub): Use | 1 when setting the low bit.