extern void dumpiov(struct tcb *, int, long);
extern void dumpstr(struct tcb *, long, int);
extern void printstr(struct tcb *, long, long);
-extern void printnum_short(struct tcb *, long, const char *)
+extern bool printnum_short(struct tcb *, long, const char *)
ATTRIBUTE_FORMAT((printf, 3, 0));
-extern void printnum_int(struct tcb *, long, const char *)
+extern bool printnum_int(struct tcb *, long, const char *)
ATTRIBUTE_FORMAT((printf, 3, 0));
-extern void printnum_int64(struct tcb *, long, const char *)
+extern bool printnum_int64(struct tcb *, long, const char *)
ATTRIBUTE_FORMAT((printf, 3, 0));
#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
-extern void printnum_long_int(struct tcb *, long, const char *, const char *)
+extern bool printnum_long_int(struct tcb *, long, const char *, const char *)
ATTRIBUTE_FORMAT((printf, 3, 0))
ATTRIBUTE_FORMAT((printf, 4, 0));
# define printnum_slong(tcp, addr) \
printnum_int((tcp), (addr), "%#x")
#endif
-extern void printpair_int(struct tcb *, long, const char *)
+extern bool printpair_int(struct tcb *, long, const char *)
ATTRIBUTE_FORMAT((printf, 3, 0));
-extern void printpair_int64(struct tcb *, long, const char *)
+extern bool printpair_int64(struct tcb *, long, const char *)
ATTRIBUTE_FORMAT((printf, 3, 0));
extern void printpath(struct tcb *, long);
extern void printpathn(struct tcb *, long, unsigned int);
}
#define DEF_PRINTNUM(name, type) \
-void \
+bool \
printnum_ ## name(struct tcb *tcp, const long addr, const char *fmt) \
{ \
type num; \
- if (!umove_or_printaddr(tcp, addr, &num)) { \
- tprints("["); \
- tprintf(fmt, num); \
- tprints("]"); \
- } \
+ if (umove_or_printaddr(tcp, addr, &num)) \
+ return false; \
+ tprints("["); \
+ tprintf(fmt, num); \
+ tprints("]"); \
+ return true; \
}
#define DEF_PRINTPAIR(name, type) \
-void \
+bool \
printpair_ ## name(struct tcb *tcp, const long addr, const char *fmt) \
{ \
type pair[2]; \
- if (!umove_or_printaddr(tcp, addr, &pair)) { \
- tprints("["); \
- tprintf(fmt, pair[0]); \
- tprints(", "); \
- tprintf(fmt, pair[1]); \
- tprints("]"); \
- } \
+ if (umove_or_printaddr(tcp, addr, &pair)) \
+ return false; \
+ tprints("["); \
+ tprintf(fmt, pair[0]); \
+ tprints(", "); \
+ tprintf(fmt, pair[1]); \
+ tprints("]"); \
+ return true; \
}
DEF_PRINTNUM(int, int)
DEF_PRINTPAIR(int64, uint64_t)
#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
-void
+bool
printnum_long_int(struct tcb *tcp, const long addr,
const char *fmt_long, const char *fmt_int)
{
if (current_wordsize > sizeof(int)) {
- printnum_int64(tcp, addr, fmt_long);
+ return printnum_int64(tcp, addr, fmt_long);
} else {
- printnum_int(tcp, addr, fmt_int);
+ return printnum_int(tcp, addr, fmt_int);
}
}
#endif