]> granicus.if.org Git - strace/blobdiff - defs.h
tests: add a test for -yy option
[strace] / defs.h
diff --git a/defs.h b/defs.h
index 825fc797d6de11e2741c0b95dddee4b8d36af68a..cd9817b84d0cac1a5803099dea4d5d6e0f8c10e5 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -414,7 +414,7 @@ struct tcb {
 #endif
        long u_rval;            /* Return value */
 #if SUPPORTED_PERSONALITIES > 1
-       int currpers;           /* Personality at the time of scno update */
+       unsigned int currpers;  /* Personality at the time of scno update */
 #endif
        int curcol;             /* Output column for this process */
        FILE *outf;             /* Output file for this process */
@@ -430,6 +430,8 @@ struct tcb {
        struct UPT_info* libunwind_ui;
        struct mmap_cache_t* mmap_cache;
        unsigned int mmap_cache_size;
+       unsigned int mmap_cache_generation;
+       struct queue_t* queue;
 #endif
 };
 
@@ -506,7 +508,7 @@ typedef uint8_t qualbits_t;
 #define filtered(tcp)  ((tcp)->flags & TCB_FILTERED)
 
 struct xlat {
-       int val;
+       unsigned int val;
        const char *str;
 };
 #define XLAT(x) { x, #x }
@@ -531,10 +533,11 @@ extern const struct xlat whence_codes[];
 # endif
 # define RVAL_LUDECIMAL        007     /* long unsigned decimal format */
 #endif
-#define RVAL_MASK      007     /* mask for these values */
+#define RVAL_FD                010     /* file descriptor */
+#define RVAL_MASK      017     /* mask for these values */
 
-#define RVAL_STR       010     /* Print `auxstr' field after return val */
-#define RVAL_NONE      020     /* Print nothing */
+#define RVAL_STR       020     /* Print `auxstr' field after return val */
+#define RVAL_NONE      040     /* Print nothing */
 
 #define TRACE_FILE     001     /* Trace file-related syscalls. */
 #define TRACE_IPC      002     /* Trace IPC-related syscalls. */
@@ -544,6 +547,8 @@ extern const struct xlat whence_codes[];
 #define TRACE_DESC     040     /* Trace file descriptor-related syscalls. */
 #define TRACE_MEMORY   0100    /* Trace memory mapping-related syscalls. */
 #define SYSCALL_NEVER_FAILS    0200    /* Syscall is always successful. */
+#define STACKTRACE_INVALIDATE_CACHE 0400  /* Trigger proc/maps cache updating */
+#define STACKTRACE_CAPTURE_ON_ENTER 01000 /* Capture stacktrace on "entering" stage */
 
 typedef enum {
        CFLAG_NONE = 0,
@@ -557,7 +562,7 @@ extern bool iflag;
 extern bool count_wallclock;
 extern unsigned int qflag;
 extern bool not_failing_only;
-extern bool show_fd_path;
+extern unsigned int show_fd_path;
 extern bool hide_log_until_execve;
 /* are we filtering traces based on paths? */
 extern const char **paths_selected;
@@ -637,12 +642,13 @@ extern long getrval2(struct tcb *);
 extern int setbpt(struct tcb *);
 extern int clearbpt(struct tcb *);
 
-extern const char *signame(int);
+extern const char *signame(const int);
 extern void pathtrace_select(const char *);
 extern int pathtrace_match(struct tcb *);
 extern int getfdpath(struct tcb *, int, char *, unsigned);
 
-extern const char *xlookup(const struct xlat *, int);
+extern const char *xlookup(const struct xlat *, const unsigned int);
+extern const char *xlat_search(const struct xlat *, const size_t, const unsigned int);
 
 extern int string_to_uint(const char *str);
 extern int string_quote(const char *, char *, long, int);
@@ -658,13 +664,9 @@ extern int next_set_bit(const void *bit_array, unsigned cur_bit, unsigned size_b
 # define LONG_LONG(a,b) \
        ((long long)((unsigned long long)(unsigned)(b) | ((unsigned long long)(a)<<32)))
 #endif
-extern int printllval(struct tcb *, const char *, int, bool);
-#define printllval_aligned(tcp, fmt, arg)      \
-       printllval((tcp), (fmt), (arg), true)
-#define printllval_unaligned(tcp, fmt, arg)    \
-       printllval((tcp), (fmt), (arg), false)
+extern int printllval(struct tcb *, const char *, int);
 
-extern void printxval(const struct xlat *, int, const char *);
+extern void printxval(const struct xlat *, const unsigned int, const char *);
 extern int printargs(struct tcb *);
 extern int printargs_lu(struct tcb *);
 extern int printargs_ld(struct tcb *);
@@ -677,7 +679,7 @@ extern void printstr(struct tcb *, long, long);
 extern void printnum(struct tcb *, long, const char *);
 extern void printnum_int(struct tcb *, long, const char *);
 extern void printpath(struct tcb *, long);
-extern void printpathn(struct tcb *, long, int);
+extern void printpathn(struct tcb *, long, unsigned int);
 #define TIMESPEC_TEXT_BUFSIZE (sizeof(long)*3 * 2 + sizeof("{%u, %u}"))
 #define TIMEVAL_TEXT_BUFSIZE  TIMESPEC_TEXT_BUFSIZE
 extern void printtv_bitness(struct tcb *, long, enum bitness_t, int);
@@ -693,6 +695,7 @@ extern void printsiginfo(siginfo_t *, int);
 extern void printsiginfo_at(struct tcb *tcp, long addr);
 #endif
 extern void printfd(struct tcb *, int);
+extern bool print_sockaddr_by_inode(const unsigned long);
 extern void print_dirfd(struct tcb *, int);
 extern void printsock(struct tcb *, long, int);
 extern void print_sock_optmgmt(struct tcb *, long, int);
@@ -709,7 +712,7 @@ extern void tprint_open_modes(mode_t);
 extern const char *sprint_open_modes(mode_t);
 extern void print_loff_t(struct tcb *, long);
 
-extern const struct_ioctlent *ioctl_lookup(long);
+extern const struct_ioctlent *ioctl_lookup(unsigned long);
 extern const struct_ioctlent *ioctl_next_match(const struct_ioctlent *);
 extern int ioctl_decode(struct tcb *, long, long);
 extern int term_ioctl(struct tcb *, long, long);
@@ -732,12 +735,12 @@ extern void tv_mul(struct timeval *, const struct timeval *, int);
 extern void tv_div(struct timeval *, const struct timeval *, int);
 
 #ifdef USE_LIBUNWIND
-extern void init_unwind_addr_space(void);
-extern void init_libunwind_ui(struct tcb *tcp);
-extern void free_libunwind_ui(struct tcb *tcp);
-extern void alloc_mmap_cache(struct tcb* tcp);
-extern void delete_mmap_cache(struct tcb* tcp);
-extern void print_stacktrace(struct tcb* tcp);
+extern void unwind_init(void);
+extern void unwind_tcb_init(struct tcb *tcp);
+extern void unwind_tcb_fin(struct tcb *tcp);
+extern void unwind_cache_invalidate(struct tcb* tcp);
+extern void unwind_print_stacktrace(struct tcb* tcp);
+extern void unwind_capture_stacktrace(struct tcb* tcp);
 #endif
 
 /* Strace log generation machinery.