Thanks for the reply Mark. So in Nutshell, 9.2 is not the version completely supporting dtrace functionality. I am not sure if I can get next freebsd version for my product that quick. I will try to add more debugs into those functions and will see if I can get anything in short time.
Again thanks for your help and pointers. Cheers, Madhava On Friday, September 26, 2014 12:38 PM, Mark Johnston <[email protected]> wrote: On Thu, Sep 25, 2014 at 09:22:55PM -0700, madhava gaikwad via freebsd-dtrace wrote: > Hello Experts, > > I am a freebsd newbie and having a strange issue on freebsd 9.2 (It is AMD64 > machine).I am not able to dtrace few libc functions. For example I am able to > dtrace strdup, but calling dtrace for strlen causes hung process. It is 100 % > percent repro-able. Is it > expected? Hi, I'm not sure what the exact problem is in your case, but 9.2 is missing a large number of fixes that have gone into userland DTrace support. Without them, I don't expect it to work reliably. I suggest trying 9.3 or the soon-to-be-released 10.1 instead. If you continue to run into problems after upgrading, please let us know. Thanks, -Mark > > Problem: high cpu, and hung process under dtrace when > calling for strlen. Somehow my sample program don’t crash, but the real > application crashes when I send ctrl+C to application running under dtrace. > > PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND > 25264 root 2 85 0 61268K 15244K RUN 0:26 43.99% dtrace > 25265 root 1 47 0 10136K 1368K STOP 0:18 31.98% sample > > Sample program > $ cat sample.c > #include <stdio.h> > #include <string.h> > > int main (void) { > int i = 0; > for (; i < 3; i++) { > printf("calling strlen: %d\n", strlen("foobar")); > printf("calling strdup: %s\n", strdup("foobar")); > } > return 0; > } > > The sample Makefile > $cat Makefile > CFLAGS=-I. > CFLAGS+=-fno-omit-frame-pointer -g > > samplemake: sample.c > gcc -o > sample sample.c -I. > $ > > The sample D files > $ cat strdup.d > pid$target::strdup:return > { > trace (arg1); > } > $ cat strlen.d > pid$target::strlen:entry > { > trace (arg0); > } > > > $ date; dtrace -s strdup.d -c > /tmp/sample; date > Fri Sep 26 03:53:57 GMT 2014 > dtrace: script 'strdup.d' matched 1 probe > calling strlen: 6 > calling strdup: foobar > calling strlen: 6 > calling strdup: foobar > calling strlen: 6 > calling strdup: foobar > dtrace: pid 26100 has exited > CPU ID FUNCTION:NAME > 0 32060 strdup:return 34372624480 > 0 32060 strdup:return 34372624488 > 0 32060 strdup:return 34372624496 > > Fri Sep 26 03:53:57 GMT 2014 > $ date ; dtrace -s strlen.d -c /tmp/sample > ; date > Fri Sep 26 03:54:04 GMT 2014 > dtrace: script 'strlen.d' matched 1 probe > calling strlen: 6 > CPU ID FUNCTION:NAME > 0 32060 strlen:entry 4196103 > ^C > > Fri Sep 26 03:56:42 GMT 2014 > > Any help will be really appreciated. I am having dtrace related > patches from firefox email chain < > https://lists.freebsd.org/pipermail/freebsd-dtrace/2013-October/000107.html>. > > This is an enterprise application and we cannot move to 10.0 > release of freebsd at least for now > Thank you. > Madhava > _______________________________________________ > [email protected] mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace > To unsubscribe, send any mail to "[email protected] " _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace To unsubscribe, send any mail to "[email protected]"
