summaryrefslogtreecommitdiff
path: root/gdb/gdbserver/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright year in gdb/gdbserver/gdbreplay version output.Joel Brobecker2014-01-011-0/+5
| | | | | | | | | | | gdb/ChangeLog: * top.c (print_gdb_version): Set copyright year to 2014. gdb/gdbserver/ChangeLog: * gdbserver.c (gdbserver_version): Set copyright year to 2014. * gdbreplay.c (gdbreplay_version): Likewise.
* gdb/Yufeng Zhang2013-12-181-0/+5
| | | | | | | | | | * aarch64-linux-nat.c (aarch64_linux_set_debug_regs): Set iov.iov_len with the real length in use. gdb/gdbserver/ * linux-aarch64-low.c (aarch64_linux_set_debug_regs): Set iov.iov_len with the real length in use.
* nameless LOAD_DLL_DEBUG_EVENT causes ntdll.dll to be missingJoel Brobecker2013-12-131-0/+8
| | | | | | | | | | | | | | | | | | | | This is the gdbserver-equivalent of the change made in GDB to handle the case, in x64 windows version 2012, where the kernel produces a LOAD_DLL_DEBUG_EVENT where the name of the associated DLL cannot be determined at that time, and thus has to be processed later. The visible symptom is that ntdll.dll is missing from the list of shared libraries known to be mapped by the inferior, with other side-effects such as failure to unwind through code provided by that DLL (such as exception handling routines). gdb/gdbserver/ChangeLog: * Makefile.in (safe-ctype.o, lbasename.o): New rules. * configure.srv: Add safe-ctype.o and lbasename.o to srv_tgtobj for all targets that use win32-low.c. * win32-low.c (win32_ensure_ntdll_loaded): New function. (do_initial_child_stuff): Add call to win32_ensure_ntdll_loaded.
* Do the target-waiting within do_initial_child_stuff on Windows.Pedro Alves2013-12-131-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a preparatory patch that achieves two goals: . Makes the initial event handling more similar to GDB's; . Opens the door for implementing post-inititial-handling operations. At the moment, this is only done on Windows, where the post-initial-handling is going to be needed (in the context of Windows 2012). And because we're close to creating the gdb 7.7 branch, making that change for all platforms is a little more risk that we'd like. So the change is currently implemented on Windows. gdb/gdbserver/ChangeLog: * target.c (mywait): Set OURSTATUS->KIND to TARGET_WAITKIND_STOPPED if equal to TARGET_WAITKIND_LOADED. * win32-low.c (cached_status): New static global. (win32_wait): Add declaration. (do_initial_child_stuff): Flush all initial pending debug events up to the initial breakpoint. (win32_wait): If CACHED_STATUS was set, return that instead of doing a real wait. Remove the code resuming the execution of the inferior after receiving a TARGET_WAITKIND_LOADED event during the initial phase. Also remove the code changing OURSTATUS->KIND from TARGET_WAITKIND_LOADED to TARGET_WAITKIND_STOPPED.
* Fix a bug in matching notifications.Yao Qi2013-12-111-0/+5
| | | | | | | | | | | | | | | Due to copy-n-paste, the problem caused PR remote/15974 also exists in gdbserver. This patch fixes it in the same way. Patch to fix remote/15974 can be found: https://sourceware.org/ml/gdb-patches/2013-12/msg00014.html gdb/gdbserver: 2013-12-11 Yao Qi <yao@codesourcery.com> * notif.c (handle_notif_ack): Return 0 if no notification matches.
* * linux-low.c (linux_set_resume_request): Fix comment.Doug Evans2013-11-201-0/+4
|
* * linux-low.c (resume_status_pending_p): Tweak comment.Doug Evans2013-11-201-0/+4
|
* Add MPX support to gdbserver.Walfred Tedeschi2013-11-201-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2013-05-22 Walfred Tedeschi <walfred.tedeschi@intel.com> gdbserver/ * Makefile.in: Add i386-mpx.c, i386-mpx-linux.c, amd64-mpx.c, amd64-mpx-linux.c, x32-mpx.c and x32-mpx-linux.c generation. * configure.srv (srv_i386_regobj): Add i386-mpx.o. (srv_i386_linux_regobj): Add i386-mpx-linux.o. (srv_amd64_regobj): Add amd64-mpx.o. (srv_amd64_linux_regobj): Add amd64-mpx-linux.o. (srv_i386_32bit_xmlfiles): Add i386/32bit-mpx.xml. (srv_i386_64bit_xmlfiles): Add i386/64bit-mpx.xml. * i387-fp.c (num_pl_bnd_register) Added constant. (num_pl_bnd_cfg_registers) Added constant. (struct i387_xsave) Added reserved area and MPX fields. (i387_cache_to_xsave, i387_xsave_to_cache) Add MPX. * linux-x86-low.c (init_registers_i386_mpx_linux): Declare new function. (tdesc_i386_mpx_linux): Add MPX amd64 target. (init_registers_amd64_mpx_linux): Declare new function. (tdesc_amd64_mpx_linux): Add MPX amd64 target. (x86_64_regmap): Add MPX registers. (x86_linux_read_description): Add MPX case. (initialize_low_arch): Initialize MPX targets. Change-Id: I394d81afa76d11375ce792cefad0ceb9825fb379 Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
* stdlib.h is universal tooTom Tromey2013-11-181-0/+6
| | | | | | | | | | | | | | | | stdlib.h is universal as well, so there is no need to check for it. 2013-11-18 Tom Tromey <tromey@redhat.com> * configure: Rebuild. * configure.ac: Don't check for stdlib.h * defs.h: Include stdlib.h unconditionally. 2013-11-18 Tom Tromey <tromey@redhat.com> * configure: Rebuild. * configure.ac: Don't check for stdlib.h. * gdbreplay.c: Unconditionally include stdlib.h.
* remove gdb_dirent.hTom Tromey2013-11-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | This removes gdb_dirent.h and updates the code to use dirent.h instead. It also removes the now-useless configure checks. 2013-11-18 Tom Tromey <tromey@redhat.com> * common/common.m4 (GDB_AC_COMMON): Don't use AC_HEADER_DIRENT. * common/gdb_dirent.h: Remove. * common/filestuff.c: Use dirent.h. * common/linux-osdata.c: Use dirent.h. (NAMELEN): Define. * config.in: Rebuild. * configure: Rebuild. * configure.ac: Don't use AC_HEADER_DIRENT. * linux-fork.c: Use dirent.h * linux-nat.c: Use dirent.h. * nto-procfs.c: Use dirent.h. * procfs.c: Use dirent.h. 2013-11-18 Tom Tromey <tromey@redhat.com> * config.in: Rebuild. * configure: Rebuild. * configure.ac: Don't use AC_HEADER_DIRENT.
* don't check for string.h or strings.hTom Tromey2013-11-181-0/+6
| | | | | | | | | | | | | | | | | | Now that we are using the gnulib string.h module, we don't need to check for string.h or strings.h. This removes the last few checks from the source and from the configure scripts. 2013-11-18 Tom Tromey <tromey@redhat.com> * configure: Rebuild. * common/common.m4 (GDB_AC_COMMON): Don't check for string.h or strings.h. 2013-11-18 Tom Tromey <tromey@redhat.com> * server.h: Don't check HAVE_STRING_H. * gdbreplay.c: Don't check HAVE_STRING_H. * configure: Rebuild.
* link gdbreplay against gnulibTom Tromey2013-11-181-0/+5
| | | | | | | | | | | | Later patches in this series will make changes to gdb and gdbserver configury, necessitating the use of gnulib in gdbreplay. This patch introduces the dependency early, so that subsequent patches don't break the build. 2013-11-18 Tom Tromey <tromey@redhat.com> * Makefile.in (gdbreplay$(EXEEXT)): Depend on and link against LIBGNU.
* remove unused gdbserver configuryTom Tromey2013-11-081-0/+5
| | | | | | | | | | This updates gdbserver's configure.ac to remove checks that aren't directly needed by gdbserver. 2013-11-08 Tom Tromey <tromey@redhat.com> * configure, config.in: Rebuild. * configure.ac: Remove unused configury.
* introduce common.m4Tom Tromey2013-11-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has bothered me for a while that files in common/ use macros defined via autoconf checks, but rely on each configure.ac doing the proper checks independently. This patch introduces common/common.m4 which consolidates the checks assumed by code in common. The rule I propose is that if something is needed or used by common, it should be checked for by common.m4. However, if the check is also needed by gdb or gdbserver, then it should be duplicated there. Built and regtested on x86-64 Fedora 18 (though this is hardly the most strenuous case) and using the Fedora 18 mingw cross compilers. I also examined the config.in diffs to ensure that symbols did not go missing. 2013-11-08 Tom Tromey <tromey@redhat.com> * acinclude.m4: Include common.m4. * common/common.m4: New file. * configure, config.in: Rebuild. * configure.ac: Use GDB_AC_COMMON. 2013-11-08 Tom Tromey <tromey@redhat.com> * acinclude.m4: Include common.m4, codeset.m4. * configure, config.in: Rebuild. * configure.ac: Use GDB_AC_COMMON.
* S390: Fix TDB regset recognitionAndreas Arnez2013-11-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | When checking for the presence of the TDB regset, the current code interprets ENODATA from PTRACE_GETREGSET as an indication that the TDB regset *could* occur on this system, but the inferior stopped outside a transaction. However, the Linux kernel actually reports ENODATA even on systems without the transactional execution facility. Thus the logic is now changed to check the TE field in the HWCAP as well. This version also checks the existence of the TDB regset -- just to be on the safe side when running on TE-enabled hardware with a kernel that does not offer the TDB regset for some reason. gdb/ * s390-linux-nat.c (s390_read_description): Consider the TE field in the HWCAP for determining 'have_regset_tdb'. gdbserver/ * linux-s390-low.c (HWCAP_S390_TE): New define. (s390_arch_setup): Consider the TE field in the HWCAP for determining 'have_regset_tdb'.
* There were two functions who were calling "sizeof" twice.Sergio Durigan Junior2013-10-161-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | The first one, dw2_get_real_path from gdb/dwarf2read.c, was actually making use of OBSTACK_CALLOC which already calls "sizeof" for its third argument. The second, download_tracepoint_1 from gdb/gdbserver/tracepoint.c, was explicitly calling "sizeof" inside another "sizeof". This patch fixed both functions. gdb/ChangeLog 2013-10-16 Sergio Durigan Junior <sergiodj@redhat.com> PR gdb/16014 * dwarf2read.c (dw2_get_real_path): Remove unnecessary call to sizeof. gdb/gdbserver/ChangeLog 2013-10-16 Sergio Durigan Junior <sergiodj@redhat.com> PR gdb/16014 * tracepoint.c (download_tracepoint_1): Remove unnecessary double call to sizeof.
* [GDBserver]: Silence exits if GDB is connected through stdio.Pedro Alves2013-10-021-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we make gdbserver gdb_continue_to_end actually expect a process exit with GDBserver, we get many testsuite failures with the remote stdio board: -PASS: gdb.arch/amd64-disp-step.exp: continue until exit at amd64-disp-step +FAIL: gdb.arch/amd64-disp-step.exp: continue until exit at amd64-disp-step (the program exited) -PASS: gdb.base/break.exp: continue until exit at recursive next test +FAIL: gdb.base/break.exp: continue until exit at recursive next test (the program exited) -PASS: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through +FAIL: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through (the program exited) ... etc. ... This is what the log shows for all of them: (gdb) continue Continuing. Child exited with status 0 GDBserver exiting [Inferior 1 (process 22721) exited normally] (gdb) FAIL: gdb.arch/amd64-disp-step.exp: continue until exit (the program exited) The problem is the whole "Child exited ... GDBserver exiting" output, that comes out of GDBserver, and that the testsuite is not expecting. I pondered somehow making the testsuite adjust to this. But, testsuite aside, I think GDBserver should not be outputting this at all when GDB is connected through stdio. GDBserver will be printing this in GDB's console, but the user can already tell from the regular output that the inferior is gone. Again, manually: (gdb) tar remote | ./gdbserver/gdbserver - program Remote debugging using | ./gdbserver/gdbserver - program Process program created; pid = 22486 stdin/stdout redirected Remote debugging using stdio done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 0x000000323d001530 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) c Continuing. Child exited with status 1 ^^^^^^^^^^^^^^^^^^^^^^^^^^ GDBserver exiting ^^^^^^^^^^^^^^^^^ [Inferior 1 (process 22486) exited with code 01] (gdb) Suppressing those two lines makes the output be exactly like when debugging against a remote tcp gdbserver: (gdb) c Continuing. [Inferior 1 (process 22914) exited with code 01] (gdb) 2013-10-02 Pedro Alves <palves@redhat.com> * server.c (process_serial_event): Don't output "GDBserver exiting" if GDB is connected through stdio. * target.c (mywait): Likewise, be silent if GDB is connected through stdio.
* [gdbserver/LynxOS]: Incomplete thread list after --attachJoel Brobecker2013-10-011-0/+6
| | | | | | | | | | | | | | | | | The current implementation is forgetting to populate the thread list when attaching to the process. This results in an incomplete list of threads when debugging a threaded program. Unfortunately, as the added comments hints, there appears to be no way of getting the list of threads via ptrace, other than by spawning the "ps" command, and parsing its output. Not great, but it appears to be the best we can do. gdb/gdbserver/ChangeLog: * lynx-low.c (lynx_add_threads_after_attach): New function. (lynx_attach): Remove call to add_thread. Add call to lynx_add_threads_after_attach instead.
* gdb: btrace: fix build errors on older glibc buildsMike Frysinger2013-09-291-0/+5
| | | | | | | | | | | | | | | | It is possible to have a build of glibc where SYS_perf_event_open is not defined (because when the glibc was compiled, the syscall did not exist), but have newer kernel headers installed so that linux/perf_event.h is available. In this setup, you get a build failure: ./common/linux-btrace.c: In function 'kernel_supports_btrace': ./common/linux-btrace.c:316:23: error: 'SYS_perf_event_open' undeclared (first use in this function) Update the ifdef check to also see if the syscall is available. URL: https://bugs.gentoo.org/473522 Reported-by: William Throwe <wtt6@cornell.edu> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* gdb/gdbserver/Yao Qi2013-09-181-0/+5
| | | | | | | | | | | | | | 2013-09-18 Yao Qi <yao@codesourcery.com> PR server/15959 * server.c (start_inferior): Clear 'resume_info'. gdb/testsuite/ 2013-09-18 Yao Qi <yao@codesourcery.com> * gdb.server/wrapper.c: New. * gdb.server/wrapper.exp: New.
* gdb/gdbserver/Yao Qi2013-09-181-0/+2
| | | | Fix ChangeLog format issue.
* gdbserver/ChangeLogJiong Wang2013-09-171-0/+4
| | | | | * linux-tile-low.c (tile_regsets): Modify the size field to 64-bit for each register.
* 2013-09-16 Jiong Wang <jiwang@tilera.com>Jiong Wang2013-09-171-0/+4
| | | | | | | gdbserver/ChangeLog * configure.srv <tilegx*-*-linux*>: Remove linux-osdata.o from and add linux-tile-low.o to srv_tgtobj.
* gdbserver, aarch64: Zero out regs in aarch64_linux_set_debug_regs.Will Newton2013-09-161-0/+5
| | | | | | | | | Apply the same fix that was applied to aarch64-linux-nat.c. 2013-09-16 Will Newton <will.newton@linaro.org> * linux-aarch64-low.c (aarch64_linux_set_debug_regs): Zero out regs.
* [gdbserver] Garbage collect unused dependency-tracking Makefile variables.Pedro Alves2013-09-061-0/+9
| | | | | | | | | | | | | | | These used to be necessary for manual rule dependency tracking. Nothing uses them anymore. (regdat_sh is still needed.) gdb/gdbserver/ 2013-09-06 Pedro Alves <palves@redhat.com> * Makefile.in (gdb_proc_service_h, regdef_h, regcache_h) (signals_def, signals_h, ptid_h, ax_h, agent_h, linux_btrace_h) (linux_osdata_h, vec_h, gdb_vecs_h, host_defs_h, libiberty_h) (server_h, gdbthread_h, linux_low_h, linux_ptrace_h) (gdb_thread_db_h, linux_procfs_h, lynx_low_h, nto_low_h) (mips_linux_watch_h, i386_low_h, win32_low_h): Delete.
* [gdbserver] Update a couple Makefile rules.Pedro Alves2013-09-061-0/+5
| | | | | | | | | | | | These two are still written in the pre-auto-dependency-tracking style. They probably were written before that, and committed afterwards without adjustment. An easy oversight to make. gdb/gdbserver/ 2013-09-06 Pedro Alves <palves@redhat.com> * Makefile.in (linux-btrace.o, mips-linux-watch.o): Remove explicit header dependencies and use $COMPILE/$POSTCOMPILE.
* [gdbserver] Fix IPA build.Pedro Alves2013-09-061-0/+5
| | | | | | | | | | | | | | Somehow, my builds yesterdays didn't trip on this... ../src/gdb/gdbserver/linux-amd64-ipa.c: In function ‘initialize_low_tracepoint’: ../src/gdb/gdbserver/linux-amd64-ipa.c:172:3: error: ‘ipa_tdesc’ undeclared (first use in this function) ../src/gdb/gdbserver/linux-amd64-ipa.c:172:3: note: each undeclared identifier is reported only once for each function it appears in gdb/gdbserver/ 2013-09-06 Pedro Alves <palves@redhat.com> * linux-amd64-ipa.c: Include tracepoint.h. * linux-i386-ipa.c: Include tracepoint.h.
* Add support for threaded debugging for CRISv32.Ricard Wanderlof2013-09-061-0/+5
| | | | | | | | | | | | 2013-09-06 Ricard Wanderlof <ricardw@axis.com> * cris-tdep.c (cris_gdbarch_init): Add call to get_gdbarch_fetch_tls_load_module_address. gdbserver * linux-crisv32-low.c (PTRACE_GET_THREAD_AREA): New macro. (ps_get_thread_area): New function.
* Fix compilation for target gdbserver on CRISv32 platform.Ricard Wanderlof2013-09-061-0/+6
| | | | | | | | | | | | | | | One misspelled function call, and one superfluous typedef. The latter causes an error of the following type when building: linux-crisv32-low.c:372: error: conflicting types for 'elf_gregset_t' /.../target/include/asm/elf.h:36: error: previous declaration of 'elf_gregset_t' was here 2013-09-06 Ricard Wanderlof <ricardw@axis.com> * linux-crisv32-low.c (elf_gregset_t): Delete typedef. (initialize_low_arch): Call init_registers_crisv32 rather than init_register_crisv32.
* [gdbserver] Split a new hostio.h file out of server.h.Pedro Alves2013-09-051-0/+8
| | | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (handle_vFile, hostio_last_error_from_errno): Move to ... * hostio.h: ... this new file. * hostio.c, server.c, linux-low.c, nto-low.c, spu-low, win32-low.c: Include hostio.h.
* [gdbserver] Split a new event-loop.h file out of server.h.Pedro Alves2013-09-051-0/+8
| | | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (gdb_client_data, handler_func, callback_handler_func) (delete_file_handler, add_file_handler, append_callback_event) (delete_callback_event, start_event_loop, initialize_event_loop): Move to event-loop.h and include it. * event-loop.h: New file.
* [gdbserver] Split a new dll.h file out of server.h.Pedro Alves2013-09-051-0/+8
| | | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * dll.c, inferiors.c, remote-utils.c, server.c: Include "dll.h". * server.h (struct dll_info, all_dlls, dlls_changed, clear_dlls) (loaded_dll, unloaded_dll): Move to ... * dll.h: ... this new file. * inferiors.c, remote-utils.c, win32-low.c: Include "dll.h".
* [gdbserver] Split a new inferiors.h file out of server.h.Pedro Alves2013-09-051-0/+13
| | | | | | | | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (current_process, get_thread_process, all_processes) (add_inferior_to_list, for_each_inferior, current_inferior) (remove_inferior, add_process, remove_process, find_process_pid) (have_started_inferiors_p, have_attached_inferiors_p) (thread_id_to_gdb_id, thread_to_gdb_id, gdb_id_to_thread_id) (clear_inferiors, find_inferior, find_inferior_id) (inferior_target_data, set_inferior_target_data) (inferior_regcache_data, set_inferior_regcache_data): Move to inferiors.h, and include it. * inferiors.h: New file.
* [gdbserver] Move bytecode compilation bits from server.h to ax.h.Pedro Alves2013-09-051-0/+6
| | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (struct emit_ops, current_insn_ptr, emit_error): Move ... * ax.h: ... here.
* [gdbserver] Split a new tracepoint.h file out of server.h.Pedro Alves2013-09-051-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * ax.c, linux-low.c, linux-x86-low.c, server.c: Include tracepoint.h. * server.h (IPA_BUFSIZ, initialize_tracepoint, tracing) (disconnected_tracing, tracepoint_look_up_symbols, stop_tracing (handle_tracepoint_general_set, handle_tracepoint_query) (tracepoint_finished_step, tracepoint_was_hit) (release_while_stepping_state_list, current_traceframe) (in_readonly_region, traceframe_read_mem) (fetch_traceframe_registers, traceframe_read_sdata) (traceframe_read_info, struct fast_tpoint_collect_status) (fast_tracepoint_collecting, force_unlock_trace_buffer) (handle_tracepoit_bkpts, initialize_low_tracepoint) (supply_fast_tracepoint_registers) (supply_static_tracepoint_registers, set_trampoline_buffer_space) (ipa_tdesc, claim_trampoline_space) (have_fast_tracepoint_trampoline_buffer, gdb_agent_about_to_close) (agent_mem_read, agent_get_trace_state_variable_value) (agent_set_trace_state_variable_value, agent_tsv_read) (agent_mem_read_string, get_raw_reg_func_addr) (get_get_tsv_func_addr, get_set_tsv_func_addr): Move to ... * tracepoint.h: ... this new file.
* [gdbserver] Split a new utils.h file out of server.h.Pedro Alves2013-09-051-0/+7
| | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (perror_with_name, error, fatal, warning, paddress) (pulongest, plongest, phex_nz, pfildes): Move to utils.h, and include it. * utils.h: New file.
* [gdbserver] Split a new remote-utils.h file out of server.h.Pedro Alves2013-09-051-0/+18
| | | | | | | | | | | | | | | | | | | | | gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (remote_debug, noack_mode, transport_is_reliable) (gdb_connected, STDIO_CONNECTION_NAME, remote_connection_is_stdio) (read_ptid, write_ptid, putpkt, putpkt_binary, putpkt_notif) (getpkt, remote_prepare, remote_open, remote_close, write_ok) (write_enn, initialize_async_io, enable_async_io) (disable_async_io, check_remote_input_interrupt_request) (convert_ascii_to_int, convert_int_to_ascii, new_thread_notify) (dead_thread_notify, prepare_resume_reply) (decode_address_to_semicolon, decode_address, decode_m_packet) (decode_M_packet, decode_X_packet, decode_xfer_write) (decode_search_memory_packet, unhexify, hexify) (remote_escape_output, unpack_varlen_hex, clear_symbol_cache) (look_up_one_symbol, relocate_instruction) (monitor_output): Move to remote-utils.h, and include it. * remote-utils.h: New file.
* [gdbserver] Delete _ macro (gettext).Pedro Alves2013-09-051-0/+4
| | | | | | | | | server.h nowadays includes gdb_locale.h, which already brings this in. gdb/gdbserver/ 2013-09-05 Pedro Alves <palves@redhat.com> * server.h (_): Delete.
* [gdbserver] Fix trace-buffer-size.exp FAILs.Pedro Alves2013-09-021-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm seeing trace-buffer-size.exp failing (with gdbserver): (gdb) PASS: gdb.trace/trace-buffer-size.exp: tstatus check 2 show trace-buffer-size 4 Requested size of trace buffer is 4. (gdb) PASS: gdb.trace/trace-buffer-size.exp: show trace buffer size set trace-buffer-size -1 memory clobbered past end of allocated block Remote connection closed (gdb) FAIL: gdb.trace/trace-buffer-size.exp: set trace buffer size 2 set trace-buffer-size unlimited (gdb) PASS: gdb.trace/trace-buffer-size.exp: set trace-buffer-size unlimited That "memory clobbered past end of allocated block" is mcheck triggering. Valgrind shows: ==23624== Invalid write of size 1 ==23624== at 0x418DD8: clear_trace_buffer (tracepoint.c:1443) ==23624== by 0x418F3A: init_trace_buffer (tracepoint.c:1497) ==23624== by 0x41D95B: cmd_bigqtbuffer_size (tracepoint.c:4061) ==23624== by 0x41DEEC: handle_tracepoint_general_set (tracepoint.c:4193) clear_trace_buffer does: static void clear_trace_buffer (void) { trace_buffer_start = trace_buffer_lo; trace_buffer_free = trace_buffer_lo; trace_buffer_end_free = trace_buffer_hi; trace_buffer_wrap = trace_buffer_hi; /* A traceframe with zeroed fields marks the end of trace data. */ ((struct traceframe *) trace_buffer_free)->tpnum = 0; ((struct traceframe *) trace_buffer_free)->data_size = 0; traceframe_read_count = traceframe_write_count = 0; traceframes_created = 0; } And the tpnum+data_size fields are over 4 bytes... This fixes it by ensuring we allocate space at least for an EOB. We have code elsewhere that relies on the EOB being present (like e.g., find_traceframe), so this seems simplest. gdb/gdbserver/ 2013-09-02 Pedro Alves <palves@redhat.com> * tracepoint.c (TRACEFRAME_EOB_MARKER_SIZE): New macro. (init_trace_buffer): Ensure at least TRACEFRAME_EOB_MARKER_SIZE is allocated. (trace_buffer_alloc): Use TRACEFRAME_EOB_MARKER_SIZE.
* * win32-low.c (child_xfer_memory): Check if ReadProcessMemoryPierre Muller2013-09-021-0/+6
| | | | | or WriteProcessMemory complete successfully and handle ERROR_PARTIAL_COPY error.
* server.c:gdb_read_memory: Fix error return.Pedro Alves2013-09-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | When I added gdb_read_memory, with bits factored out from elsewhere, I missed adjusting this error return. gdb_read_memory has an interface similar to Like GDB's xfer_partial: > /* Read trace frame or inferior memory. Returns the number of bytes > actually read, zero when no further transfer is possible, and -1 on > error. Return of a positive value smaller than LEN does not > indicate there's no more to be read, only the end of the transfer. Returning EIO, a positive value, is obviously bogus, for the caller will confuse it with a successful partial transfer. Found by inspection. Tested on x86_64 Fedora 17. gdb/gdbserver/ 2013-09-02 Pedro Alves <palves@redhat.com> * server.c (gdb_read_memory): Return -1 on traceframe memory read error instead of EIO.
* PR server/15604Jan Kratochvil2013-08-281-0/+12
| | | | | | | | | | | | | | | gdb/gdbserver/ 2013-08-28 Jan Kratochvil <jan.kratochvil@redhat.com> PR server/15604 * linux-low.c: Include filestuff.h. (linux_create_inferior) <pid == 0>: Call close_most_fds. * lynx-low.c: Include filestuff.h. (lynx_create_inferior) <pid == 0>: Call close_most_fds. * server.c: Include filestuff.h. (main): Call notice_open_fds. * spu-low.c: Include filestuff.h. (spu_create_inferior) <pid == 0>: Call close_most_fds.
* Unify ptrace options discovery code and make both GDB andLuis Machado2013-08-221-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gdbserver use it. gdb/ * Makefile.in (HFILES_NO_SRCDIR): Add nat/linux-nat.h and nat/linux-waitpid.h. (linux-waitpid.o): New object file rule. * common/linux-ptrace.c: Include nat/linux-waitpid.h. (current_ptrace_options): Moved from linux-nat.c. (linux_ptrace_test_ret_to_nx): Use type casts for ptrace parameters. (linux_fork_to_function): New function. (linux_grandchild_function): Likewise. (linux_child_function): Likewise. (linux_check_ptrace_features): New function, heavily based on linux-nat.c:linux_test_for_tracefork. (linux_enable_event_reporting): New function. (ptrace_supports_feature): Likewise. (linux_supports_tracefork): Likewise. (linux_supports_traceclone): Likewise. (linux_supports_tracevforkdone): Likewise. (linux_supports_tracesysgood): Likewise. * common/linux-ptrace.h (HAS_NOMMU): Moved from gdbserver/linux-low.c. (linux_enable_event_reporting): New declaration. (linux_supports_tracefork): Likewise. (linux_supports_traceclone): Likewise. (linux_supports_tracevforkdone): Likewise. (linux_supports_tracesysgood): Likewise. * config.in (PTRACE_TYPE_ARG4): Regenerate. * config/aarch64/linux.mh (NATDEPFILES): Add linux-waitpid.o. * config/alpha/alpha-linux.mh (NATDEPFILES): Likewise. * config/arm/linux.mh (NATDEPFILES): Likewise. * config/i386/linux.mh (NATDEPFILES): Likewise. * config/i386/linux64.mh (NATDEPFILES): Likewise. * config/ia64/linux.mh (NATDEPFILES): Likewise. * config/m32r/linux.mh (NATDEPFILES): Likewise. * config/m68k/linux.mh (NATDEPFILES): Likewise. * config/mips/linux.mh (NATDEPFILES): Likewise. * config/pa/linux.mh (NATDEPFILES): Likewise.. * config/powerpc/linux.mh (NATDEPFILES): Likewise.. * config/powerpc/ppc64-linux.mh (NATDEPFILES): Likewise. * config/powerpc/spu-linux.mh (NATDEPFILES): Likewise. * config/sparc/linux.mh (NATDEPFILES): Likewise. * config/sparc/linux64.mh (NATDEPFILES): Likewise. * config/tilegx/linux.mh (NATDEPFILES): Likewise. * config/xtensa/linux.mh (NATDEPFILES): Likewise. * configure.ac (AC_CACHE_CHECK): Add void * to the list of ptrace's 4th argument's types. Check the type of PTRACE_TYPE_ARG4. * configure: Regenerate. * linux-nat.c: Include nat/linux-nat.h and nat/linux-waitpid.h. (SYSCALL_SIGTRAP): Moved to nat/linux-nat.h. (linux_supports_tracefork_flag): Remove. (linux_supports_tracesysgood_flag): Likewise. (linux_supports_tracevforkdone_flag): Likewise. (current_ptrace_options): Moved to common/linux-ptrace.c. (linux_tracefork_child): Remove. (my_waitpid): Remove. (linux_test_for_tracefork): Renamed to linux_check_ptrace_features and moved to common/linux-ptrace.c. (linux_test_for_tracesysgood): Remove. (linux_supports_tracesysgood): Remove. (linux_supports_tracefork): Remove. (linux_supports_tracevforkdone): Remove. (linux_enable_tracesysgood): Remove. (linux_enable_event_reporting): Remove. (linux_init_ptrace): New function. (linux_child_post_attach): Call linux_init_ptrace. (linux_child_post_startup_inferior): Call linux_init_ptrace. (linux_child_follow_fork): Call linux_supports_tracefork and linux_supports_tracevforkdone. (linux_child_insert_fork_catchpoint): Call linux_supports_tracefork. (linux_child_insert_vfork_catchpoint): Likewise. (linux_child_set_syscall_catchpoint): Call linux_supports_tracesysgood. (lin_lwp_attach_lwp): Call linux_supports_tracefork. * nat/linux-nat.h: New file. * nat/linux-waitpid.c: New file. * nat/linux-waitpid.h: New file. gdb/gdbserver/ * Makefile.in: Explain why ../target and ../nat are not listed as include file search paths. (linux-waitpid.o): New object file rule. * configure.srv (srv_native_linux_obj): New variable. Replace all occurrences of linux native object files with $srv_native_linux_obj. * linux-low.c: Include nat/linux-nat.h and nat/linux-waitpid.h. (HAS_NOMMU): Move defining logic to common/linux-ptrace.c. (linux_enable_event_reporting): Remove declaration. (my_waitpid): Moved to common/linux-waitpid.c. (linux_wait_for_event): Pass ptid when calling linux_enable_event_reporting. (linux_supports_tracefork_flag): Remove. (linux_enable_event_reporting): Likewise. (linux_tracefork_grandchild): Remove. (STACK_SIZE): Moved to common/linux-ptrace.c. (linux_tracefork_child): Remove. (linux_test_for_tracefork): Remove. (linux_look_up_symbols): Call linux_supports_traceclone. (initialize_low): Remove call to linux_test_for_tracefork. * linux-low.h (PTRACE_TYPE_ARG3): Move to common/linux-ptrace.h. (PTRACE_TYPE_ARG4): Likewise. Include linux-ptrace.h.
* Renegerate gdbserver/config.in.Pedro Alves2013-08-211-0/+4
| | | | | | | | | | | | | | | | | | | In: gdb/gdbserver/ 2013-07-03 Pedro Alves <palves@redhat.com> * Makefile.in (config.status): Depend on development.sh. * acinclude.m4: Include libmcheck.m4. * configure: Regenerate. I missed regenerating config.in... Tested on x86_64 Fedora 17. gdb/gdbserver/ 2013-08-21 Pedro Alves <palves@redhat.com> * config.in: Renegerate.
* Fix whitespace.Pedro Alves2013-08-211-11/+11
|
* gdb/Luis Machado2013-08-191-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (SFILES): Remove common/target-common.c and add target/waitstatus.c. (HFILES_NO_SRCDIR): Remove common/target-common.h and add target/resume.h, target/wait.h and target/waitstatus.h. (COMMON_OBS): Remove target-common.o and add waitstatus.o. (target-common.o): Remove. (waitstatus.o): New target object file. * common/target-common.c: Move contents to target/waitstatus.c and remove. * common/target-common.h: Move contents to other files and remove. (enum resume_kind: Move to target/resume.h. (TARGET_WNOHANG): Move to target/wait.h. (enum target_waitkind): Move to target/waitstatus.h. (struct target_waitstatus): Likewise. * target.h: Do not include target-common.h and include target/resume.h, target/wait.h and target/waitstatus.h. * target/resume.h: New file. * target/wait.h: New file. * target/waitstatus.h: New file. * target/waitstatus.c: New file. gdb/gdbserver/ * Makefile.in (INCLUDE_CFLAGS): Include -I$(srcdir)/../. (SFILES): Remove $(srcdir)/common/target-common.c and add $(srcdir)/target/waitstatus.c. (OBS): Remove target-common.o and add waitstatus.o. (server_h): Remove $(srcdir)/../common/target-common.h and add $(srcdir)/../target/resume.h, $(srcdir)/../target/wait.h and $(srcdir)/../target/waitstatus.h. (target-common.o): Remove. (waitstatus.o): New target object file. * target.h: Do not include target-common.h and include target/resume.h, target/wait.h and target/waitstatus.h.
* * linux-arm-low.c: Rename all occurrences of PTRACE_ARG3_TYPELuis Machado2013-08-141-0/+10
| | | | | | | | | to PTRACE_TYPE_ARG3. * linux-low.c: Rename all occurrences of PTRACE_ARG3_TYPE to PTRACE_TYPE_ARG3 and PTRACE_ARG4_TYPE to PTRACE_TYPE_ARG4. * linux-low.h (PTRACE_ARG3_TYPE): Rename to PTRACE_TYPE_ARG3. (PTRACE_ARG4_TYPE): Rename to PTRACE_TYPE_ARG4.
* gdb/gdbserver/Yao Qi2013-07-271-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (SFILES): Add common/mips-linux-watch.c. (mips-linux-watch.o): New rule. (mips_linux_watch_h): New variable. * configure.srv <mips*-*-linux*>: Add mips-linux-watch.o to srv_tgtobj. * linux-mips-low.c: Include mips-linux-watch.h. (struct arch_process_info, struct arch_lwp_info): New. (update_watch_registers_callback): New function. (mips_linux_new_process, mips_linux_new_thread) New functions. (mips_linux_prepare_to_resume, mips_insert_point): New functions. (mips_remove_point, mips_stopped_by_watchpoint): New functions. (rsp_bp_type_to_target_hw_bp_type): New function. (mips_stopped_data_address): New function. (the_low_target): Add watchpoint support functions. gdb/ * NEWS: Mention that GDBserver now supports hardware watchpoints on the MIPS GNU/Linux target.
* gdb/Yao Qi2013-07-271-0/+5
| | | | | | | | | | | * breakpoint.h: Include break-common.h. (enum target_hw_bp_type): Move to ... * common/break-common.h: ... here. New. gdb/gdbserver/ * i386-low.c: Include break-common.h. (enum target_hw_bp_type): Remove.
* gdb/Luis Machado2013-07-241-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (SFILES): Add common/target-common.c. Add common/target-common.h to headers. (COMMON_OBS): Add target-common.o. (target-common.o): New target. * linux-nat.h (resume_kind): Move to common/target-common.h. * target.c (target_waitstatus_to_string): Move to common/target-common.c. * target.h: Include target-common.h. (target_waitkind): Move to common/target-common.h. (target_waitstatus): Likewise. (TARGET_WNOHANG): Likewise. * common/target-common.c: New file. * common/target-common.h: New file. gdb/gdbserver/ * Makefile.in (SFILES): /common/target-common.c. (OBS): Add target-common.o. (server_h): Add $(srcdir)/../common/target-common.h. (target-common.o): New target. * server.c (queue_stop_reply_callback): Free status string after use. * target.c (target_waitstatus_to_string): Remove. * target.h: Include target-common.h. (resume_kind): Likewise. (target_waitkind): Likewise. (target_waitstatus): Likewise. (TARGET_WNOHANG): Likewise.