diff options
| author | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-06-10 13:44:25 +0200 |
|---|---|---|
| committer | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-06-17 13:00:06 +0200 |
| commit | d07b36b6bb898666c313b6d3708aee82d5b80550 (patch) | |
| tree | 9269600e3acb59f712daa2530b10c1cb7617e24a /src/args.c | |
| parent | 73ae529a915c6445d5cf0a43f8cba140d7d79e83 (diff) | |
| download | latrace-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.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -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, "\""); } |
