diff options
author | Steve Fink <sphink@gmail.com> | 2006-08-07 04:50:42 +0200 |
---|---|---|
committer | Ian Wienand <ianw@debian.org> | 2006-08-07 04:50:42 +0200 |
commit | 7bafff09cc66e23519512a54e2d1ebd3664a1a70 (patch) | |
tree | 6c87264dc143e999528de2caa54f1ad35b9a7e50 /ltrace.h | |
parent | 6b17583208a9297a2e2054422399ec3265e38f8b (diff) | |
download | ltrace-7bafff09cc66e23519512a54e2d1ebd3664a1a70.tar.gz |
pass values instead of argument numbers to fetch
Diffstat (limited to 'ltrace.h')
-rw-r--r-- | ltrace.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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 *); |