Many of the probes in DT_Logger print the arguments, context, and return values of system calls. The code that prints the context and return values tends to be the same, so the only real difference is in the number and type of arguments being printed. If I could find a way to use the same code for most argument types, I could fold a lot of probes together, saving quite a bit of space in the kernel. Currently, my argument-printing code looks vaguely like this: /* bar(int a_num, char *a_str); */ printf("a_num=%d\n", self->arg0); this->str = copyinstr(self->arg1); this->len = strlen(this->str); printf("a_str=%d''%s''\n", this->len, this->str); yielding output (for the argument vector) of the form: av={ a_num=42 a_str=3''foo'' } Although I like the fact that the argument names are printed and that numbers are distinguishable from strings, these are both niceties. I would be quite willing to have the output look like this: av={ a0=2''42'' a1=3''foo'' } if this allowed me to handle all two-argument system calls with the same probe. However, looking at the docs, I don''t see any way to do this. Am I missing something? That is, is there a way to accept both numeric and string arguments, convert them to strings, and print them out (using the same code for both)? -r -- http://www.cfcl.com/rdm Rich Morin http://www.cfcl.com/rdm/resume rdm at cfcl.com http://www.cfcl.com/rdm/weblog +1 650-873-7841 Technical editing and writing, programming, and web development