* defs.h (QUAL_READ, QUAL_WRITE): Change description.
(traced, raw, inject, dump_read, dump_write): Add macros for checking
QUAL_TRACE, QUAL_RAW, QUAL_INJECT, QUAL_READ, QUAL_WRITE.
* syscall.c (syscall_entering_trace, syscall_exiting_trace): Use new macros.
---
 defs.h    |  9 +++++++--
 syscall.c | 13 +++++--------
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/defs.h b/defs.h
index 92cde26e..87f831f1 100644
--- a/defs.h
+++ b/defs.h
@@ -254,16 +254,21 @@ struct tcb {
 #define QUAL_RAW       0x008   /* print all args in hex for this syscall */
 #define QUAL_INJECT    0x010   /* tamper with this system call on purpose */
 #define QUAL_SIGNAL    0x100   /* report events with this signal */
-#define QUAL_READ      0x200   /* dump data read from this file descriptor */
-#define QUAL_WRITE     0x400   /* dump data written to this file descriptor */
+#define QUAL_READ      0x200   /* dump data read in this syscall */
+#define QUAL_WRITE     0x400   /* dump data written in this syscall */
 
 #define DEFAULT_QUAL_FLAGS (QUAL_TRACE | QUAL_ABBREV | QUAL_VERBOSE)
 
 #define entering(tcp)  (!((tcp)->flags & TCB_INSYSCALL))
 #define exiting(tcp)   ((tcp)->flags & TCB_INSYSCALL)
 #define syserror(tcp)  ((tcp)->u_error != 0)
+#define traced(tcp)    ((tcp)->qual_flg & QUAL_TRACE)
 #define verbose(tcp)   ((tcp)->qual_flg & QUAL_VERBOSE)
 #define abbrev(tcp)    ((tcp)->qual_flg & QUAL_ABBREV)
+#define raw(tcp)       ((tcp)->qual_flg & QUAL_RAW)
+#define inject(tcp)    ((tcp)->qual_flg & QUAL_INJECT)
+#define dump_read(tcp) ((tcp)->qual_flg & QUAL_READ)
+#define dump_write(tcp)        ((tcp)->qual_flg & QUAL_WRITE)
 #define filtered(tcp)  ((tcp)->flags & TCB_FILTERED)
 #define hide_log(tcp)  ((tcp)->flags & TCB_HIDE_LOG)
 
diff --git a/syscall.c b/syscall.c
index d5aeabf0..6b1d2dcd 100644
--- a/syscall.c
+++ b/syscall.c
@@ -681,9 +681,7 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig)
                        break;
        }
 
-       if (!(tcp->qual_flg & QUAL_TRACE)
-        || (tracing_paths && !pathtrace_match(tcp))
-       ) {
+       if (!traced(tcp) || (tracing_paths && !pathtrace_match(tcp))) {
                tcp->flags |= TCB_FILTERED;
                return 0;
        }
@@ -694,7 +692,7 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig)
                return 0;
        }
 
-       if (tcp->qual_flg & QUAL_INJECT)
+       if (inject(tcp))
                tamper_with_syscall_entering(tcp, sig);
 
        if (cflag == CFLAG_ONLY_STATS) {
@@ -710,8 +708,7 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig)
 
        printleader(tcp);
        tprintf("%s(", tcp->s_ent->sys_name);
-       int res = (tcp->qual_flg & QUAL_RAW)
-               ? printargs(tcp) : tcp->s_ent->sys_func(tcp);
+       int res = raw(tcp) ? printargs(tcp) : tcp->s_ent->sys_func(tcp);
        fflush(tcp->outf);
        return res;
 }
@@ -805,7 +802,7 @@ syscall_exiting_trace(struct tcb *tcp, struct timeval tv, 
int res)
        tcp->s_prev_ent = tcp->s_ent;
 
        int sys_res = 0;
-       if (tcp->qual_flg & QUAL_RAW) {
+       if (raw(tcp)) {
                /* sys_res = printargs(tcp); - but it's nop on sysexit */
        } else {
        /* FIXME: not_failing_only (IOW, option -z) is broken:
@@ -828,7 +825,7 @@ syscall_exiting_trace(struct tcb *tcp, struct timeval tv, 
int res)
        tabto();
        unsigned long u_error = tcp->u_error;
 
-       if (tcp->qual_flg & QUAL_RAW) {
+       if (raw(tcp)) {
                if (u_error) {
                        tprintf("= -1 (errno %lu)", u_error);
                } else {
-- 
2.11.0


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to