aboutsummaryrefslogtreecommitdiff
path: root/ltrace.h
diff options
context:
space:
mode:
authorSteve Fink <sphink@gmail.com>2006-08-07 04:50:42 +0200
committerIan Wienand <ianw@debian.org>2006-08-07 04:50:42 +0200
commit7bafff09cc66e23519512a54e2d1ebd3664a1a70 (patch)
tree6c87264dc143e999528de2caa54f1ad35b9a7e50 /ltrace.h
parent6b17583208a9297a2e2054422399ec3265e38f8b (diff)
downloadltrace-7bafff09cc66e23519512a54e2d1ebd3664a1a70.tar.gz
pass values instead of argument numbers to fetch
Diffstat (limited to 'ltrace.h')
-rw-r--r--ltrace.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/ltrace.h b/ltrace.h
index d030ce8..e649bb1 100644
--- a/ltrace.h
+++ b/ltrace.h
@@ -43,6 +43,7 @@ enum arg_type {
ARGTYPE_STRING, /* NUL-terminated string */
ARGTYPE_STRING_N, /* String of known maxlen */
ARGTYPE_IGNORE, /* Leave parameter blank */
+ ARGTYPE_POINTER, /* Pointer to some other type */
ARGTYPE_COUNT /* number of ARGTYPE_* values */
};
@@ -53,6 +54,11 @@ typedef struct arg_type_info_t {
struct {
int size_spec;
} string_n_info;
+
+ // ARGTYPE_POINTER
+ struct {
+ struct arg_type_info_t *info;
+ } ptr_info;
} u;
} arg_type_info;
@@ -206,6 +212,7 @@ extern void continue_enabling_breakpoint(pid_t pid, struct breakpoint *sbp);
extern long gimme_arg(enum tof type, struct process *proc, int arg_num);
extern void save_register_args(enum tof type, struct process *proc);
extern int umovestr(struct process *proc, void *addr, int len, void *laddr);
+extern int umovelong(struct process *proc, void *addr, long *result);
extern int ffcheck(void *maddr);
extern void *sym2addr(struct process *, struct library_symbol *);