summaryrefslogtreecommitdiffstats
path: root/src/args.c
diff options
context:
space:
mode:
authorJiri Olsa <Jiri Olsa jolsa@redhat.com>2011-06-10 13:44:25 +0200
committerJiri Olsa <Jiri Olsa jolsa@redhat.com>2011-06-17 13:00:06 +0200
commitd07b36b6bb898666c313b6d3708aee82d5b80550 (patch)
tree9269600e3acb59f712daa2530b10c1cb7617e24a /src/args.c
parent73ae529a915c6445d5cf0a43f8cba140d7d79e83 (diff)
downloadlatrace-d07b36b6bb898666c313b6d3708aee82d5b80550.tar.gz
latrace-d07b36b6bb898666c313b6d3708aee82d5b80550.tar.xz
latrace-d07b36b6bb898666c313b6d3708aee82d5b80550.zip
args: Aadd support to display string pointer and length
Add ARGS_STRING_POINTER_LENGTH option. It allows to display pointer value and string length for "char *" arguments.
Diffstat (limited to 'src/args.c')
-rw-r--r--src/args.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/args.c b/src/args.c
index 7c6def8..94bf150 100644
--- a/src/args.c
+++ b/src/args.c
@@ -838,12 +838,18 @@ do { \
char *s = val;
int slen = strlen(s);
int left = alen;
+ int info_len = 0;
+
+ if (lt_sh(cfg, args_string_pointer_length)) {
+ info_len = snprintf(argbuf, left, "(%p, %lu) ", s, strlen(s));
+ left -= info_len;
+ }
if ((slen + 2) > left) {
- snprintf(argbuf, left, "\"%s", s);
+ snprintf(argbuf + info_len, left, "\"%s", s);
strncpy(argbuf + left - sizeof("...\"") + 1, "...\"", sizeof("...\""));
} else {
- strcpy(argbuf, "\"");
+ strcpy(argbuf + info_len, "\"");
strcat(argbuf, s);
strcat(argbuf, "\"");
}