From owner-freebsd-dtrace@FreeBSD.ORG Thu Nov 21 11:55:19 2013 Return-Path: Delivered-To: freebsd-dtrace@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 75C77AA7 for ; Thu, 21 Nov 2013 11:55:19 +0000 (UTC) Received: from nm9-vm5.bullet.mail.sg3.yahoo.com (nm9-vm5.bullet.mail.sg3.yahoo.com [106.10.148.212]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D48F8216E for ; Thu, 21 Nov 2013 11:54:57 +0000 (UTC) Received: from [106.10.166.62] by nm9.bullet.mail.sg3.yahoo.com with NNFMP; 21 Nov 2013 11:54:48 -0000 Received: from [106.10.151.203] by tm19.bullet.mail.sg3.yahoo.com with NNFMP; 21 Nov 2013 11:54:48 -0000 Received: from [127.0.0.1] by omp1015.mail.sg3.yahoo.com with NNFMP; 21 Nov 2013 11:54:48 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 748942.22125.bm@omp1015.mail.sg3.yahoo.com Received: (qmail 36947 invoked by uid 60001); 21 Nov 2013 11:54:48 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.in; s=s1024; t=1385034888; bh=IWYe84julJ3+fNq1u9X4ZsABnyZngd7od48CA8P9ZdU=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:Message-ID:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=ql/9Z2mIFolAWlWjS/zITPAX8d/I2jxOlB7WGg+fykTSbGGTD/WgjjlfXCVbPs/6NTuiEYvCzSksPE0ioH/tgq+PBjAgsnlMBOzWDcRVBadKQ43LvaqitNFI2p5FGoGcFoh927QWQSRsHqmUb25DCRq7RRKeRhxyHNUP/KTlSqQ= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.co.in; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:Message-ID:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=mhahyjY2r6NS8rOEVkLKn5t8Ri9pN7g+orAT/TQCEHegnG+04SreFrfkp2Jca3VtbcVH1P9mZ0AeZ3iSqc9tPbJdQDzTDI7zvkMnQ27Q6Fr34MwbIM2NErjkNefjhWNGjfNzTg3GFb+p08ibnvsQDOOwxyEX854/cCEOqWJbhDc=; X-YMail-OSG: XffZ6KoVM1kuI59UUzJ6nJBLwUh4VjnlExLME1_AaCMbSyp o466SgJhQXrUpToH7qRY.BvV_gTysydIEqiYu8IcXmdy7nmndi283Hmj2jPr JMG4uuEIJwcwcrmKFV32eGHs.t8M1PzTN5a7KqKIEw6w7myYt2fvyElX_EAv VV2n3tUDZ4G7GDKjA1P5.kic.Ph49wBHw7kc4jC__X6lcSHVUxgqq1FTyE9p 06uFPRlSbNp4tjB.vJNT3x99ut1DBJOsSqpSgkXzAE9fCEc9OaUgbHeEteIZ sv8Gqx7yfquLSQQmG54uVZx9wXLYvKljxvxOtNIpWUwEj18aElEsmBotyY71 OK1FyzQ1I9Ac7nvOqjfm6QECwc_dY0AN9KrTaW5ETZl8nR0SPnFWAkrbD2Zt 58A4kZWdqc0B2S3kBlE7DY.tHl0Gh5Rru8Vyuhp6QRilSQmGN4xsKW6uFMwC 5mEacU1sdGsqVRZZfzPg_KTq7JzmAbYlL4pGxUM6ftG6y6l45dHXoZNDv8n7 ej9YVyyGowYYjsXXCemYaEESBnmocQdZ94fMH_OrOzivaVvRXF.pCKbKye52 bkmvTj8.Y1zU- Received: from [217.165.101.109] by web192603.mail.sg3.yahoo.com via HTTP; Thu, 21 Nov 2013 19:54:47 SGT X-Rocket-MIMEInfo: 002.001, TG9va3MgbGlrZSBjb2RlIGZvciBhbm9ueW1vdXMgdHJhY2luZyBpcyBhbHJlYWR5IHByZXNlbnQuIElmIHlvdSByZWFkIHRoZSAvYm9vdC9kdHJhY2UuZG9mDQpmaWxlIGZyb20gdGhlIGxvYWRlciBhbmQgc2V0IGl0IGFzIGEgZW52aXJvbm1lbnQgdmFyaWFibGUgaXQgd2lsbCB3b3JrLg0KSSB0ZXN0ZWQgaXQgd2l0aCB0aGUgZm9sbG93aW5nIHBhdGNoIGp1c3QgdG8gc2VlIHdoZXRoZXIgaXQgd291bGQgd29yay4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0BMAEBAQE- X-Mailer: YahooMailClassic/370 YahooMailWebService/0.8.166.601 Message-ID: <1385034887.36908.YahooMailBasic@web192603.mail.sg3.yahoo.com> Date: Thu, 21 Nov 2013 19:54:47 +0800 (SGT) From: Prashanth Kumar Subject: Re: dtrace anonymous tracing To: freebsd-dtrace@FreeBSD.org, Andriy Gapon In-Reply-To: <528C99B7.2040304@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "A discussion list for developers working on DTrace in FreeBSD." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Nov 2013 11:55:19 -0000 Looks like code for anonymous tracing is already present. If you read the /= boot/dtrace.dof file from the loader and set it as a environment variable it will work. I tested it with the following patch just to see whether it would work. ---------------------------------------------------------------------------= --------------------------------------------- --- main.c=092013-11-21 12:03:57.000000000 +0400 +++ /usr/src/sys/boot/i386/loader/main.c=092013-11-21 12:44:23.000000000 +0= 400 @@ -84,6 +84,11 @@ main(void) { int=09=09=09i; + =20 + char *dtracedof =3D "/boot/dtrace.dof"; + int fd, n=3D0, l=3D0; + char *buf, *s, *e, c[32]; + struct stat dstat; =20 /* Pick up arguments */ kargs =3D (void *)__args; @@ -190,6 +195,40 @@ extract_currdev();=09=09=09=09/* set $currdev and $loaddev */ setenv("LINES", "24", 1);=09=09=09/* optional */ =20 + if ((fd =3D open(dtracedof, O_RDONLY)) =3D=3D -1)=20 +=09=09printf("Error opening dtrace file %s\n", dtracedof); + else if (fstat(fd, &dstat) =3D=3D -1)=20 +=09=09printf("Can't access %s\n", dtracedof); + else if ((buf =3D malloc(dstat.st_size+1)) =3D=3D NULL) + =09=09printf("Error allocating mem size %d - %s\n", dstat.st_size, dtr= acedof); + else if (read(fd, buf, dstat.st_size) < dstat.st_size) +=09=09printf("Error reading file %s size %d\n", dtracedof, dstat.st_size); + else { + =09for (i =3D 0; ; i++) { +=09 (void) sprintf(c, "dof-data-%d", i); +=09 l =3D strlen(c); +=09 if (strncmp(c, buf, l) !=3D 0) { +=09=09printf("Malformed name %s\n", c); +=09=09close(fd); +=09=09free(buf); +=09=09break; +=09 } + =09 s =3D e =3D &buf[l+1]; +=09 n +=3D l+1; +=09 while(*e !=3D '\n') +=09=09e++; +=09 *e =3D 0; +=09 //printf("string %s %s\n",c, s); +=09 setenv(c, s, 1); +=09 n +=3D e - s; +=09 n++; +=09 if (n < dstat.st_size)=20 +=09=09buf =3D ++e; +=09 else +=09=09break; +=09} + }=09 + =20 bios_getsmap(); =20 interact();=09=09=09/* doesn't return */ ---------------------------------------------------------------------------= -------------------------------------------------- Kernel environment variable value has to be in increased. In sys/kenv.h,=20 -------------------------------------------------------------------------- --- kenv.h=092013-11-21 14:31:50.000000000 +0400 +++ /usr/src/sys/sys/kenv.h=092013-11-21 14:32:05.000000000 +0400 @@ -38,6 +38,6 @@ #define KENV_DUMP=093 =20 #define KENV_MNAMELEN=09128=09/* Maximum name length (for the syscall) */ -#define KENV_MVALLEN=09128=09/* Maximum value length (for the syscall) */ +#define KENV_MVALLEN=093000=09/* Maximum value length (for the syscall) */ =20 #endif /* !_SYS_KENV_H_ */ ---------------------------------------------------------------------------= ------------------------------------- example : $> dtrace -A vboxguest $> reboot $>dtrace -a Probably be better to read dtrace.dof from dtrace module itself. regards Prashanth -------------------------------------------- On Wed, 20/11/13, Andriy Gapon wrote: Subject: Re: dtrace anonymous tracing To: "Prashanth Kumar" , freebsd-dtrace@FreeBSD.org Date: Wednesday, 20 November, 2013, 4:45 PM =20 on 20/11/2013 12:18 Prashanth Kumar said the following: > Is it possible to enable dtrace anonymous tracing in freebsd? >=20 =20 Not without some kernel coding, I believe :-) =20 --=20 Andriy Gapon