#include "vec.h"
#include "gdb_signals.h"
#include "btrace.h"
+#include "command.h"
enum strata
{
TARGET_OBJECT_LIBRARIES,
/* Currently loaded libraries specific for SVR4 systems, in XML format. */
TARGET_OBJECT_LIBRARIES_SVR4,
+ /* Currently loaded libraries specific to AIX systems, in XML format. */
+ TARGET_OBJECT_LIBRARIES_AIX,
/* Get OS specific data. The ANNEX specifies the type (running
processes, etc.). The data being transfered is expected to follow
the DTD specified in features/osdata.dtd. */
/* Old targets with a static target vector provide "to_close".
New re-entrant targets provide "to_xclose" and that is expected
to xfree everything (including the "struct target_ops"). */
- void (*to_xclose) (struct target_ops *targ, int quitting);
- void (*to_close) (int);
+ void (*to_xclose) (struct target_ops *targ);
+ void (*to_close) (void);
void (*to_attach) (struct target_ops *ops, char *, int);
void (*to_post_attach) (int);
void (*to_detach) (struct target_ops *ops, char *, int);
void (*to_terminal_ours_for_output) (void);
void (*to_terminal_ours) (void);
void (*to_terminal_save_ours) (void);
- void (*to_terminal_info) (char *, int);
+ void (*to_terminal_info) (const char *, int);
void (*to_kill) (struct target_ops *);
void (*to_load) (char *, int);
void (*to_create_inferior) (struct target_ops *,
TPP. If no trace frame matches, return -1. May throw if the
operation fails. */
int (*to_trace_find) (enum trace_find_type type, int num,
- ULONGEST addr1, ULONGEST addr2, int *tpp);
+ CORE_ADDR addr1, CORE_ADDR addr2, int *tpp);
/* Get the value of the trace state variable number TSV, returning
1 if the value is known and writing the value itself into the
/* Add/change textual notes about the trace run, returning 1 if
successful, 0 otherwise. */
- int (*to_set_trace_notes) (char *user, char *notes, char* stopnotes);
+ int (*to_set_trace_notes) (const char *user, const char *notes,
+ const char *stopnotes);
/* Return the processor core that thread PTID was last seen on.
This information is updated only when:
void (*to_info_record) (void);
/* Save the recorded execution trace into a file. */
- void (*to_save_record) (char *filename);
+ void (*to_save_record) (const char *filename);
/* Delete the recorded execution trace from the current position onwards. */
void (*to_delete_record) (void);
BEGIN (inclusive) to instruction END (exclusive). */
void (*to_insn_history_range) (ULONGEST begin, ULONGEST end, int flags);
+ /* Print a function trace of the recorded execution trace.
+ If SIZE < 0, print abs (SIZE) preceding functions; otherwise, print SIZE
+ succeeding functions. */
+ void (*to_call_history) (int size, int flags);
+
+ /* Print a function trace of the recorded execution trace starting
+ at function FROM.
+ If SIZE < 0, print abs (SIZE) functions before FROM; otherwise, print
+ SIZE functions after FROM. */
+ void (*to_call_history_from) (ULONGEST begin, int size, int flags);
+
+ /* Print a function trace of an execution trace section from function BEGIN
+ (inclusive) to function END (exclusive). */
+ void (*to_call_history_range) (ULONGEST begin, ULONGEST end, int flags);
+
int to_magic;
/* Need sub-structure for target machine related rather than comm related?
*/
#define target_longname (current_target.to_longname)
/* Does whatever cleanup is required for a target that we are no
- longer going to be calling. QUITTING indicates that GDB is exiting
- and should not get hung on an error (otherwise it is important to
- perform clean termination, even if it takes a while). This routine
- is automatically always called after popping the target off the
- target stack - the target's own methods are no longer available
- through the target vector. Closing file descriptors and freeing all
- memory allocated memory are typical things it should do. */
+ longer going to be calling. This routine is automatically always
+ called after popping the target off the target stack - the target's
+ own methods are no longer available through the target vector.
+ Closing file descriptors and freeing all memory allocated memory are
+ typical things it should do. */
-void target_close (struct target_ops *targ, int quitting);
+void target_close (struct target_ops *targ);
/* Attaches to a process on the target side. Arguments are as passed
to the `attach' command by the user. This routine can be called
extern void add_target (struct target_ops *);
+extern void add_target_with_completer (struct target_ops *t,
+ completer_ftype *completer);
+
/* Adds a command ALIAS for target T and marks it deprecated. This is useful
for maintaining backwards compatibility when renaming targets. */
extern void pop_target (void);
-/* Does whatever cleanup is required to get rid of all pushed targets.
- QUITTING is propagated to target_close; it indicates that GDB is
- exiting and should not get hung on an error (otherwise it is
- important to perform clean termination, even if it takes a
- while). */
-extern void pop_all_targets (int quitting);
+/* Does whatever cleanup is required to get rid of all pushed targets. */
+extern void pop_all_targets (void);
/* Like pop_all_targets, but pops only targets whose stratum is
strictly above ABOVE_STRATUM. */
-extern void pop_all_targets_above (enum strata above_stratum, int quitting);
+extern void pop_all_targets_above (enum strata above_stratum);
extern int target_is_pushed (struct target_ops *t);
extern void target_info_record (void);
/* See to_save_record in struct target_ops. */
-extern void target_save_record (char *filename);
+extern void target_save_record (const char *filename);
/* Query if the target supports deleting the execution log. */
extern int target_supports_delete_record (void);
/* See to_insn_history_range. */
extern void target_insn_history_range (ULONGEST begin, ULONGEST end, int flags);
+/* See to_call_history. */
+extern void target_call_history (int size, int flags);
+
+/* See to_call_history_from. */
+extern void target_call_history_from (ULONGEST begin, int size, int flags);
+
+/* See to_call_history_range. */
+extern void target_call_history_range (ULONGEST begin, ULONGEST end, int flags);
+
#endif /* !defined (TARGET_H) */