2007-08-01 Michael Snyder * remote-utils.c (putpkt_binary): Memory leak, free buf2. 2007-07-31 Pedro Alves * win32-low.c (winapi_CloseToolhelp32Snapshot) [_WIN32_WCE]: New typedef. (win32_CloseToolhelp32Snapshot) [_WIN32_WCE]: New global var. (load_toolhelp) [_WIN32_WCE]: Load TOOLHELP.DLL. Get CloseToolhelp32Snapshot. (toolhelp_get_dll_name) [_WIN32_WCE]: Close the snapshot with CloseToolhelp32Snapshot. 2007-07-27 Michael Snyder * server.c (main): Check for inferior exit before main loop. 2007-07-18 Pedro Alves * remote-utils.c (remote_open): Set SO_KEEPALIVE on remote_desc instead of on tmp_desc. 2007-07-17 Pedro Alves Daniel Jacobowitz * inferiors.c (all_dlls, dlls_changed, get_dll): New. (add_thread): Minor cleanups. (clear_inferiors): Move lower in the file. Clear the DLL list. (free_one_dll, match_dll, loaded_dll, unloaded_dll, clear_list): New. * remote-utils.c (prepare_resume_reply): Check dlls_changed. (xml_escape_text): New. * server.c (handle_query): Handle qXfer:libraries:read. Report it for qSupported. (handle_v_cont): Report errors. (gdbserver_version): Update. (main): Correct size of own_buf. Do not report initial DLL events. * server.h (struct dll_info, all_dlls, dlls_changed, loaded_dll) (unloaded_dll, xml_escape_text): New. * win32-low.c (enum target_waitkind): Update comments. (win32_add_one_solib, get_image_name, winapi_EnumProcessModules) (winapi_GetModuleInformation, winapi_GetModuleFileNameExA) (win32_EnumProcessModules, win32_GetModuleInformation) (win32_GetModuleFileNameExA, load_psapi, psapi_get_dll_name) (winapi_CreateToolhelp32Snapshot, winapi_Module32First) (winapi_Module32Next, win32_CreateToolhelp32Snapshot) (win32_Module32First, win32_Module32Next, load_toolhelp) (toolhelp_get_dll_name, handle_load_dll, handle_unload_dll): New. (get_child_debug_event): Handle DLL events. (win32_wait): Likewise. 2007-07-12 Daniel Jacobowitz * configure.srv: Set srv_linux_regsets for sh*-*-linux*. * linux-sh-low.c (sh_fill_gregset, target_regsets): New. 2007-07-08 Pedro Alves * win32-low.c (handle_output_debug_string): Ignore event if not waiting. 2007-07-08 Pedro Alves * win32-arm-low.c (arm_wince_breakpoint): Fix typo. 2007-07-03 Daniel Jacobowitz * remote-utils.c (look_up_one_symbol): Handle 'm' packets. 2007-07-02 Daniel Jacobowitz * inferiors.c (change_inferior_id): Add comment. * linux-low.c (check_removed_breakpoint): Add an early prototype. Improve debug output. (linux_attach): Doc update. (linux_detach_one_process, linux_detach): Clean up before releasing each process. (send_sigstop, wait_for_sigstop): Improve comments and debug output. * linux-low.h (struct process_info): Doc improvement. * mem-break.c (delete_all_breakpoints): New. * mem-break.h (delete_all_breakpoints): New prototype. * thread-db.c (find_first_thread): New. (thread_db_create_event): Call it instead of thread_db_find_new_threads. Clean up unused variables. (maybe_attach_thread): Remove first thread handling. (thread_db_find_new_threads): Use find_first_thread. (thread_db_get_tls_address): Likewise. 2007-06-27 Daniel Jacobowitz * thread-db.c (thread_db_find_new_threads): Add prototype. (thread_db_create_event): Check for the main thread before adding a new thread. (maybe_attach_thread): Only enable event reporting if TID == 0. (thread_db_get_tls_address): Check for new threads. 2007-06-20 Daniel Jacobowitz * linux-low.c (linux_create_inferior): Try execv before execvp. * spu-low.c (spu_create_inferior): Likewise. 2007-06-13 Mike Frysinger * linux-low.c (linux_create_inferior): Change execv to execvp. * spu-low.c (spu_create_inferior): Likewies. 2007-06-13 Daniel Jacobowitz * Makefile.in (clean): Clean new files instead of deleted ones. (reg-mips.o, reg-mips.c, reg-mips64.o, reg-mips64.c): Delete. (mips-linux.o, mips-linux.c, mips64-linux.o, mips64-linux.c): New rules. * configure.srv: Specify XML files and new regformats for MIPS and MIPS64 GNU/Linux. * linux-mips-low.c (mips_num_regs): Set to only used registers. (mips_regmap): Do not fetch $0. Remove unused registers. Add an entry for the restart register. (mips_cannot_fetch_register, mips_cannot_store_register) (mips_reinsert_addr, mips_fill_fpregset, mips_store_fpregset): Update register names to match the XML descriptions. (mips_fill_gregset, mips_store_gregset): Likewise. Handle the restart register instead of $0. 2007-06-12 Ulrich Weigand Markus Deuling * remote-utils.c (decode_xfer_write): New function. * server.h (decode_xfer_write): Add prototype. * server.c (handle_query): Add PACKET_LEN argument. Support qXfer:spu:read and qXfer:spu:write packets. (main): Pass packet_len to handle_query. * spu-low.c (spu_target_ops): Add spu_proc_xfer_spu. * target.h (target_ops): Add qxfer_spu. 2007-06-12 Ulrich Weigand * spu-low.c (spu_proc_xfer_spu): Do not return failure when accessing non-seekable spufs files. 2007-05-16 Markus Deuling * server.c (handle_query): Add reply for qC packet. 2007-05-10 Pedro Alves Leo Zayas * server.h (check_remote_input_interrupt_request): New function. * remote_utils.c (INVALID_DESCRIPTOR): New define. (remote_desc): Initialize with INVALID_DESCRIPTOR. (input_interrupt): Expose on USE_WIN32API too. Fix whitespace. (check_remote_input_interrupt_request): New function. * server.h (check_remote_input_interrupt_request): Declare. * win32-low.c (winapi_DebugBreakProcess, winapi_GenerateConsoleCtrlEvent): New typedefs. (get_child_debug_event): Lower Win32 debug event polling from 1 sec to 250 ms. (win32_wait): Check for remote interrupt request with check_remote_input_interrupt_request. (win32_request_interrupt): New function. (win32_target_op): Set request_interrupt to win32_request_interrupt. 2007-05-10 Pedro Alves * win32-low.c (debug_registers_changed, debug_registers_used, CONTEXT_EXTENDED_REGISTERS, CONTEXT_FLOATING_POINT, CONTEXT_DEBUG_REGISTERS, CONTEXT_DEBUGGER, CONTEXT_DEBUGGER_DR): Delete. (thread_rec): Get context using the low target. (child_add_thread): Call thread_added on the low target, which does the same thing. (regptr): Delete. (do_initial_child_stuff): Remove debug registers references. Set context using the low target. Resume threads after setting the contexts. (child_continue): Remove dead variable. Remove debug registers references. (child_fetch_inferior_registers): Go through the low target. (do_child_store_inferior_registers): Remove. (child_store_inferior_registers): Go through the low target. (win32_resume): Remove debug registers references. Set context using the low target. (handle_exception): Change return type to void. Don't record context here. Set status to TARGET_WAITKIND_SPURIOUS on a first chance exception. (get_child_debug_event): Change return type to void. Remove goto loop. Always return after waiting for debug event. (win32_wait): Convert to switch statement. Handle spurious events. * win32-i386-low.c (debug_registers_changed, debug_registers_used): New. (initial_stuff): Rename to ... (i386_initial_stuff): ... this. Clear debug registers state variables. (store_debug_registers): Delete. (i386_get_thread_context): New. (load_debug_registers): Delete. (i386_set_thread_context): New. (i386_thread_added): New. (single_step): Rename to ... (i386_single_step): ... this. (do_fetch_inferior_registers): Rename to ... (i386_fetch_inferior_register): ... this. (i386_store_inferior_register): New. (the_low_target): Adapt to new interface. * win32-arm-low.c (CONTEXT_FLOATING_POINT): Define. (arm_get_thread_context): New. (arm_set_thread_context): New. (regptr): New. (do_fetch_inferior_registers): Rename to ... (arm_fetch_inferior_register): ... this. (arm_store_inferior_register): New. (arm_wince_breakpoint): Reimplement as unsigned long. (arm_wince_breakpoint_len): Define. (the_low_target): Adapt to new interface. * win32-low.h (target_ops): Remove regmap, store_debug_registers and load_debug_registers. Add get_thread_context, set_thread_context, thread_added and store_inferior_register. Rename fetch_inferior_registers to fetch_inferior_register. (regptr): Remove declaration. 2007-05-10 Pedro Alves * linux-low.c (linux_detach): Change return type to int. Return 0. * spu-low.c (spu_detach): Likewise. 2007-05-10 Pedro Alves * target.h (target_ops): Change return type of detach to int. Add join. (join_inferior): New. * server.c (main): Don't skip detach support on mingw32. If the inferior doesn't support detaching return error. Call join_inferior instead of using waitpid. * linux-low.c (linux_join): New. (linux_target_op): Add linux_join. * spu-low.c (spu_join): New. (spu_target_ops): Add spu_join. * win32-low.c (win32_detach): Adapt to new interface. Reopen current_process_handle before detaching. Issue a child resume before detaching. (win32_join): New. (win32_target_op): Add win32_join. 2007-05-10 Pedro Alves * win32-low.c (win32-attach): Fix return value. * target.h (target_ops): Describe ATTACH return values. 2007-05-10 Pedro Alves * win32-low.c (GETPROCADDRESS): Define. (winapi_DebugActiveProcessStop): Add WINAPI. typedef as pointer. (winapi_DebugSetProcessKillOnExit): Likewise. (win32_create_inferior): Force usage of ansi CreateProcessA. (win32_attach): Use GETPROCADDRESS. (win32_detach): Likewise. 2007-05-10 Pedro Alves * win32-low.c (win32_wait): Don't use WSTOPSIG. 2007-03-30 Pedro Alves * win32-low.c: Commit leftover changes from 2007-03-29. 2007-03-30 Daniel Jacobowitz * i387-fp.c (struct i387_fsave, struct i387_fxsave): Make 16-bit fields short instead of int. Add explicit padding. (i387_cache_to_fsave): Remove unnecessary casts. (i387_fsave_to_cache): Doc fix. (i387_cache_to_fxsave): Remove unnecessary casts and masking. 2007-03-30 Daniel Jacobowitz * i387-fp.c (i387_cache_to_fxsave): Reinitialize val2 before use. (i387_fxsave_to_cache): Check fp->ftag while building ftag value. 2007-03-29 Pedro Alves * configure.srv (arm*-*-mingw32ce*): Move near the other arm targets. 2007-03-29 Pedro Alves * configure.ac: Add errno checking. (AC_CHECK_HEADERS): Add errno.h, fcntl.h, signal.h, sys/file.h and malloc.h. (AC_CHECK_DECLS): Add perror. (srv_mingwce): Handle. * configure.srv (i[34567]86-*-cygwin*): Add win32-i386-low.o to srv_tgtobj. (i[34567]86-*-mingw*): Likewise. (arm*-*-mingw32ce*): Add case. * gdbreplay.c [HAVE_SYS_FILE_H, HAVE_SIGNAL_H, HAVE_FCNTL_H, HAVE_ERRNO_H, HAVE_MALLOC_H]: Check. [__MINGW32CE__] (strerror): New function. [__MINGW32CE__] (errno): Define to GetLastError. [__MINGW32CE__] (COUNTOF): New macro. (remote_open): Remove extra close call. * mem-break.c (delete_breakpoint_at): New function. * mem-break.h (delete_breakpoint_at): Declare. * remote-utils.c [HAVE_SYS_FILE_H, HAVE_SIGNAL_H, HAVE_FCNTL_H, HAVE_UNISTD_H, HAVE_ERRNO_H]: Check. [USE_WIN32API] (read, write): Add char* casts. * server.c [HAVE_UNISTD_H, HAVE_SIGNAL_H]: Check. * server.h: Include wincecompat.h on Windows CE. [HAVE_ERRNO_H]: Check. (perror): Declare if not declared. * utils.c: Add stdlib.h, errno.h and malloc.h includes. (perror_with_name): Remove errno declaration. * wincecompat.h: New. * wincecompat.c: New. * win32-low.h: New. * win32-arm-low.c: New. * win32-i386-low.c: New. (win32-low.c): Include mem-break.h and win32-low.h, and winnt.h. (OUTMSG2): Make it safe. (_T): New macro. (COUNTOF): New macro. (NUM_REGS): Get it from the low target. (CONTEXT_EXTENDED_REGISTERS, CONTEXT_FLOATING_POINT, CONTEXT_DEBUG_REGISTERS): Add fallbacks to 0. (thread_rec): Let low target handle debug registers. (child_add_thread): Likewise. (child_init_thread_list): Likewise. (continue_one_thread): Likewise. (regptr): New. (do_child_fetch_inferior_registers): Move to ... * win32-i386-low.c: ... here, and rename to ... (do_fetch_inferior_registers): ... this. * win32-low.c (child_fetch_inferior_registers): Go through the low target. (do_child_store_inferior_registers): Use regptr. (strwinerror): New function. (win32_create_inferior): Handle Windows CE. Use strwinerror instead of strerror on Windows error codes. Add program to the error output. Don't close the main thread handle on Windows CE. (win32_attach): Use coredll.dll on Windows CE. (win32_kill): Close current process and current thread handles. (win32_detach): Use coredll.dll on Windows CE. (win32_resume): Let low target handle debug registers, and step request. (handle_exception): Add/Remove initial breakpoint. Avoid non-existant WSTOPSIG on Windows CE. (win32_read_inferior_memory): Cast to remove warning. (win32_arch_string): Go through the low target. (initialize_low): Call set_breakpoint_data with the low target's breakpoint. * win32-low.c (dr, FLAG_TRACE_BIT, FCS_REGNUM, FOP_REGNUM, mappings): Move to ... * win32-i386-low.c: ... here. * win32-low.c (win32_thread_info): Move to ... * win32-low.h: ... here. * Makefile.in (SFILES): Add win32-low.c, win32-i386-low.c, win32-arm-low.c and wincecompat.c. (all:): Add $EXEEXT. (install-only:): Likewise. (gdbserver:): Likewise. (gdbreplay:): Likewise. * config.in: Regenerate. * configure: Regenerate. 2007-03-28 Pedro Alves * win32-low.c: Rename typedef thread_info to win32_thread_info throughout. 2007-03-28 Pedro Alves * win32-i386-low.c: Rename to ... * win32-low.c: ... this. * configure.srv: Replace win32-i386-low.o with win32-low.o. * Makefile.in: Likewise. 2007-03-27 Pedro Alves * remote-utils.c (monitor_output): Constify msg parameter. * server.h (monitor_output): Likewise. * win32-i386-low.c (handle_output_debug_string): New. (win32_kill): Handle OUTPUT_DEBUG_STRING_EVENT events using handle_output_debug_string. (get_child_debug_event): Likewise. 2007-03-27 Mat Hostetter * server.c (main): Correct strtoul check. 2007-03-27 Jon Ringle * linux-low.c: Check __ARCH_HAS_MMU__ also. 2007-03-27 Brooks Moses * Makefile.in: Add dummy "pdf" and "install-pdf" targets. 2007-02-27 Daniel Jacobowitz * terminal.h: Check HAVE_SGTTY_H. 2007-02-27 Mat Hostetter * remote-utils.c (remote_open): Print out the assigned port number. 2007-02-26 Daniel Jacobowitz * remote-utils.c (monitor_output): New function. * server.c (debug_threads): Define here. (monitor_show_help): New function. (handle_query): Handle qRcmd. (main): Do not handle 'd' packet. * server.h (debug_threads, remote_debug, monitor_output): Declare. * linux-low.c, spu-low.c, win32-i386-low.c: Remove definitions of debug_threads. 2007-02-25 Pedro Alves * Makefile.in (EXEEXT): New. (clean): Use $(EXEEXT). 2007-02-25 Pedro Alves * target.h (target_ops): Rename send_signal to request_interrupt, and remove enum target_signal parameter. * linux-low.c (linux_request_interrupt): Rename from linux_send_signal, and always send SIGINT. * spu-low.c (spu_request_interrupt): Rename from spu_send_signal, and always send SIGINT. * remote-utils.c (putpkt_binary): Call request_interrupt, instead of send_signal. (input_interrupt): Likewise. 2007-02-25 Pedro Alves * server.c (get_features_xml): Check if target implemented arch_string. * win32-i386-low.c (win32_arch_string): New. (win32_target_ops): Add win32_arch_string as arch_string member. 2007-02-22 Markus Deuling * spu-low.c (spu_arch_string): New. (spu_target_ops): Add spu_arch_string. 2007-02-16 Daniel Jacobowitz * remote-utils.c: Remove HAVE_TERMINAL_H check. * configure.ac: Do not check for terminal.h. * configure, config.in: Regenerated. 2007-02-08 Daniel Jacobowitz * Makefile.in (OBS): Add $(XML_BUILTIN). (XML_DIR, XML_TARGET, XML_FILES, XML_BUILTIN): New. (clean): Update. (target.xml, xml-builtin.c, stamp-xml, arm-with-iwmmxt.o) (arm-with-iwmmxt.c): New. * config.in, configure: Regenerate. * configure.ac: Check for iWMMXt. Handle srv_xmltarget, srv_xmlbuiltin, and srv_xmlfiles. Define USE_XML. * configure.srv: Mention srv_xmltarget and srv_xmlfiles. (arm*-*-linux*): Add iWMMXt and regset support. * linux-arm-low.c (PTRACE_GETWMMXREGS, PTRACE_SETWMMXREGS): Define. (arm_fill_gregset, arm_store_gregset, arm_fill_wmmxregset) (arm_store_wmmxregset, target_regsets): New. * server.c (get_features_xml): Take annex argument. Check builtin XML documents. (handle_query): Handle multiple annexes. 2007-01-29 Daniel Jacobowitz * remote-utils.c [USE_WIN32API] (read, write): Define. (putpkt_binary, input_interrupt, readchar, getpkt): Use read and write. 2007-01-09 Daniel Jacobowitz * linux-i386-low.c (the_low_target): Set arch_string. * linux-x86-64-low.c (the_low_target): Likewise. * linux-low.c (linux_arch_string): New. (linux_target_ops): Add it. * linux-low.h (struct linux_target_ops): Add arch_string. * server.c (write_qxfer_response): Use const void * for DATA. (get_features_xml): New. (handle_query): Handle qXfer:features:read. Report it for qSupported. * target.h (struct target_ops): Add arch_string method. 2007-01-03 Denis Pilat Daniel Jacobowitz * linux-low.c (linux_kill): Handle being called with no threads. * win32-i386-low.c (win32_kill): Likewise. (get_child_debug_event): Clear current_process_handle. 2006-12-30 Denis PILAT Daniel Jacobowitz * remote-utils.c (remote_open): Check the type of specified serial port devices before opening them. * server.c (main): Kill the inferior if an error occurs during the first remote_open. 2006-12-05 Markus Deuling * README: Update supported targets. 2006-11-28 Daniel Jacobowitz * Makefile.in (clean): Remove reg-mips64.c. (reg-mips64.c, reg-mips64.o): New rules. * configure.srv: Handle mips64. Include regset support for mips. * linux-mips-low.c (union mips_register): New. (mips_get_pc, mips_set_pc, mips_reinsert_addr): Use it. (mips_breakpoint, mips_breakpoint_at): Use int. (mips_collect_register, mips_supply_register) (mips_collect_register_32bit, mips_supply_register_32bit) (mips_fill_gregset, mips_store_gregset, mips_fill_fpregset) (mips_store_fpregset, target_regsets): New. * thread-db.c (thread_db_get_tls_address): Use uintptr_t. 2006-11-22 Ulrich Weigand * configure.srv: Add target "spu*-*-*". * Makefile.in (clean): Remove reg-spu.c. (reg-spu.c, reg-spu.o, spu-low.o): Add dependencies. * spu-low.c: New file. 2006-11-16 Daniel Jacobowitz * configure.ac: Correct td_thr_tls_get_addr test. * configure: Regenerated. 2006-11-16 Daniel Jacobowitz * linux-low.c (linux_wait_for_event): Reformat. Use the pass_signals array. * remote-utils.c (decode_address_to_semicolon): New. * server.c (pass_signals, handle_general_set): New. (handle_query): Mention QPassSignals for qSupported. (main): Call handle_general_set. * server.h (pass_signals, decode_address_to_semicolon): New. 2006-11-06 Daniel Jacobowitz * server.c (handle_query): Correct error handling for read_auxv. 2005-10-19 Ulrich Weigand * configure.srv [s390-*-linux*, s390x-*-linux*]: Set srv_linux_regsets and srv_linux_thread_db to yes. * linux-s390-low.c (s390_fill_gregset): New function. (target_regsets): Define data structure. 2006-10-17 Daniel Jacobowitz * acinclude.m4 (SRV_CHECK_TLS_GET_ADDR): New. * configure.ac: Use it. Define HAVE_TD_THR_TLS_GET_ADDR. * config.in, configure: Regenerated. * inferiors.c (gdb_id_to_thread): New function. (gdb_id_to_thread_id): Use it. * linux-low.c (linux_target_ops): Use thread_db_get_tls_address. * linux-low.h (struct process_info): Add th member. (thread_db_get_tls_address): New prototype. * remote-utils.c (decode_address): Make non-static. * server.c (handle_query): Handle qGetTLSAddr. * server.h (gdb_id_to_thread, decode_address): New prototypes. * target.h (struct target_ops): Add get_tls_address. * thread-db.c (maybe_attach_thread): Save the thread handle. (thread_db_get_tls_address): New. 2006-09-28 Daniel Jacobowitz * linux-low.c (PTRACE_GETSIGINFO, PTRACE_SETSIGINFO): Define. (linux_resume_one_process): Take a siginfo_t *. Update all callers. Queue it if necessary. Use PTRACE_SETSIGINFO. (struct pending_signals): Add a siginfo_t. (linux_wait_for_process): Always set last_status. (linux_wait_for_event): Use PTRACE_GETSIGINFO. (linux_queue_one_thread): Use PTRACE_GETSIGINFO. * linux-low.h (struct process_info): Add last_status. 2006-09-21 Daniel Jacobowitz * remote-utils.c (try_rle): New function. (putpkt_binary): Use it. 2006-08-19 Daniel Jacobowitz * Makefile.in (clean): Clean reg-x86-64-linux.c. (reg-x86-64-linux.o, reg-x86-64-linux.c): New. * configure.srv (x86_64-*-linux*): Use reg-x86-64-linux.o. * linux-x86-64-low.c (x86_64_regmap): Include ORIG_RAX. (x86_64_fill_gregset, x86_64_store_gregset): Skip floating point registers. 2006-08-08 Richard Sandiford * server.c (terminal_fd): New variable. (old_foreground_pgrp): Likewise. (restore_old_foreground_pgrp): New function. (start_inferior): Record the terminal file descriptor in terminal_fd and its original foreground group in old_foreground_pgrp. Register restore_old_foreground_pgrp with atexit(). 2006-07-26 Daniel Jacobowitz * server.c (handle_query): Correct qPart to qXfer. 2006-07-22 Daniel Jacobowitz * configure.ac: Check for more headers which are missing on Windows. Automatically supply -lwsock32 and USE_WIN32API. * configure.srv: Add Cygwin and mingw32. * remote-utils.c: Don't include headers unconditionally which are missing on mingw32. Include for mingw32. (remote_open): Adjust for mingw32 support. Flush standard error after writing to it. (remote_close, putpkt_binary, input_interrupt, block_async_io) (unblock_async_io, enable_async_io, disable_async_io) (readchar, getpkt): Update for Winsock support. (prepare_resume_reply): Expect a protocol signal number. * server.c: Disable on mingw32. (start_inferior): Adjust for mingw32 support. Flush standard error after writing to it. (attach_inferior): Likewise. Use protocol signal numbers. (main): Skip 'D' packet on mingw32. Use protocol signal numbers and names. * win32-i386-low.c: New file. * Makefile.in (XM_CLIBS): Set. (gdbserver, gdbreplay): Use $(INTERNAL_CFLAGS). (win32-i386-low.o): New dependency rule. * linux-low.c (linux_wait): Use target signal numbers. * target.h (struct target_ops): Doc fix. * server.h (target_signal_to_name): New prototype. * gdbreplay.c: Don't include headers unconditionally which are missing on mingw32. Include for mingw32. (remote_close, remote_open): Adjust for Winsock support. * configure, config.in: Regenerated. 2006-07-12 Daniel Jacobowitz * server.c (decode_xfer_read, write_qxfer_response): New. (handle_query): Take a packet length argument. Handle qXfer:auxv:read instead of qPart:auxv:read. Mention it in the qSupported response. (main): Update call to handle_query. 2006-06-22 Daniel Jacobowitz * remote-utils.c (remote_escape_output, remote_unescape_input): New. (putpkt_binary): Renamed from putpkt and adjusted for binary data. (putpkt): New wrapper for putpkt_binary. (readchar): Don't mask off the high bit. (decode_X_packet): New function. * server.c (main): Call putpkt_binary if a handler sets the packet length. Save the length of the incoming packet. Handle 'X'. * server.h (gdb_byte, remote_escape_output, decode_X_packet): New. 2006-06-21 Daniel Jacobowitz * server.c (handle_query): Handle qSupported. 2006-05-30 Daniel Jacobowitz * remote-utils.c (all_symbols_looked_up): New variable. (look_up_one_symbol): Check it. * server.h (look_up_one_symbol): New declaration. * thread-db.c (thread_db_init): Set all_symbols_looked_up. 2006-05-30 Daniel Jacobowitz * Makefile.in (linux-arm-low.o): Update dependencies. * linux-arm-low.c: Include "gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. 2006-05-09 Nathan Sidwell * configure.srv (m68k*-*-uclinux*): New target. * linux-low.c (linux_create_inferior): Use vfork on mmuless systems. (linux_resume_one_process): Remove extraneous cast. (linux_read_offsets): New. (linux_target_op): Add linux_read_offsets on mmuless systems. * server.c (handle_query): Add qOffsets logic. * target.h (struct target_ops): Add read_offsets. 2006-03-15 Daniel Jacobowitz * linux-mips-low.c: Include and "gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. * Makefile.in (linux-i386-low.o, linux-mips-low.o) (linux-x86-64-low.o): Update. 2006-03-15 Daniel Jacobowitz * configure.ac: Remove checks for prfpregset_t. * gdb_proc_service.h: New file. * linux-i386-low.c, linux-x86-64-low.c, thread-db.c: Use the new "gdb_proc_service.h". * proc-service.c: Likewise. (ps_pglobal_lookup, ps_pdread, ps_pdwrite): Use psaddr_t. (ps_lgetfpregs, ps_lsetfpregs): Use a void* argument. * Makefile.in (gdb_proc_service_h): Updated. * configure, config.in: Regenerated. 2006-03-03 Daniel Jacobowitz * remote-utils.c (prepare_resume_reply): Move declaration of gdb_id_from_wait to the top of the block. 2006-02-15 Daniel Jacobowitz * linux-low.c (regsets_store_inferior_registers): Read the regset from the target before filling it. 2006-02-08 Daniel Jacobowitz * server.c (attach_inferior): Return SIGTRAP for a successful attach. 2006-02-01 Daniel Jacobowitz * Makefile.in (OBS): Add version.o. (STAGESTUFF): Delete. (version.o): Add dependencies. (version.c): Replace rule. (clean): Remove version.c. * server.c (gdbserver_version): New. (gdbserver_usage): Use printf. (main): Handle --version and --help. * server.h (version, host_name): Add declarations. 2005-12-23 Eli Zaretskii * linux-arm-low.c: * linux-arm-low.c: * inferiors.c: * i387-fp.h: * i387-fp.c: * gdbreplay.c: * regcache.c: * proc-service.c: * mem-break.h: * mem-break.c: * linux-x86-64-low.c: * linux-sh-low.c: * linux-s390-low.c: * linux-ppc64-low.c: * linux-ppc-low.c: * linux-mips-low.c: * linux-m68k-low.c: * linux-m32r-low.c: * linux-low.h: * linux-low.c: * linux-ia64-low.c: * linux-i386-low.c: * linux-crisv32-low.c: * thread-db.c: * terminal.h: * target.h: * target.c: * server.h: * server.c: * remote-utils.c: * regcache.h: * utils.c: * Makefile.in: * configure.ac: * gdbserver.1: Add (C) after Copyright. Update the FSF address. 2005-11-13 Daniel Jacobowitz * linux-arm-low.c (arm_eabi_breakpoint): New variable. (arm_breakpoint_at): Recognize both breakpoints. (the_low_target): Use the correct breakpoint instruction. 2005-11-02 Daniel Jacobowitz * configure.srv (x86_64-*-linux*): Turn on thread_db support. * linux-x86-64-low.c (x86_64_breakpoint, x86_64_breakpoint_len) (x86_64_get_pc, x86_64_set_pc, x86_64_breakpoint_at): New. (the_low_target): Update. 2005-10-25 Andreas Schwab * server.c (main): Allocate mem_buf with PBUFSIZ bytes. * linux-ia64-low.c (ia64_regmap): Remove NAT registers. (ia64_num_regs): Reduce to 462. 2005-09-17 Daniel Jacobowitz * acinclude.m4: Correct quoting. * aclocal.m4: Regenerated. Suggested by SZOKOVACS Robert : * thread-db.c (thread_db_err_str): Handle TD_VERSION. (thread_db_init): Call thread_db_err_str. * configure.ac: Check for TD_VERSION. * config.in, configure: Regenerated. 2005-07-31 Kaveh R. Ghazi * server.h (error, fatal, warning): Add ATTR_FORMAT. 2005-07-13 Daniel Jacobowitz * configure.ac: Define HAVE_LINUX_REGSETS even if PTRACE_GETREGS is not available. Define HAVE_PTRACE_GETREGS if it is. * config.in, configure: Regenerated. * configure.srv: Set srv_linux_regsets for PowerPC and PowerPC64. * linux-i386-low.c, linux-m68k-low.c: Update to use HAVE_PTRACE_GETREGS. * linux-low.c (regsets_fetch_inferior_registers) (regsets_store_inferior_registers): Only return 0 if we processed GENERAL_REGS. * linux-ppc-low.c (ppc_fill_gregset, target_regsets): New. * linux-ppc64-low.c (ppc_fill_gregset, target_regsets): New. 2005-07-13 Daniel Jacobowitz * inferiors.c (struct thread_info): Add gdb_id. (add_thread): Add gdb_id argument. (thread_id_to_gdb_id, thread_to_gdb_id, gdb_id_to_thread_id): New. * linux-low.c (linux_create_inferior, linux_attach_lwp): Update calls to add_thread. * remote-utils.c (prepare_resume_reply: Use thread_to_gdb_id. * server.c (handle_query): Use thread_to_gdb_id. (handle_v_cont, main): Use gdb_id_to_thread_id. * server.h (add_thread): Update prototype. (thread_id_to_gdb_id, thread_to_gdb_id, gdb_id_to_thread_id): New prototypes. 2005-07-13 Daniel Jacobowitz * linux-low.c (fetch_register, usr_store_inferior_registers): Handle left-padded registers. * linux-low.h (struct linux_target_ops): Add left_pad_xfer. * linux-ppc64-low.c (the_low_target): Set left_pad_xfer. 2005-07-01 Steve Ellcey * configure.ac (BFD_NEED_DECLARATION): Replace with AC_CHECK_DECLS. * configure: Regenerate. * config.in: Regenerate. * server.h (NEED_DECLARATION_STRERROR): Replace with !HAVE_DECL_STRERROR. 2005-06-16 Daniel Jacobowitz * linux-low.c (linux_wait, linux_send_signal): Don't test an unsigned long variable for > 0 if it could be MAX_ULONG. * server.c (myresume): Likewise. * target.c (set_desired_inferior): Likewise. 2005-06-13 Mark Kettenis * configure.ac: Simplify and improve check for socklen_t. * configure, config.in: Regenerate. 2005-06-12 Daniel Jacobowitz * acconfig.h: Remove. * configure.ac: Add a test for socklen_t. Use three-argument AC_DEFINE throughout. * config.in: Regenerated using autoheader 2.59. * configure: Regenerated. * gdbreplay.c (socklen_t): Provide a default. (remote_open): Use socklen_t. * remote-utils.c (socklen_t): Provide a default. (remote_open): Use socklen_t. (convert_int_to_ascii, convert_ascii_to_int, decode_M_packet): Use unsigned char. * i387-fp.c (struct i387_fsave, struct i387_fxsave): Use unsigned char for buffers. * linux-low.c (linux_read_memory, linux_write_memory) (linux_read_auxv): Likewise. * mem-break.c (breakpoint_data, set_breakpoint_data, check_mem_read) (check_mem_write): Likewise. * mem-break.h (set_breakpoint_data, check_mem_read, check_mem_write): Likewise. * regcache.c (struct inferior_rgcache_data, registers_to_string) (registers_from_string, register_data): Likewise. * server.c (handle_query, main): Likewise. * server.h (convert_ascii_to_int, convert_int_to_ascii) (decode_M_packet): Likewise. * target.c (read_inferior_memory, write_inferior_memory): Likewise. * target.h (struct target_ops): Update read_memory, write_memory, and read_auxv. (read_inferior_memory, write_inferior_memory): Update. * linux-low.h (struct linux_target_ops): Change type of breakpoint to unsigned char *. * linux-arm-low.c, linux-cris-low.c, linux-crisv32-low.c, linux-i386-low.c, linux-m32r-low.c, linux-m68k-low.c, linux-mips-low.c, linux-ppc-low.c, linux-ppc64-low.c, linux-s390-low.c, linux-sh-low.c: Update for changes in read_inferior_memory and the_low_target->breakpoint. 2005-05-28 Daniel Jacobowitz * Makefile.in (SFILES): Add linux-ppc64-low.c. (linux-ppc64-low.o, reg-ppc64.c, reg-ppc64.o): New targets. * configure.srv: Add powerpc64-*-linux*. * linux-ppc64-low.c: New file. 2005-05-23 Orjan Friberg * linux-cris-low.c: New file with support for CRIS. * linux-crisv32-low.c: Ditto for CRISv32. * Makefile.in (SFILES): Add linux-cris-low.c, linux-crisv32-low.c. (clean): Add reg-cris.c and reg-crisv32.c. Add linux-cris-low.o, linux-crisv32-low.o, reg-cris.o, reg-cris.c, reg-crisv32.o, and reg-crisv32.c to make rules. * configure.srv: Add cris-*-linux* and crisv32-*-linux* to list of recognized targets. 2005-05-16 Ulrich Weigand * linux-low.c (fetch_register): Ensure buffer size is a multiple of sizeof (PTRACE_XFER_TYPE). (usr_store_inferior_registers): Likewise. Zero out excess bytes. 2005-05-12 Orjan Friberg * target.h (struct target_ops): Add insert_watchpoint, remove_watchpoint, stopped_by_watchpoint, stopped_data_address function pointers for hardware watchpoint support. * linux-low.h (struct linux_target_ops): Ditto. * linux-low.c (linux_insert_watchpoint, linux_remove_watchpoint) (linux_stopped_by_watchpoint, linux_stopped_data_address): New. Add to linux_target_ops. * remote-utils.c (prepare_resume_reply): Add watchpoint information to reply packet. * server.c (main): Recognize 'Z' and 'z' packets. 2005-05-10 Ulrich Weigand * linux-s390-low.c (s390_breakpoint, s390_breakpoint_len): Define. (s390_get_pc, s390_set_pc, s390_breakpoint_at): New functions. (the_low_target): Add new members. 2005-05-04 Daniel Jacobowitz * proc-service.c (ps_lgetregs): Search all_processes instead of all_threads. 2005-05-04 Daniel Jacobowitz * server.c (start_inferior): Change return type to int. (attach_inferior): Change sigptr to int *. (handle_v_cont, handle_v_requests): Change signal to int *. (main): Change signal to int. 2005-04-15 Kei Sakamoto * Makefile.in: Add linux-m32r-low.o, reg-m32r.c and reg-m32r.o. * configure.srv: Add m32r*-*-linux*. * linux-m32r-low.c: New file. 2005-03-04 Daniel Jacobowitz * Makefile.in (stamp-h): Set CONFIG_HEADERS explicitly. 2005-03-03 Daniel Jacobowitz * inferiors.c (change_inferior_id, add_thread, find_inferior_id): Take unsigned long arguments for PIDs. * linux-low.c (add_process, linux_attach_lwp, linux_attach) (linux_thread_alive, linux_wait_for_event, kill_lwp, send_sigstop) (wait_for_sigstop, linux_resume_one_process) (regsets_fetch_inferior_registers, linux_send_signal) (linux_read_auxv): Likewise. Update the types of variables holding PIDs. Update format string specifiers. * linux-low.h (struct process_info, linux_attach_lwp): Likewise. * remote-utils.c (prepare_resume_reply): Likewise. * server.c (cont_thread, general_thread, step_thread) (thread_from_wait, old_thread_from_wait, signal_pid): Change type to unsigned long. (handle_query): Update format specifiers. (handle_v_cont, main): Use strtoul for thread IDs. * server.h (struct inferior_list_entry): Use unsigned long for ID. (add_thread, find_inferior_id, change_inferior_id, cont_thread) (general_thread, step_thread, thread_from_wait) (old_thread_from_wait): Update. * target.h (struct thread_resume): Use unsigned long for THREAD. (struct target_ops): Use unsigned long for arguments to attach and thread_alive. 2005-02-24 Daniel Jacobowitz * acinclude.m4: Include bfd/bfd.m4 directly. * configure.ac: Use AC_ARG_PROGRAM. Suggested by Aron Griffis . * aclocal.m4, configure: Regenerated. 2005-01-07 Andrew Cagney * configure.ac: Rename configure.in, require autoconf 2.59. * configure: Re-generate. 2004-12-08 Daniel Jacobowitz * acinclude.m4 (SRV_CHECK_THREAD_DB): Add ps_get_thread_area. Reset LIBS when finished. * aclocal.m4: Regenerated. * configure: Regenerated. 2004-11-21 Andreas Schwab * linux-m68k-low.c (m68k_num_gregs): Define. (m68k_fill_gregset, m68k_store_gregset, m68k_fill_fpregset) (m68k_store_fpregset, target_regsets) [HAVE_LINUX_REGSETS]: New. (m68k_breakpoint, m68k_breakpoint_len, m68k_get_pc, m68k_set_pc) (m68k_breakpoint_at): New. Add to the_low_target. * configure.srv (m68*-*-linux*): Set srv_linux_regsets and srv_linux_thread_db to yes. 2004-10-20 Joel Brobecker * linux-x86-64-low.c (ARCH_SET_GS): Add definition if missing. (ARCH_SET_FS): Likewise. (ARCH_GET_FS): Likewise. (ARCH_GET_GS): Likewise. 2004-10-16 Daniel Jacobowitz * linux-i386-low.c (ps_get_thread_area): New. * linux-x86-64-low.c (ps_get_thread_area): New. * linux-low.c: Include . (linux_kill_one_process): Don't kill the first thread here. (linux_kill): Kill the first thread here. (kill_lwp): New function. (send_sigstop, linux_send_signal): Use it. * proc-service.c: Clean up #ifdefs. (fpregset_info): Delete. (ps_lgetregs): Update and enable implementation. (ps_lsetregs, ps_lgetfpregs, ps_lsetfpregs): Remove disabled implementations. * remote-utils.c (struct sym_cache, symbol_cache): New. (input_interrupt): Print a clearer message. (async_io_enabled): New variable. (enable_async_io, disable_async_io): Use it. Update comments. (look_up_one_symbol): Use the symbol cache. * thread-db.c (thread_db_look_up_symbols): New function. (thread_db_init): Update comments. Call thread_db_look_up_symbols. 2004-10-16 Daniel Jacobowitz * configure.in: Test for -rdynamic. * configure: Regenerated. * Makefile (INTERNAL_LDFLAGS): New. (gdbserver, gdbreplay): Use it. 2004-09-02 Andrew Cagney * Makefile.in (TAGS): Replace TM_FILE with DEPRECATED_TM_FILE. 2004-03-23 Daniel Jacobowitz * linux-low.c (linux_wait): Clear all_processes list also. 2004-03-12 Daniel Jacobowitz * linux-low.c: Include . Remove extern declaration of errno. 2004-03-12 Daniel Jacobowitz * gdbreplay.c, server.h, utils.c: Update copyright years. 2004-03-04 Nathan J. Williams * server.c (main): Print child status or termination signal from variable 'signal', not 'sig'. 2004-03-04 Nathan J. Williams * linux-low.c (linux_read_memory): Change return type to int. Check for and return error from ptrace(). * target.c (read_inferior_memory): Change return type to int. Pass back return status from the_target->read_memory(). * target.h (struct target_ops): Adapt *read_memory() prototype. Update comment. (read_inferior_memory): Adapt prototype. * server.c (main): Return an error packet if read_inferior_memory() returns an error. 2004-03-04 Daniel Jacobowitz * Makefile.in (distclean): Remove config.h, stamp-h, and config.log. Unify with other clean targets. 2004-02-29 Daniel Jacobowitz * server.c (handle_v_cont): Call set_desired_inferior. 2004-02-29 Daniel Jacobowitz * remote-utils.c (prepare_resume_reply): Always supply "thread:". 2004-02-29 Daniel Jacobowitz * linux-low.c (linux_wait): Unblock async I/O. (linux_resume): Block and enable async I/O. * remote-utils.c (block_async_io, unblock_async_io): New functions. * server.h (block_async_io, unblock_async_io): Add prototypes. 2004-02-29 Daniel Jacobowitz * remote-utils.c (remote_open): Print a status notice after opening a TCP port. * server.c (attach_inferior): Print a status notice after attaching. 2004-02-29 Daniel Jacobowitz * linux-arm-low.c (arm_get_pc): Print out stop PC in debug mode. 2004-02-26 Daniel Jacobowitz * remote-utils.c (write_enn): Use "E01" instead of "ENN" for the error packet. * server.c, target.h: Update copyright years. 2004-02-25 Roland McGrath * target.h (struct target_ops): New member `read_auxv'. * server.c (handle_query): Handle qPart:auxv:read: query using that. * linux-low.c (linux_read_auxv): New function. (linux_target_ops): Initialize `read_auxv' member to that. 2004-02-17 Ulrich Weigand Committed by Jim Blandy . * linux-s390-low.c (s390_num_regs): Update. (s390_regmap): Remove control registers. Use __s390x__ predefine instead of GPR_SIZE to distiguish s390 and s390x targets. 2004-01-31 Daniel Jacobowitz * linux-low.c: Update copyright year. (check_removed_breakpoint): Clear pending_is_breakpoint. (linux_set_resume_request, linux_queue_one_thread) (resume_status_pending_p): New functions. (linux_continue_one_thread): Use process->resume. (linux_resume): Only resume threads if there are no pending events. * linux-low.h (struct process_info): Add resume request pointer. 2004-01-30 Daniel Jacobowitz * regcache.c (new_register_cache): Clear the allocated register buffer. Suggested by Atsushi Nemoto . 2003-10-13 Daniel Jacobowitz * linux-low.c (linux_resume): Take a struct thread_resume * argument. (linux_wait): Update call. (resume_ptr): New static variable. (linux_continue_one_thread): Renamed from linux_continue_one_process. Use resume_ptr. (linux_resume): Use linux_continue_one_thread. * server.c (handle_v_cont, handle_v_requests): New functions. (myresume): New function. (main): Handle 'v' case. * target.h (struct thread_resume): New type. (struct target_ops): Change argument of "resume" to struct thread_resume *. (myresume): Delete macro. 2003-08-08 H.J. Lu * Makefile.in (install-only): Create dest dir. Support DESTDIR. (uninstall): Support DESTDIR. Mon Jul 21 20:09:34 UTC 2003 Brendan Conoboy * configure.srv: Add xscale*linux copy of arm*linux entry. 2003-07-24 Daniel Jacobowitz * linux-arm-low.c (arm_reinsert_addr): New function. (the_low_target): Add arm_reinsert_addr. 2003-07-08 Mark Kettenis * mem-break.c: Remove whitespace at end of file. 2003-06-28 Daniel Jacobowitz * configure.in: Check whether we need to prototype strerror. * server.h: Optionally prototype strerror. * gdbreplay.c (perror_with_name): Use strerror. * linux-low.c (linux_attach_lwp): Use strerror. * utils.c (perror_with_name): Use strerror. * config.in, configure: Regenerated. 2003-06-28 Daniel Jacobowitz * linux-sh-low.c (sh_regmap): Fix FP register offsets, reported by SUGIOKA Toshinobu . 2003-06-20 Daniel Jacobowitz * Makefile.in (SFILES): Update. * low-hppabsd.c, low-lynx.c, low-nbsd.c, low-sim.c, low-sparc.c, low-sun3.c: Remove files. 2003-06-17 Daniel Jacobowitz * linux-low.c: Move comment to linux_thread_alive where it belonged. (linux_detach_one_process, linux_detach): New functions. (linux_target_ops): Add linux_detach. * server.c (main): Handle 'D' packet. * target.h (struct target_ops): Add "detach" member. (detach_inferior): Define. 2003-06-13 Mark Kettenis From Kelley Cook : * configure.srv: Accept i[34567]86 variants. 2003-06-05 Daniel Jacobowitz * linux-low.c (linux_wait_for_event): Correct comment typos. (linux_resume_one_process): Call check_removed_breakpoint. (linux_send_signal): New function. (linux_target_ops): Add linux_send_signal. * remote-utils.c (putpkt, input_interrupt): Use send_signal instead of kill. * target.h (struct target_ops): Add send_signal. 2003-05-29 Jim Blandy * linux-low.c (usr_store_inferior_registers): Transfer buf in PTRACE_XFER_TYPE-sized chunks, not int-sized chunks. Otherwise, if 'int' is smaller than PTRACE_XFER_TYPE, you end up throwing away part of the register's value. 2003-03-26 Daniel Jacobowitz * linux-low.c (linux_create_inferior): Use __SIGRTMIN. (linux_wait_for_event, linux_init_signals): Likewise. 2003-03-17 Daniel Jacobowitz * configure.in: Check for stdlib.h. * configure: Regenerated. * config.in: Regenerated. 2003-01-04 Andreas Schwab * linux-m68k-low.c (m68k_num_regs): Define to 29 instead of 31. 2003-01-02 Andrew Cagney * Makefile.in: Remove obsolete code. 2002-11-20 Daniel Jacobowitz * linux-s390-low.c (s390_regmap): Check GPR_SIZE instead of defined(PT_FPR0_HI). 2002-11-17 Stuart Hughes * linux-arm-low.c (arm_num_regs): Increase. (arm_regmap): Include status register. 2002-11-17 Daniel Jacobowitz * linux-low.c (register_addr): Remove incorrect -1 check. 2002-08-29 Daniel Jacobowitz * linux-low.c (linux_create_inferior): Call setpgid. Return the new PID. (unstopped_p, linux_signal_pid): Remove. (linux_target_ops): Remove linux_signal_pid. * remote-utils.c (putpkt, input_interrupt): Use signal_pid global instead of target method. * target.h (struct target_ops): Remove signal_pid. Update comment for create_inferior. * server.c (signal_pid): New variable. (create_inferior): Set signal_pid. Block SIGTTOU and SIGTTIN in gdbserver. Set the child to be the foreground process group. (attach_inferior): Set signal_pid. 2002-08-23 Daniel Jacobowitz * ChangeLog: New file, with entries from gdb/ChangeLog after GDB 5.2. 2002-08-20 Jim Blandy * Makefile.in (LDFLAGS): Allow the configure script to establish a default for this. 2002-08-01 Andrew Cagney * Makefile.in: Make chill references obsolete. 2002-07-24 Kevin Buettner * configure.in (unistd.h): Add to AC_CHECK_HEADERS list. * configure: Regenerate. * config.in: Regenerate. 2002-07-09 David O'Brien * gdbreplay.c (stdlib.h, unistd.h): Conditionaly include. (perror_with_name, remote_close, remote_open, expect, play): Static. 2002-07-04 Michal Ludvig * linux-x86-64-low.c (x86_64_regmap): Make it an array of byte offsets instead of an array of indexes. (x86_64_store_gregset, x86_64_store_fpregset): Parameter made const. 2002-06-13 Daniel Jacobowitz * regcache.c: Add comment. 2002-06-11 Daniel Jacobowitz * thread-db.c: New file. * proc-service.c: New file. * acinclude.m4: New file. * Makefile.in: Add GDBSERVER_LIBS, gdb_proc_service_h, proc-service.o, and thread-db.o. (linux-low.o): Add USE_THREAD_DB. * acconfig.h: Add HAVE_PRGREGSET_T, HAVE_PRFPREGSET_T, HAVE_LWPID_T, HAVE_PSADDR_T, and PRFPREGSET_T_BROKEN. * aclocal.m4: Regenerated. * config.in: Regenerated. * configure: Regenerated. * configure.in: Check for proc_service.h, sys/procfs.h, thread_db.h, and linux/elf.h headrs. Check for lwpid_t, psaddr_t, prgregset_t, prfpregset_t, and PRFPREGSET_T_BROKEN. Introduce srv_thread_depfiles and USE_THREAD_DB. Check for -lthread_db and thread support. * configure.srv: Enable thread_db support for ARM, i386, MIPS, PowerPC, and SuperH. * i387-fp.c: Constify arguments. * i387-fp.h: Likewise. * inferiors.c: (struct thread_info): Renamed from `struct inferior_info'. Remove PID member. Use generic inferior list header. All uses updated. (inferiors, signal_pid): Removed. (all_threads): New variable. (get_thread): Define. (add_inferior_to_list): New function. (for_each_inferior): New function. (change_inferior_id): New function. (add_inferior): Removed. (remove_inferior): New function. (add_thread): New function. (free_one_thread): New function. (remove_thread): New function. (clear_inferiors): Use for_each_inferior and free_one_thread. (find_inferior): New function. (find_inferior_id): New function. (inferior_target_data): Update argument type. (set_inferior_target_data): Likewise. (inferior_regcache_data): Likewise. (set_inferior_regcache_data): Likewise. * linux-low.c (linux_bp_reinsert): Remove. (all_processes, stopping_threads, using_thrads) (struct pending_signals, debug_threads, pid_of): New. (inferior_pid): Replace with macro. (struct inferior_linux_data): Remove. (get_stop_pc, add_process): New functions. (linux_create_inferior): Restore SIGRTMIN+1 before calling exec. Use add_process and add_thread. (linux_attach_lwp): New function, based on old linux_attach. Use add_process and add_thread. Set stop_expected for new threads. (linux_attach): New function. (linux_kill_one_process): New function. (linux_kill): Kill all LWPs. (linux_thread_alive): Use find_inferior_id. (check_removed_breakpoints, status_pending_p): New functions. (linux_wait_for_process): Renamed from linux_wait_for_one_inferior. Update. Use WNOHANG. Wait for cloned processes also. Update process struct for the found process. (linux_wait_for_event): New function. (linux_wait): Use it. Support LWPs. (send_sigstop, wait_for_sigstop, stop_all_processes) (linux_resume_one_process, linux_continue_one_process): New functions. (linux_resume): Support LWPs. (REGISTER_RAW_SIZE): Remove. (fetch_register): Use register_size instead. Call supply_register. (usr_store_inferior_registers): Likewise. Call collect_register. Fix recursive case. (regsets_fetch_inferior_registers): Improve error message. (regsets_store_inferior_registers): Add debugging. (linux_look_up_symbols): Call thread_db_init if USE_THREAD_DB. (unstopped_p, linux_signal_pid): New functions. (linux_target_ops): Add linux_signal_pid. (linux_init_signals): New function. (initialize_low): Call it. Initialize using_threads. * regcache.c (inferior_regcache_data): Add valid flag. (get_regcache): Fetch registers lazily. Add fetch argument and update all callers. (regcache_invalidate_one, regcache_invalidate): New functions. (new_register_cache): Renamed from create_register_cache. Return the new regcache. (free_register_cache): Change argument to a void *. (registers_to_string, registers_from_string): Call get_regcache with fetch flag set. (register_data): Make static. Pass fetch flag to get_regcache. (supply_register): Call get_regcache with fetch flag clear. (collect_register): Call get_regcache with fetch flag set. (collect_register_as_string): New function. * regcache.h: Update. * remote-utils.c (putpkt): Flush after debug output and use stderr. Handle input interrupts while waiting for an ACK. (input_interrupt): Use signal_pid method. (getpkt): Flush after debug output and use stderr. (outreg): Use collect_register_as_string. (new_thread_notify, dead_thread_notify): New functions. (prepare_resume_reply): Check using_threads. Set thread_from_wait and general_thread. (look_up_one_symbol): Flush after debug output. * server.c (step_thread, server_waiting): New variables. (start_inferior): Don't use signal_pid. Update call to mywait. (attach_inferior): Update call to mywait. (handle_query): Handle qfThreadInfo and qsThreadInfo. (main): Don't fetch/store registers explicitly. Use set_desired_inferior. Support proposed ``Hs'' packet. Update calls to mywait. * server.h: Update. (struct inferior_list, struct_inferior_list_entry): New. * target.c (set_desired_inferior): New. (write_inferior_memory): Constify. (mywait): New function. * target.h: Update. (struct target_ops): New signal_pid method. (mywait): Removed macro, added prototype. * linux-low.h (regset_func): Removed. (regset_fill_func, regset_store_func): New. (enum regset_type): New. (struct regset_info): Add type field. Use new operation types. (struct linux_target_ops): stop_pc renamed to get_pc. Add decr_pc_after_break and breakpoint_at. (get_process, get_thread_proess, get_process_thread) (strut process_info, all_processes, linux_attach_lwp) (thread_db_init): New. * linux-arm-low.c (arm_get_pc, arm_set_pc, arm_breakpoint, arm_breakpoint_len, arm_breakpoint_at): New. (the_low_target): Add new members. * linux-i386-low.c (i386_store_gregset, i386_store_fpregset) (i386_store_fpxregset): Constify. (target_regsets): Add new kind identifier. (i386_get_pc): Renamed from i386_stop_pc. Simplify. (i386_set_pc): Add debugging. (i386_breakpoint_at): New function. (the_low_target): Add new members. * linux-mips-low.c (mips_get_pc, mips_set_pc) (mips_breakpoint, mips_breakpoint_len, mips_reinsert_addr) (mips_breakpoint_at): New. (the_low_target): Add new members. * linux-ppc-low.c (ppc_get_pc, ppc_set_pc) (ppc_breakpoint, ppc_breakpoint_len, ppc_breakpoint_at): New. (the_low_target): Add new members. * linux-sh-low.c (sh_get_pc, sh_set_pc) (sh_breakpoint, sh_breakpoint_len, sh_breakpoint_at): New. (the_low_target): Add new members. * linux-x86-64-low.c (target_regsets): Add new kind identifier. 2002-05-15 Daniel Jacobowitz From Martin Pool : * server.c (gdbserver_usage): New function. (main): Call it. 2002-05-14 Daniel Jacobowitz * mem-break.c (reinsert_breakpoint_by_bp): Correct typo stop_at -> stop_pc. 2002-05-04 Andrew Cagney * Makefile.in: Remove obsolete code. 2002-04-24 Michal Ludvig * linux-low.c (regsets_fetch_inferior_registers), (regsets_store_inferior_registers): Removed cast to int from ptrace() calls. * regcache.h: Added declaration of struct inferior_info. 2002-04-20 Daniel Jacobowitz * inferiors.c (struct inferior_info): Add regcache_data. (add_inferior): Call create_register_cache. (clear_inferiors): Call free_register_cache. (inferior_regcache_data, set_inferior_regcache_data): New functions. * regcache.c (struct inferior_regcache_data): New. (registers): Remove. (get_regcache): New function. (create_register_cache, free_register_cache): New functions. (set_register_cache): Don't initialize the register cache here. (registers_to_string, registers_from_string, register_data): Call get_regcache. * regcache.h: Add prototypes. * server.h: Likewise. 2002-04-20 Daniel Jacobowitz * mem-break.c: New file. * mem-break.h: New file. * Makefile.in: Add mem-break.o rule; update server.h dependencies. * inferiors.c (struct inferior_info): Add target_data member. (clear_inferiors): Free target_data member if set. (inferior_target_data, set_inferior_target_data): New functions. * linux-i386-low.c (i386_breakpoint, i386_breakpoint_len) (i386_stop_pc, i386_set_pc): New. Add to the_low_target. * linux-low.c (linux_bp_reinsert): New variable. (struct inferior_linux_data): New. (linux_create_inferior): Use set_inferior_target_data. (linux_attach): Likewise. Call add_inferior. (linux_wait_for_one_inferior): New function. (linux_wait): Call it. (linux_write_memory): Add const. (initialize_low): Call set_breakpoint_data. * linux-low.h (struct linux_target_ops): Add breakpoint handling members. * server.c (attach_inferior): Remove extra add_inferior call. * server.h: Include mem-break.h. Update inferior.c prototypes. * target.c (read_inferior_memory) (write_inferior_memory): New functions. * target.h (read_inferior_memory) (write_inferior_memory): Change macros to prototypes. (struct target_ops): Update comments. Add const to write_memory definition. 2002-04-11 Daniel Jacobowitz * linux-low.c (usr_store_inferior_registers): Support registers which are allowed to fail to store. * linux-low.h (linux_target_ops): Likewise. * linux-ppc-low.c (ppc_regmap): Support FPSCR. (ppc_cannot_store_register): FPSCR may not be storable. 2002-04-09 Daniel Jacobowitz * server.h: Include if HAVE_STRING_H. * ChangeLog: Correct paths in last ChangeLog entry. 2002-04-09 Daniel Jacobowitz * linux-low.h: Remove obsolete prototypes. (struct linux_target_ops): New. (extern the_low_target): New. * linux-low.c (num_regs, regmap): Remove declarations. (register_addr): Use the_low_target explicitly. (fetch_register): Likewise. (usr_fetch_inferior_registers): Likewise. (usr_store_inferior_registers): Likewise. * linux-arm-low.c (num_regs): Remove. (arm_num_regs): Define. (arm_regmap): Renamed from regmap, made static. (arm_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (arm_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-i386-low.c (num_regs): Remove. (i386_num_regs): Define. (i386_regmap): Renamed from regmap, made static. (i386_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (i386_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-ia64-low.c (num_regs): Remove. (ia64_num_regs): Define. (ia64_regmap): Renamed from regmap, made static. (ia64_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (ia64_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-m68k-low.c (num_regs): Remove. (m68k_num_regs): Define. (m68k_regmap): Renamed from regmap, made static. (m68k_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (m68k_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-mips-low.c (num_regs): Remove. (mips_num_regs): Define. (mips_regmap): Renamed from regmap, made static. (mips_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (mips_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-ppc-low.c (num_regs): Remove. (ppc_num_regs): Define. (ppc_regmap): Renamed from regmap, made static. (ppc_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (ppc_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-s390-low.c (num_regs): Remove. (s390_num_regs): Define. (s390_regmap): Renamed from regmap, made static. (s390_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (s390_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-sh-low.c (num_regs): Remove. (sh_num_regs): Define. (sh_regmap): Renamed from regmap, made static. (sh_cannot_fetch_register): Renamed from cannot_fetch_register, made static. (sh_cannot_store_register): Renamed from cannot_store_register, made static. (the_low_target): New. * linux-x86-64-low.c (x86_64_regmap): Renamed from regmap. (the_low_target): New. 2002-04-09 Daniel Jacobowitz * Makefile.in: Add stamp-h target. * configure.in: Create stamp-h. * configure: Regenerated. 2002-04-09 Daniel Jacobowitz * inferiors.c: New file. * target.c: New file. * target.h: New file. * Makefile.in: Add target.o and inferiors.o. Update dependencies. * linux-low.c (inferior_pid): New static variable, moved from server.c. (linux_create_inferior): Renamed from create_inferior. Call add_inferior. Return 0 on success instead of a PID. (linux_attach): Renamed from myattach. (linux_kill): Renamed from kill_inferior. Call clear_inferiors (). (linux_thread_alive): Renamed from mythread_alive. (linux_wait): Renamed from mywait. Call clear_inferiors () if the child dies. (linux_resume): Renamed from myresume. Add missing ``return 0''. (regsets_store_inferior_registers): Correct error message. Add missing ``return 0''. (linux_fetch_registers): Renamed from fetch_inferior_registers. (linux_store_registers): Renamed from store_inferior_registers. (linux_read_memory): Renamed from read_inferior_memory. (linux_write_memory): Renamed from write_inferior_memory. (linux_target_ops): New structure. (initialize_low): Call set_target_ops (). * remote-utils.c (unhexify): New function. (hexify): New function. (input_interrupt): Send signals to ``signal_pid''. * server.c (inferior_pid): Remove. (start_inferior): Update create_inferior call. (attach_inferior): Call add_inferior. (handle_query): New function. (main): Call handle_query for `q' packets. * server.h: Include "target.h". Remove obsolete prototypes. Add prototypes for "inferiors.c", "target.c", hexify, and unhexify. 2002-04-09 Daniel Jacobowitz * Makefile.in: Add WARN_CFLAGS. Update configury dependencies. * configure.in: Check for * configure: Regenerate. * config.in: Regenerate. * gdbreplay.c: Include needed system headers. (remote_open): Remove strchr prototype. * linux-low.h: Correct #ifdef to HAVE_LINUX_USRREGS. * regcache.c (supply_register): Change buf argument to const void *. (supply_register_by_name): Likewise. (collect_register): Change buf argument to void *. (collect_register_by_name): Likewise. * regcache.h: Add missing prototypes. * remote-utils.c: Include for inet_ntoa. * server.c (handle_query): New function. (attached): New static variable, moved out of main. (main): Quiet longjmp clobber warnings. * server.h: Add ATTR_NORETURN and ATTR_FORMAT. Update prototypes. * utils.c (error): Remove NORETURN. (fatal): Likewise.