57810aa7e8
After the previous target_ops/C++ patches are all squashed and merged, this one can go in separately. This patch adjusts all the target methods to return bool instead of int when they're returning a boolean. gdb/ChangeLog: 2018-05-02 Pedro Alves <palves@redhat.com> * target.h (target_ops) <stopped_by_sw_breakpoint, supports_stopped_by_sw_breakpoint, stopped_by_hw_breakpoint, supports_stopped_by_hw_breakpoint, stopped_by_watchpoint, have_continuable_watchpoint, stopped_data_address, watchpoint_addr_within_range, can_accel_watchpoint_condition, can_run, thread_alive, has_all_memory, has_memory, has_stack, has_registers, has_execution, can_async_p, is_async_p, supports_non_stop, always_non_stop_p, can_execute_reverse, supports_multi_process, supports_enable_disable_tracepoint, supports_disable_randomization, supports_string_tracing, supports_evaluation_of_breakpoint_conditions, can_run_breakpoint_commands, filesystem_is_local, can_download_tracepoint, get_trace_state_variable_value, set_trace_notes, get_tib_address, use_agent, can_use_agent, record_is_replaying, record_will_replay, augmented_libraries_svr4_read>: Adjust to return bool. * aarch64-linux-nat.c: All implementations adjusted. * aix-thread.c: All implementations adjusted. * arm-linux-nat.c: All implementations adjusted. * breakpoint.c: All implementations adjusted. * bsd-kvm.c: All implementations adjusted. * bsd-uthread.c: All implementations adjusted. * corelow.c: All implementations adjusted. * ctf.c: All implementations adjusted. * darwin-nat.c: All implementations adjusted. * darwin-nat.h: All implementations adjusted. * exec.c: All implementations adjusted. * fbsd-nat.c: All implementations adjusted. * fbsd-nat.h: All implementations adjusted. * gnu-nat.c: All implementations adjusted. * gnu-nat.h: All implementations adjusted. * go32-nat.c: All implementations adjusted. * ia64-linux-nat.c: All implementations adjusted. * inf-child.c: All implementations adjusted. * inf-child.h: All implementations adjusted. * inf-ptrace.c: All implementations adjusted. * inf-ptrace.h: All implementations adjusted. * linux-nat.c: All implementations adjusted. * linux-nat.h: All implementations adjusted. * mips-linux-nat.c: All implementations adjusted. * nto-procfs.c: All implementations adjusted. * ppc-linux-nat.c: All implementations adjusted. * procfs.c: All implementations adjusted. * ravenscar-thread.c: All implementations adjusted. * record-btrace.c: All implementations adjusted. * record-full.c: All implementations adjusted. * remote-sim.c: All implementations adjusted. * remote.c: All implementations adjusted. * s390-linux-nat.c: All implementations adjusted. * sol-thread.c: All implementations adjusted. * spu-multiarch.c: All implementations adjusted. * target-delegates.c: All implementations adjusted. * target.c: All implementations adjusted. * target.h: All implementations adjusted. * tracefile-tfile.c: All implementations adjusted. * tracefile.c: All implementations adjusted. * tracefile.h: All implementations adjusted. * windows-nat.c: All implementations adjusted. * x86-linux-nat.h: All implementations adjusted. * x86-nat.h: All implementations adjusted.
87 lines
2.4 KiB
C++
87 lines
2.4 KiB
C++
/* Low level child interface to ptrace.
|
|
|
|
Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef INF_PTRACE_H
|
|
#define INF_PTRACE_H
|
|
|
|
#include "inf-child.h"
|
|
|
|
/* An abstract prototype ptrace target. The client can override it
|
|
with local methods. */
|
|
|
|
struct inf_ptrace_target : public inf_child_target
|
|
{
|
|
~inf_ptrace_target () override = 0;
|
|
|
|
void attach (const char *, int) override;
|
|
|
|
void detach (inferior *inf, int) override;
|
|
|
|
void resume (ptid_t, int, enum gdb_signal) override;
|
|
|
|
ptid_t wait (ptid_t, struct target_waitstatus *, int) override;
|
|
|
|
void files_info () override;
|
|
|
|
void kill () override;
|
|
|
|
void create_inferior (const char *, const std::string &,
|
|
char **, int) override;
|
|
#ifdef PT_GET_PROCESS_STATE
|
|
int follow_fork (int, int) override;
|
|
|
|
int insert_fork_catchpoint (int) override;
|
|
|
|
int remove_fork_catchpoint (int) override;
|
|
|
|
void post_startup_inferior (ptid_t) override;
|
|
|
|
void post_attach (int) override;
|
|
#endif
|
|
|
|
void mourn_inferior () override;
|
|
|
|
bool thread_alive (ptid_t ptid) override;
|
|
|
|
const char *pid_to_str (ptid_t) override;
|
|
|
|
enum target_xfer_status xfer_partial (enum target_object object,
|
|
const char *annex,
|
|
gdb_byte *readbuf,
|
|
const gdb_byte *writebuf,
|
|
ULONGEST offset, ULONGEST len,
|
|
ULONGEST *xfered_len) override;
|
|
|
|
#if defined (PT_IO) && defined (PIOD_READ_AUXV)
|
|
int auxv_parse (gdb_byte **readptr,
|
|
gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp) override;
|
|
#endif
|
|
|
|
protected:
|
|
/* Cleanup the inferior after a successful ptrace detach. */
|
|
void detach_success (inferior *inf);
|
|
};
|
|
|
|
/* Return which PID to pass to ptrace in order to observe/control the
|
|
tracee identified by PTID. */
|
|
|
|
extern pid_t get_ptrace_pid (ptid_t);
|
|
|
|
#endif
|