On Tue, Oct 28, 2008 at 01:53:30PM -0700, Adam Mitchell wrote: > BTW, I replaced "string" with "Xstring" and it works. If I could avoid > touching Apache's files, that would be nice. But I can live with this.
No need to. Just do: #!/usr/sbin/dtrace -Cs #define __builtin_va_list long #define __attribute__(x) #define string Xstring #include <httpd.h> #undef string ... > Thanks for the help everybody! > > I want to share this with anyone who will come looking for this later: > > Copy the Apache header files to a work directory: > > # cp -R /opt/apache/include /export/home/amitchel > > My command line: > > > dtrace -32 -C -I /export/home/amitchel/include -x cpppath=/usr/sfw/bin/cpp > -Xs -s watchApacheRequests.d -p 843 > > My script: > #!/usr/sbin/dtrace > > #define __builtin_va_list long > #define __attribute__(x) > #include <httpd.h> > > pid$target:a.out:ap_process_request:entry > { > > self->ts = timestamp; > self->r = (request_rec*) copyin(arg0, sizeof(request_rec)); > self->uri = copyinstr((uintptr_t) self->r->uri); > > } > > > pid$target:a.out:ap_process_request:return > /self->ts/ > { > @request_uris[self->uri] = quantize((timestamp - self->ts) / 1000000); > self->ts = 0; > self->uri = "err"; > } > > tick-5s > { > printa(@request_uris); > } > > > > You'll get some errors like this because of the 'string' reserved keyword: > > cc1: warning: /dev/fd/6 is shorter than expected > dtrace: failed to compile script watchApacheRequests.d: > "/export/home/amitchel/include/ap_regex.h", line 117: syntax error near > "string" > > > Edit the file, replace 'string' with 'Xstring' and try again. I had to edit > these files: > > /export/home/amitchel/include/ap_regex.h > /export/home/amitchel/include/httpd.h > > > And here's the script output: > > 0 49008 :tick-5s > /hello > value ------------- Distribution ------------- count > 1 | 0 > 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 > 4 | 0 > > /page1 > value ------------- Distribution ------------- count > 1 | 0 > 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 > 4 | 0 > > /pageTwo > value ------------- Distribution ------------- count > 1 | 0 > 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1 > 4 | 0 > -- > This message posted from opensolaris.org > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss@opensolaris.org _______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org