X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdbserver%2FChangeLog;h=47a74b4452def839d890ed7a99254ffb4f2bb58b;hb=721a8186463bd0613adde0a0cfc46bb3c5d7bfdb;hp=f0e0cdebe3e88529e225c6e721ceba0c6a4a50af;hpb=c35fafde7ca3b92581dee5c0ed445de3c667ab2d;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index f0e0cdebe3..47a74b4452 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,747 @@ +2009-10-13 Pedro Alves + + * proc-service.c (ps_lgetregs): Formatting. + +2009-10-08 Paul Pluzhnikov + + * acinclude.m4: (SRV_CHECK_THREAD_DB, SRV_CHECK_TLS_GET_ADDR): Remove. + * configure.ac: Adjust. + * linux-low.h (struct process_info_private): Move members to struct + thread_db. + (thread_db_free, thread_db_handle_monitor_command): New prototype. + * linux-low.c (linux_remove_process): Adjust. + (linux_wait_for_event_1, linux_look_up_symbols): Likewise. + * server.c (handle_query): Move code ... + (handle_monitor_command): ... here. New function. + * target.h (struct target_ops): New member. + * thread-db.c (struct thread_db): New. + (libthread_db_search_path): New variable. + (thread_db_create_event, thread_db_enable_reporting) + (find_one_thread, maybe_attach_thread, find_new_threads_callback) + (thread_db_find_new_threads, (thread_db_get_tls_address): Adjust. + (try_thread_db_load_1, dladdr_to_soname): New functions. + (try_thread_db_load, thread_db_load_search): New functions. + (thread_db_init): Search for libthread_db. + (thread_db_free): New function. + (thread_db_handle_monitor_command): Likewise. + * config.in: Regenerate. + * configure: Regenerate. + +2009-09-27 Ulrich Weigand + + * spu-low.c (spu_kill): Wait for inferior to terminate. + Call clear_inferiors. + (spu_detach): Call clear_inferiors. + +2009-08-22 Ralf Wildenhues + + * aclocal.m4: Regenerate. + * config.in: Likewise. + * configure: Likewise. + +2009-07-31 Ulrich Weigand + + * linux-ppc-low.c (INSTR_SC, NR_spu_run): Define. + (parse_spufs_run): New function. + (ppc_get_pc, ppc_set_pc): Detect and handle SPU PC. + (ppc_breakpoint_at): Handle SPU breakpoints. + +2009-07-31 Ulrich Weigand + + * linux-low.c: Include and . + (SPUFS_MAGIC): Define. + (spu_enumerate_spu_ids): New function. + (linux_qxfer_spu): New function. + (linux_target_ops): Install linux_qxfer_spu. + +2009-07-31 Ulrich Weigand + + * configure.srv (powerpc*-*-linux*): Add powerpc-cell32l.o + and powerpc-cell64l.o to srv_regobj. Add rs6000/powerpc-cell32l.xml + and rs6000/powerpc-cell64l.xml to srv_xmlfiles. + * Makefile.in (powerpc-cell32l.o, powerpc-cell32l.c): New rules. + (powerpc-cell64l.o, powerpc-cell64l.c): Likewise. + (clean): Handle powerpc-cell32l.c and powerpc-cell64l.c. + * linux-ppc-low.c (PPC_FEATURE_CELL): Define. + (init_registers_powerpc_cell32l): Add prototype. + (init_registers_powerpc_cell64l): Likewise. + (ppc_arch_setup): Detect Cell/B.E. architecture. + +2009-07-30 Ralf Wildenhues + + * Makefile.in (datarootdir): New variable. + +2009-07-28 Daniel Jacobowitz + + * linux-low.c (linux_write_memory): Update debugging output. + * Makefile.in (clean): Add new descriptions. + (arm-with-vfpv2.o, arm-with-vfpv2.c, arm-with-vfpv3.o) + (arm-with-vfpv3.c, arm-with-neon.o, arm-with-neon.c): New rules. + * configure.srv: Add new files for arm*-*-linux*. + * linux-arm-low.c: Add new declarations. + (PTRACE_GETVFPREGS, PTRACE_SETVFPREGS): Define if undefined. + (arm_hwcap, HWCAP_VFP, HWCAP_IWMMXT, HWCAP_NEON, HWCAP_VFPv3) + (HWCAP_VFPv3D16): New. + (arm_fill_wmmxregset, arm_store_wmmxregset): Check HWCAP_IWMMXT + instead of __IWMMXT__. + (arm_fill_vfpregset, arm_store_vfpregset, arm_get_hwcap) + (arm_arch_setup): New. + (target_regsets): Remove #ifdef. Add VFP regset. + (the_low_target): Use arm_arch_setup. + +2009-07-28 Daniel Jacobowitz + + * linux-low.c (linux_kill_one_lwp): Adjust kernel workaround to skip + the main thread again. + +2009-07-06 Aleksandar Ristovski + + Adding Neutrino gdbserver. + * configure: Regenerated. + * configure.ac: Add case for srv_qnx and set LIBS accordingly. + * configure.srv (i[34567]86-*-nto*): New target. + * nto-low.c, nto-low.h, nto-x86-low.c: New files. + * remote-utils.c [__QNX__]: Include sys/iomgr.h + (nto_comctrl) [__QNX__]: New function. + (enable_async_io, disable_async_io) [__QNX__]: Call nto_comctrl. + +2009-07-05 Danny Backx + + * configure.srv (i[34567]86-*-mingw32ce*): Add i386-low.o to + srv_tgtobj. + +2009-07-04 Danny Backx + Pedro Alves + + * win32-i386-low.c (i386_get_thread_context): Handle systems that + don't support CONTEXT_EXTENDED_REGISTERS. + (i386_win32_breakpoint, i386_win32_breakpoint_len): New. + (the_low_target): Install them. + * win32-low.c (get_child_debug_event): Handle WaitForDebugEvent + failing with ERROR_PIPE_NOT_CONNECTED. + +2009-06-30 Doug Evans + Pierre Muller + + Add h/w watchpoint support to x86-linux, win32-i386. + * Makefile.in (SFILES): Add i386-low.c + (i386_low_h): Define. + (i386-low.o): Add dependencies. + (linux-x86-low.o): Add i386-low.h dependency. + (win32-i386-low.o): Ditto. + * i386-low.c: New file. + * i386-low.h: New file. + * configure.srv (i[34567]86-*-cygwin*): Add i386-low.o to srv_tgtobj. + (i[34567]86-*-linux*, i[34567]86-*-mingw*, x86_64-*-linux*): Ditto. + * linux-low.c (linux_add_process): Initialize arch_private. + (linux_remove_process): Free arch_private. + (add_lwp): Initialize arch_private. + (delete_lwp): Free arch_private. + (linux_resume_one_lwp): Call the_low_target.prepare_to_resume if + provided. + * linux-low.h (process_info_private): New member arch_private. + (lwp_info): New member arch_private. + (linux_target_ops): New members new_process, new_thread, + prepare_to_resume. + (ptid_of): New macro. + * linux-x86-low.c: Include stddef.h, i386-low.h. + (arch_process_info): New struct. + (arch_lwp_info): New struct. + (x86_linux_dr_get, x86_linux_dr_set): New functions. + (i386_dr_low_set_addr, i386_dr_low_set_control): New functions. + (i386_dr_low_get_status): New function. + (x86_insert_point, x86_remove_point): New functions. + (x86_stopped_by_watchpoint): New function. + (x86_stopped_data_address): New function. + (x86_linux_new_process, x86_linux_new_thread): New functions. + (x86_linux_prepare_to_resume): New function. + (the_low_target): Add entries for insert_point, remove_point, + stopped_by_watchpoint, stopped_data_address, new_process, new_thread, + prepare_to_resume. + * server.c (debug_hw_points): New global. + (monitor_show_help): Document set debug-hw-points. + (handle_query): Process "set debug-hw-points". + * server.h (debug_hw_points): Declare. + (paddress): Declare. + * utils.c (NUMCELLS, CELLSIZE): New macros. + (get_sell, xsnprintf, paddress): New functions. + * win32-arm-low.c (the_low_target): Add entries for insert_point, + remove_point, stopped_by_watchpoint, stopped_data_address. + * win32-i386-low.c: Include i386-low.h. + (debug_reg_state): Replaces dr. + (i386_dr_low_set_addr, i386_dr_low_set_control): New functions. + (i386_dr_low_get_status): New function. + (i386_insert_point, i386_remove_point): New functions. + (i386_stopped_by_watchpoint): New function. + (i386_stopped_data_address): New function. + (i386_initial_stuff): Update. + (get_thread_context,set_thread_context,i386_thread_added): Update. + (the_low_target): Add entries for insert_point, + remove_point, stopped_by_watchpoint, stopped_data_address. + * win32-low.c (win32_insert_watchpoint): New function. + (win32_remove_watchpoint): New function. + (win32_stopped_by_watchpoint): New function. + (win32_stopped_data_address): New function. + (win32_target_ops): Add entries for insert_watchpoint, + remove_watchpoint, stopped_by_watchpoint, stopped_data_address. + * win32-low.h (win32_target_ops): New members insert_point, + remove_point, stopped_by_watchpoint, stopped_data_address. + +2009-06-25 Pedro Alves + + * server.c (process_serial_event): Re-return unsupported, not + error, if the type isn't recognized. Re-allow supporting only + insert or remove packets. Also call require_running for + breakpoints. Add missing break statement to default case. Tidy. + * target.h (struct target_ops): Rename insert_watchpoint to + insert_point, and remove_watchpoint to remove_point. + + * linux-low.h (struct linux_target_ops): Likewise. + * linux-low.c (linux_insert_watchpoint): Rename to ... + (linux_insert_point): ... this. Adjust. + (linux_remove_watchpoint): Rename to ... + (linux_remove_point): ... this. Adjust. + (linux_target_ops): Adjust. + * linux-crisv32-low.c (cris_insert_watchpoint): Rename to ... + (cris_insert_point): ... this. + (cris_remove_watchpoint): Rename to ... + (cris_remove_point): ... this. + (the_low_target): Adjust. + +2009-06-24 Pierre Muller + + * server.c (handle_v_kill): Pass signal_pid to + kill_inferior if multi_process is zero. + +2009-06-23 Aleksandar Ristovski + + * server.c (process_serial_event): Add support for Z0 and Z1 packet. + * target.h (target_ops): Comment for *_watchpoint to make it clear + the functions can get types '0' and '1'. + +2009-06-22 Aleksandar Ristovski + + * linux-low.c (usr_fetch_inferior_registers): Remove check for regno 0. + * proc-service.c (ps_lgetregs): Pass -1 to fetch all registers. + * regcache.c (get_regcache): Likewise. + * spu-low.c (spu_fetch_registers): Remove 0 to -1 conversion. + * win32-low.c (child_fetch_inferior_registers): Remove check for + regno 0. + +2009-06-19 Aleksandar Ristovski + Pedro Alves + + * target.h (struct target_ops) : New + callback. + (target_supports_multi_process): New. + * server.c (handle_query): Even if GDB reports support, only + enable multi-process if the target also supports it. Report + multi-process support only if the target backend supports it. + * linux-low.c (linux_supports_multi_process): New function. + (linux_target_ops): Install it as target_supports_multi_process + callback. + +2009-05-24 Doug Evans + + Global renaming of find_thread_pid to find_thread_ptid. + * server.h (find_thread_ptid): Renamed from find_thread_pid. + * inferiors.c (find_thread_ptid): Renamed from find_thread_pid. + All callers updated. + + * linux-low.c (handle_extended_wait): Use linux_resume_one_lwp + to resume the newly created thread, don't call ptrace (PTRACE_CONT) + directly. + + * linux-low.c (get_stop_pc): Print pc if debug_threads. + (check_removed_breakpoint, linux_wait_for_lwp): Ditto. + (linux_resume_one_lwp): Ditto. + +2009-05-23 Doug Evans + + * linux-low.c (linux_resume_one_lwp): Change type of first arg + from struct inferior_list_entry * to struct lwp_info *. + All callers updated. + +2009-05-13 Doug Evans + + * linux-x86-low.c: Don't include assert.h. + (x86_siginfo_fixup): Use fatal, not assert. + (x86_arch_setup): Fix comment. + +2009-05-12 Doug Evans + + Biarch support for i386/amd64 gdbserver. + * Makefile.in (SFILES): Remove linux-i386-low.c, linux-x86-64-low.c. + Add linux-x86-low.c. + (linux-i386-low.o, linux-x86-64-low.o): Delete. + (linux-x86-low.o): Add. + * linux-x86-64-low.c: Delete. + * linux-i386-low.c: Delete. + * linux-x86-low.c: New file. + * configure.srv (i?86-linux srv_tgtobj): Replace linux-i386-low.o with + linux-x86-low.o. + (x86_64-linux srv_tgtobj): Replace linux-x86-64-low.o with + linux-x86-low.o. + (x86_64-linux srv_regobj): Add reg-i386-linux.o. + * linux-low.c: Include ansidecl.h, elf/common.h, elf/external.h. + (linux_child_pid_to_exec_file): New function. + (elf_64_header_p, elf_64_file_p): New functions. + (siginfo_fixup): New function. + (linux_xfer_siginfo): New local inf_siginfo. Call siginfo_fixup to + give target a chance to convert layout. + * linux-low.h (linux_target_ops): New member siginfo_fixup. + (linux_child_pid_to_exec_file, elf_64_file_p): Declare. + +2009-05-07 Doug Evans + + * linux-low.c (regsets_fetch_inferior_registers): Fix memory leak. + (regsets_store_inferior_registers): Ditto. + +2009-05-06 Pedro Alves + + PR server/10048 + + * linux-low.c (must_set_ptrace_flags): Delete. + (linux_create_inferior): Set `lwp->must_set_ptrace_flags' instead + of the global. + (linux_attach_lwp_1): Don't set PTRACE_SETOPTIONS here. Set + `lwp->must_set_ptrace_flags' instead. + (linux_wait_for_event_1): Set ptrace options here. + (linux_wait_1): ... not here. + +2009-04-30 Doug Evans + + * inferiors.c (started_inferior_callback): New function. + (attached_inferior_callback): New function. + (have_started_inferiors_p, have_attached_inferiors_p): New functions. + * server.c (print_started_pid, print_attached_pid): New functions. + (detach_or_kill_for_exit): New function. + (main): Call it instead of for_each_inferior (kill_inferior_callback). + * server.h (have_started_inferiors_p): Declare. + (have_attached_inferiors_p): Declare. + + * inferiors.c (remove_process): Fix memory leak, free process. + * linux-low.c (linux_remove_process): New function. + (linux_kill): Call it instead of remove_process. + (linux_detach, linux_wait_1): Ditto. + +2009-04-19 Danny Backx + + * configure.srv: Add x86 Windows CE target. + +2009-04-03 Ulrich Weigand + + * inferiors.c (get_thread_process): Make global. + * server.h (get_thread_process): Add prototype. + * thread-db.c (find_one_thread): Use get_thread_process + instead of current_process. + (thread_db_get_tls_address): Do not crash if called when + thread layer is not yet initialized. + +2009-04-03 Ulrich Weigand + + * remote-utils.c (prepare_resume_reply): Null-terminate packet. + * spu-low.c (current_tid): Rename to ... + (current_ptid): ... this. + (fetch_ppc_register, fetch_ppc_memory, store_ppc_memory, + spu_proc_xfer_spu, spu_resume, spu_request_interrupt): Use + ptid_get_lwp (current_ptid) instead of current_tid. + (spu_kill, spu_detach, spu_join, spu_wait): Use pid argument + instead of current_tid. Use find_process_pid to verify pid + argument is valid. Pass proper argument to remove_process. + (spu_thread_alive): Compare current_ptid instead of current_tid. + (spu_resume): Likewise. + +2009-04-02 Pedro Alves + + * linux-low.c (usr_store_inferior_registers): Declare local `pid' + variable. + +2009-04-01 Pedro Alves + + Implement the multiprocess extensions, and add linux multiprocess + support. + + * server.h (ULONGEST): Declare. + (struct ptid, ptid_t): New. + (minus_one_ptid, null_ptid): Declare. + (ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp) + (ptid_get_tid, ptid_equal, ptid_is_pid): Declare. + (struct inferior_list_entry): Change `id' type from unsigned from + to ptid_t. + (struct sym_cache, struct breakpoint, struct + process_info_private): Forward declare. + (struct process_info): Declare. + (current_process): Declare. + (all_processes): Declare. + (initialize_inferiors): Declare. + (add_thread): Adjust to use ptid_t. + (thread_id_to_gdb_id, thread_to_gdb_id, gdb_id_to_thread_id): Ditto. + (add_process, remove_process, find_thread_pid): Declare. + (find_inferior_id): Adjust to use ptid_t. + (cont_thread, general_thread, step_thread): Change type to ptid_t. + (multi_process): Declare. + (push_event): Adjust to use ptid_t. + (read_ptid, write_ptid): Declare. + (prepare_resume_reply): Adjust to use ptid_t. + (clear_symbol_cache): Declare. + * inferiors.c (all_processes): New. + (null_ptid, minus_one_ptid): New. + (ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_lwp) + (ptid_get_tid, ptid_equal, ptid_is_pid): New. + (add_thread): Change unsigned long to ptid. Remove gdb_id + parameter. Adjust. + (thread_id_to_gdb_id, thread_to_gdb_id): Change unsigned long to ptid. + (gdb_id_to_thread): Rename to ... + (find_thread_pid): ... this. Change unsigned long to ptid. + (gdb_id_to_thread_id, find_inferior_id): Change unsigned long to ptid. + (loaded_dll, pull_pid_from_list): Adjust. + (add_process, remove_process, find_process_pid) + (get_thread_process, current_process, initialize_inferiors): New. + * target.h (struct thread_resume) : Change type to ptid_t. + (struct target_waitstatus) : Ditto. + (struct target_ops) : Add `pid' argument. Change + return type to int. + (struct target_ops) : Add `pid' argument. + (struct target_ops) : Change pid's type to ptid_t. + (struct target_ops) : Add `ptid' field. Change return type + to ptid. + (kill_inferior, detach_inferior, join_inferior): Add `pid' argument. + (mywait): Add `ptid' argument. Change return type to ptid_t. + (target_pid_to_str): Declare. + * target.c (set_desired_inferior): Adjust to use ptids. + (mywait): Add new `ptid' argument. Adjust. + (target_pid_to_str): New. + * mem-break.h (free_all_breakpoints): Declare. + * mem-break.c (breakpoints): Delelete. + (set_breakpoint_at, delete_breakpoint, find_breakpoint_at) + (check_mem_read, check_mem_write, delete_all_breakpoints): Adjust + to use per-process breakpoint list. + (free_all_breakpoints): New. + * remote-utils.c (struct sym_cache) : Drop `const'. + (symbol_cache, all_symbols_looked_up): Delete. + (hexchars): New. + (ishex, unpack_varlen_hex, write_ptid, hex_or_minus_one, + read_ptid): New. + (prepare_resume_reply): Change ptid argument's type from unsigned + long to ptid_t. Adjust. Implement W;process and X;process. + (free_sym_cache, clear_symbol_cache): New. + (look_up_one_symbol): Adjust to per-process symbol cache. * + * server.c (cont_thread, general_thread, step_thread): Change type + to ptid_t. + (attached): Delete. + (multi_process): New. + (last_ptid): Change type to ptid_t. + (struct vstop_notif) : Change type to ptid_t. + (queue_stop_reply, push_event): Change `ptid' argument's type to + ptid_t. + (discard_queued_stop_replies): Add `pid' argument. + (start_inferior): Adjust to use ptids. Adjust to mywait interface + changes. Don't reference the `attached' global. + (attach_inferior): Adjust to mywait interface changes. + (handle_query): Adjust to use ptids. Parse GDB's qSupported + features. Handle and report "multiprocess+". Handle + "qAttached:PID". + (handle_v_cont): Adjust to use ptids. Adjust to mywait interface + changes. + (handle_v_kill): New. + (handle_v_stopped): Adjust to use target_pid_to_str. + (handle_v_requests): Allow multiple attaches and runs when + multiprocess extensions are in effect. Handle "vKill". + (myresume): Adjust to use ptids. + (queue_stop_reply_callback): Add `arg' parameter. Handle it. + (handle_status): Adjust to discard_queued_stop_replies interface + change. + (first_thread_of, kill_inferior_callback) + (detach_or_kill_inferior_callback, join_inferiors_callback): New. + (main): Call initialize_inferiors. Adjust to use ptids, killing + and detaching from all inferiors. Handle multiprocess packet + variants. + * linux-low.h: Include gdb_proc_service.h. + (struct process_info_private): New. + (struct linux_target_ops) : Use ptid_get_pid. + : Use ptid_get_lwp. + (get_lwp_thread): Adjust. + (struct lwp_info): Add `dead' member. + (find_lwp_pid): Declare. + * linux-low.c (thread_db_active): Delete. + (new_inferior): Adjust comment. + (inferior_pid): Delete. + (linux_add_process): New. + (handle_extended_wait): Adjust. + (add_lwp): Change unsigned long to ptid. + (linux_create_inferior): Add process to processes table. Adjust + to use ptids. Don't set new_inferior here. + (linux_attach_lwp): Rename to ... + (linux_attach_lwp_1): ... this. Add `initial' argument. Handle + it. Adjust to use ptids. + (linux_attach_lwp): New. + (linux_attach): Add process to processes table. Don't set + new_inferior here. + (struct counter): New. + (second_thread_of_pid_p, last_thread_of_process_p): New. + (linux_kill_one_lwp): Add `args' parameter. Handle it. Adjust to + multiple processes. + (linux_kill): Add `pid' argument. Handle it. Adjust to multiple + processes. Remove process from process table. + (linux_detach_one_lwp): Add `args' parameter. Handle it. Adjust + to multiple processes. + (any_thread_of): New. + (linux_detach): Add `pid' argument, and handle it. Remove process + from processes table. + (linux_join): Add `pid' argument. Handle it. + (linux_thread_alive): Change unsighed long argument to ptid_t. + Consider dead lwps as not being alive. + (status_pending_p): Rename `dummy' argument to `arg'. Filter out + threads we're not interested in. + (same_lwp, find_lwp_pid): New. + (linux_wait_for_lwp): Change `pid' argument's type from int to + ptid_t. Adjust. + (linux_wait_for_event): Rename to ... + (linux_wait_for_event_1): ... this. Change `pid' argument's type + from int to ptid_t. Adjust. + (linux_wait_for_event): New. + (linux_wait_1): Add `ptid' argument. Change return type to + ptid_t. Adjust. Use last_thread_of_process_p. Remove processes + that exit from the process table. + (linux_wait): Add `ptid' argument. Change return type to ptid_t. + Adjust. + (mark_lwp_dead): New. + (wait_for_sigstop): Adjust to use ptids. If a process exits while + stopping all threads, mark its main lwp as dead. + (linux_set_resume_request, linux_resume_one_thread): Adjust to use + ptids. + (fetch_register, usr_store_inferior_registers) + (regsets_fetch_inferior_registers) + (regsets_store_inferior_registers, linux_read_memory) + (linux_write_memory): Inline `inferior_pid'. + (linux_look_up_symbols): Adjust to use per-process + `thread_db_active'. + (linux_request_interrupt): Adjust to use ptids. + (linux_read_auxv): Inline `inferior_pid'. + (initialize_low): Don't reference thread_db_active. + * gdb_proc_service.h (struct ps_prochandle) : Remove. + * proc-service.c (ps_lgetregs): Use find_lwp_pid. + (ps_getpid): Return the pid of the current inferior. + * thread-db.c (proc_handle, thread_agent): Delete. + (thread_db_create_event, thread_db_enable_reporting): Adjust to + per-process data. + (find_one_thread): Change argument type to ptid_t. Adjust to + per-process data. + (maybe_attach_thread): Adjust to per-process data and ptids. + (thread_db_find_new_threads): Ditto. + (thread_db_init): Ditto. + * spu-low.c (spu_create_inferior, spu_attach): Add process to + processes table. Adjust to use ptids. + (spu_kill, spu_detach): Adjust interface. Remove process from + processes table. + (spu_join, spu_thread_alive): Adjust interface. + (spu_wait): Adjust interface. Remove process from processes + table. Adjust to use ptids. + * win32-low.c (current_inferior_tid): Delete. + (current_inferior_ptid): New. + (debug_event_ptid): New. + (thread_rec): Take a ptid. Adjust. + (child_add_thread): Add `pid' argument. Adjust to use ptids. + (child_delete_thread): Ditto. + (do_initial_child_stuff): Add `attached' argument. Add process to + processes table. + (child_fetch_inferior_registers, child_store_inferior_registers): + Adjust. + (win32_create_inferior): Pass 0 to do_initial_child_stuff. + (win32_attach): Pass 1 to do_initial_child_stuff. + (win32_kill): Adjust interface. Remove process from processes + table. + (win32_detach): Ditto. + (win32_join): Adjust interface. + (win32_thread_alive): Take a ptid. + (win32_resume): Adjust to use ptids. + (get_child_debug_event): Ditto. + (win32_wait): Adjust interface. Remove exiting process from + processes table. + +2009-04-01 Pedro Alves + + Non-stop mode support. + + * server.h (non_stop): Declare. + (gdb_client_data, handler_func): Declare. + (delete_file_handler, add_file_handler, start_event_loop): + Declare. + (handle_serial_event, handle_target_event, push_event) + (putpkt_notif): Declare. + * target.h (enum resume_kind): New. + (struct thread_resume): Replace `step' field by `kind' field. + (TARGET_WNOHANG): Define. + (struct target_ops) : Add `options' argument. + : New fields. + (target_supports_non_stop, target_async): New. + (start_non_stop): Declare. + (mywait): Add `options' argument. + * target.c (mywait): Add `options' argument. Print child exit + notifications here. + (start_non_stop): New. + * server.c (non_stop, own_buf, mem_buf): New globals. + (struct vstop_notif): New. + (notif_queue): New global. + (queue_stop_reply, push_event, discard_queued_stop_replies) + (send_next_stop_reply): New. + (start_inferior): Adjust to use resume_kind. Adjust to mywait + interface changes. + (attach_inferior): In non-stop mode, don't wait for the target + here. + (handle_general_set): Handle QNonStop. + (handle_query): When handling qC, return the current general + thread, instead of the first thread of the list. + (handle_query): If the backend supports non-stop mode, include + QNonStop+ in the qSupported query response. + (handle_v_cont): Adjust to use resume_kind. Handle resume_stop + and non-stop mode. + (handle_v_attach, handle_v_run): Handle non-stop mode. + (handle_v_stopped): New. + (handle_v_requests): Report support for vCont;t. Handle vStopped. + (myresume): Adjust to use resume_kind. Handle non-stop. + (queue_stop_reply_callback): New. + (handle_status): Handle non-stop mode. + (main): Clear non_stop flag on reconnection. Use the event-loop. + Refactor serial protocol handling from here ... + (process_serial_event): ... to this new function. When GDB + selects any thread, select one here. In non-stop mode, wait until + GDB acks all pending events before exiting. + (handle_serial_event, handle_target_event): New. + * remote-utils.c (remote_open): Install remote_desc in the event + loop. + (remote_close): Remove remote_desc from the event loop. + (putpkt_binary): Rename to... + (putpkt_binary_1): ... this. Add `is_notic' argument. Handle it. + (putpkt_binary): New as wrapper around putpkt_binary_1. + (putpkt_notif): New. + (prepare_resume_reply): In non-stop mode, don't change the + general_thread. + * event-loop.c: New. + * Makefile.in (OBJ): Add event-loop.o. + (event-loop.o): New rule. + + * linux-low.h (pid_of): Moved here. + (lwpid_of): New. + (get_lwp_thread): Use lwpid_of. + (struct lwp_info): Delete `lwpid' field. Add `suspended' field. + * linux-low.c (pid_of): Delete. + (inferior_pid): Use lwpid_of. + (linux_event_pipe): New. + (target_is_async_p): New. + (delete_lwp): New. + (handle_extended_wait): Use lwpid_of. + (add_lwp): Don't set lwpid field. + (linux_attach_lwp): Adjust debug output. Use lwpid_of. + (linux_kill_one_lwp): If killing a running lwp, stop it first. + Use lwpid_of. Adjust to linux_wait_for_event interface changes. + (linux_detach_one_lwp): If detaching from a running lwp, stop it + first. Adjust to linux_wait_for_event interface changes. Use + lwpid_of. + (linux_detach): Don't delete the main lwp here. + (linux_join): Use my_waitpid. Avoid signal_pid. Use lwpid_of. + (status_pending_p): Don't consider explicitly suspended lwps. + (linux_wait_for_lwp): Take an integer pid instead of a lwp_info + pointer. Add OPTIONS argument. Change return type to int. Use + my_waitpid instead of sleeping. Handle WNOHANG. Use lwpid_of. + (linux_wait_for_event): Take an integer pid instead of a lwp_info + pointer. Add status pointer argument. Return a pid instead of a + status. Use lwpid_of. Adjust to linux_wait_for_lwp interface + changes. In non-stop mode, don't switch to a random thread. + (linux_wait): Rename to... + (linux_wait_1): ... this. Add target_options argument, and handle + it. Adjust to use resume_kind. Use lwpid_of. In non-stop mode, + don't handle the continue thread. Handle TARGET_WNOHANG. Merge + clean exit and signal exit code. Don't stop all threads in + non-stop mode. In all-stop mode, only stop all threads when + reporting a stop to GDB. Handle explicit thread stop requests. + (async_file_flush, async_file_mark): New. + (linux_wait): New. + (send_sigstop): Use lwpid_of. + (wait_for_sigstop): Use lwpid_of. Adjust to linux_wait_for_event + interface changes. In non-stop mode, don't switch to a random + thread. + (linux_resume_one_lwp): Use lwpid_of. + (linux_continue_one_thread, linux_queue_one_thread): Merge into ... + (linux_resume_one_thread): ... this. Handle resume_stop. In + non-stop mode, don't look for pending flag in all threads. + (resume_status_pending_p): Don't consider explicitly suspended + threads. + (my_waitpid): Reimplement. Emulate __WALL. + (linux_request_interrupt, linux_read_offsets, linux_xfer_siginfo): + Use lwpid_of. + (sigchld_handler, linux_supports_non_stop, linux_async) + (linux_start_non_stop): New. + (linux_target_ops): Register linux_supports_non_stop, linux_async + and linux_start_non_stop. + (initialize_low): Install SIGCHLD handler. + * thread-db.c (thread_db_create_event, find_one_thread) + (thread_db_get_tls_address): Use lwpid_of. + * win32-low.c (win32_detach): Adjust to use resume_kind. + (win32_wait): Add `options' argument. + * spu-low.c (spu_resume): Adjust to use resume_kind. + (spu_wait): Add `options' argument. + +2009-04-01 Pedro Alves + + Decouple target code from remote protocol. + + * target.h (enum target_waitkind): New. + (struct target_waitstatus): New. + (struct target_ops) : Return an unsigned long. Take a + target_waitstatus pointer instead of a char pointer. + (mywait): Likewise. + * target.c (mywait): Change prototype to return an unsigned long. + Take a target_waitstatus pointer instead of a char pointer. Adjust. + * server.h (thread_from_wait, old_thread_from_wait): Delete + declarations. + (prepare_resume_reply): Change prototype to take a + target_waitstatus. + * server.c (thread_from_wait, old_thread_from_wait): Delete. + (last_status, last_ptid): New. + (start_inferior): Remove "statusptr" argument. Adjust. Return a + pid instead of a signal. + (attach_inferior): Remove "status" and "signal" parameters. + Adjust. + (handle_query): For qGetTLSAddr, parse the thread id with strtol, + not as an address. + (handle_v_cont, handle_v_attach, handle_v_run, handle_v_kill) + (handle_v_requests, myresume): Remove "status" and "signal" + parameters. Adjust. + (handle_status): New. + (main): Delete local `status'. Adjust. + * remote-utils.c: Include target.h. + (prepare_resume_reply): Change prototype to take a + target_waitstatus. Adjust. + + * linux-low.c (linux_wait): Adjust to new target_ops->wait + interface. + * spu-low.c (spu_wait): Adjust. + * win32-low.c (enum target_waitkind, struct target_waitstatus): + Delete. + (win32_wait): Adjust. + +2009-04-01 Pedro Alves + + * target.h (struct thread_resume): Delete leave_stopped member. + (struct target_ops): Add a `n' argument to the `resume' callback. + * server.c (start_inferior): Adjust. + (handle_v_cont, myresume): Adjust. + * linux-low.c (check_removed_breakpoint): Adjust to resume + interface change, and to removed leave_stopped field. + (resume_ptr): Delete. + (struct thread_resume_array): New. + (linux_set_resume_request): Add new `arg' parameter. Adjust to + resume interface change. + (linux_continue_one_thread, linux_queue_one_thread) + (resume_status_pending_p): Check if the resume field is NULL + instead of checking the leave_stopped member. + (linux_resume): Adjust to the target resume interface change. + * spu-low.c (spu_resume): Adjust to the target resume interface + change. + * win32-low.c (win32_detach, win32_resume): Ditto. + 2009-04-01 Pedro Alves * linux-low.c (linux_wait_for_event): Don't clear the `stepping'