summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2022-08-24 17:49:01 +0200
committerEugene Syromyatnikov <evgsyr@gmail.com>2022-09-02 17:55:13 +0200
commite5d23b8543b84c9e7c88034c7cc5520c6fa11731 (patch)
treea40db1aca3979b792b2c13fd1b59286e5a8faa87
parentafc206975500e0c7ddac9df5d05513e4f4d194c0 (diff)
downloadstrace-e5d23b8543b84c9e7c88034c7cc5520c6fa11731.tar.gz
src: introduce tprint_plus helper
-rw-r--r--src/bpf_sock_filter.c6
-rw-r--r--src/kd_ioctl.c13
-rw-r--r--src/print_fields.h6
-rw-r--r--src/ptrace.c10
-rw-r--r--src/sockaddr.c6
-rw-r--r--tests/net-sockaddr.c4
6 files changed, 28 insertions, 17 deletions
diff --git a/src/bpf_sock_filter.c b/src/bpf_sock_filter.c
index f0b51b345..01d7ec96e 100644
--- a/src/bpf_sock_filter.c
+++ b/src/bpf_sock_filter.c
@@ -24,18 +24,18 @@ print_sock_filter_k(const struct bpf_filter_block *const fp)
if (BPF_CLASS(fp->code) == BPF_LD && BPF_MODE(fp->code) == BPF_ABS) {
if (fp->k >= (unsigned int) SKF_AD_OFF) {
print_xlat32(SKF_AD_OFF);
- tprints("+");
+ tprint_plus();
printxval(skf_ad, fp->k - (unsigned int) SKF_AD_OFF,
"SKF_AD_???");
return true;
} else if (fp->k >= (unsigned int) SKF_NET_OFF) {
print_xlat32(SKF_NET_OFF);
- tprints("+");
+ tprint_plus();
PRINT_VAL_U(fp->k - (unsigned int) SKF_NET_OFF);
return true;
} else if (fp->k >= (unsigned int) SKF_LL_OFF) {
print_xlat32(SKF_LL_OFF);
- tprints("+");
+ tprint_plus();
PRINT_VAL_U(fp->k - (unsigned int) SKF_LL_OFF);
return true;
}
diff --git a/src/kd_ioctl.c b/src/kd_ioctl.c
index 4b4e28ae8..e390037e7 100644
--- a/src/kd_ioctl.c
+++ b/src/kd_ioctl.c
@@ -257,10 +257,15 @@ print_scrmap_array_member(struct tcb *tcp, void *elem_buf,
if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW)
return true;
- if ((val & ~UNI_DIRECT_MASK) == UNI_DIRECT_BASE)
- (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE
- ? tprintf_comment : tprintf)("UNI_DIRECT_BASE+%#hx",
- val & UNI_DIRECT_MASK);
+ if ((val & ~UNI_DIRECT_MASK) == UNI_DIRECT_BASE) {
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
+ tprint_comment_begin();
+ print_xlat_abbrev(UNI_DIRECT_BASE);
+ tprint_plus();
+ PRINT_VAL_X(val & UNI_DIRECT_MASK);
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
+ tprint_comment_end();
+ }
return true;
}
diff --git a/src/print_fields.h b/src/print_fields.h
index 3ae042eab..8a7ba50a3 100644
--- a/src/print_fields.h
+++ b/src/print_fields.h
@@ -205,6 +205,12 @@ tprint_or(void)
}
static inline void
+tprint_plus(void)
+{
+ STRACE_PRINTS("+");
+}
+
+static inline void
tprints_field_name(const char *name)
{
STRACE_PRINTF("%s=", name);
diff --git a/src/ptrace.c b/src/ptrace.c
index 2115ccbfd..8f5245530 100644
--- a/src/ptrace.c
+++ b/src/ptrace.c
@@ -73,11 +73,11 @@ print_user_offset_addr(const kernel_ulong_t addr)
if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
tprint_comment_begin();
- if (base_addr == addr)
- tprints(str);
- else
- tprintf("%s + %" PRI_klu,
- str, addr - (kernel_ulong_t) base_addr);
+ print_xlat_ex(addr, str, XLAT_STYLE_ABBREV);
+ if (base_addr > addr) {
+ tprint_plus();
+ PRINT_VAL_U(addr - (kernel_ulong_t) base_addr);
+ }
if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
tprint_comment_end();
diff --git a/src/sockaddr.c b/src/sockaddr.c
index 9139da1cd..55c9486bd 100644
--- a/src/sockaddr.c
+++ b/src/sockaddr.c
@@ -621,11 +621,11 @@ print_bluetooth_l2_psm(uint16_t psm)
} else if (psm_he >= L2CAP_PSM_LE_DYN_START
&& psm_he <= L2CAP_PSM_LE_DYN_END) {
print_xlat(L2CAP_PSM_LE_DYN_START);
- tprints(" + ");
+ tprint_plus();
PRINT_VAL_U(psm_he - L2CAP_PSM_LE_DYN_START);
} else if (psm_he >= L2CAP_PSM_DYN_START) {
print_xlat(L2CAP_PSM_DYN_START);
- tprints(" + ");
+ tprint_plus();
PRINT_VAL_U(psm_he - L2CAP_PSM_DYN_START);
} else {
tprints("L2CAP_PSM_???");
@@ -660,7 +660,7 @@ print_bluetooth_l2_cid(uint16_t cid)
tprints(cid_name);
} else if (cid_he >= L2CAP_CID_DYN_START) {
print_xlat(L2CAP_CID_DYN_START);
- tprints(" + ");
+ tprint_plus();
PRINT_VAL_U(cid_he - L2CAP_CID_DYN_START);
} else {
tprints("L2CAP_CID_???");
diff --git a/tests/net-sockaddr.c b/tests/net-sockaddr.c
index 3dde22a39..c56bad3c1 100644
--- a/tests/net-sockaddr.c
+++ b/tests/net-sockaddr.c
@@ -691,9 +691,9 @@ check_l2(void)
int ret = connect(-1, l2, len);
pidns_print_leader();
printf("connect(-1, {sa_family=AF_BLUETOOTH"
- ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
+ ", l2_psm=htobs(L2CAP_PSM_DYN_START+%hu)"
", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
- ", l2_cid=htobs(L2CAP_CID_DYN_START + %hu)"
+ ", l2_cid=htobs(L2CAP_CID_DYN_START+%hu)"
# ifdef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
", l2_bdaddr_type=0xce /* BDADDR_??? */"
# endif