Hi,
I ran a d-program with syscall::open:entry probe but got the following
error messages sometimes:
dtrace: error on enabled probe ID 1 (ID 14: syscall::open:entry): invalid
address (0xff34e000) in predicate at DIF offset 76
dtrace: error on enabled probe ID 6 (ID 14: syscall::open:entry): invalid
address (0xff34e000) in predicate at DIF offset 28
I don''t know how to interpret these error messages. Below is some
D-program
codes:
.
.
syscall::open:entry
/!progenyof($pid) && copyinstr(arg0) ==
"/opt/SUNWvts/bin/sparcv9/../../lib/sparcv9/libvtstest.so.1"/
{
stop();
system("qtracepid.d %d %s &", pid, basename(copyinstr(arg0)));
}
.
.
syscall::open:entry
/!loaded[copyinstr(arg0)] && !progenyof($pid) && copyinstr(arg0)
==
"/opt/SUNWvts/bin/sparcv9/../../lib/sparcv9/libvtstest.so.1"/
{
loaded[copyinstr(arg0)] = 1;
system("cp %s obj &", copyinstr(arg0));
}
.
.
************************************************
* C P Lin, Common Technology Project Lead. *
* Sun Microsystems Inc. *
* E-Mail: c.lin at sun.com *
* Address: 4150 Network Circle, M/S UMPK12-330 *
* Santa Clara, CA 95054 *
* Phone: 650/352-4967 Fax: 650/786-7816 *
************************************************
Take a look at this thread: http://www.opensolaris.org/jive/thread.jspa?messageID=10250 Adam On Tue, Sep 27, 2005 at 01:57:20PM -0700, C Lin wrote:> Hi, > > I ran a d-program with syscall::open:entry probe but got the following > error messages sometimes: > > dtrace: error on enabled probe ID 1 (ID 14: syscall::open:entry): invalid > address (0xff34e000) in predicate at DIF offset 76 > dtrace: error on enabled probe ID 6 (ID 14: syscall::open:entry): invalid > address (0xff34e000) in predicate at DIF offset 28 > > I don''t know how to interpret these error messages. Below is some D-program > codes: > > . > . > syscall::open:entry > /!progenyof($pid) && copyinstr(arg0) == > "/opt/SUNWvts/bin/sparcv9/../../lib/sparcv9/libvtstest.so.1"/ > { > stop(); > system("qtracepid.d %d %s &", pid, basename(copyinstr(arg0))); > } > . > . > syscall::open:entry > /!loaded[copyinstr(arg0)] && !progenyof($pid) && copyinstr(arg0) == > "/opt/SUNWvts/bin/sparcv9/../../lib/sparcv9/libvtstest.so.1"/ > { > loaded[copyinstr(arg0)] = 1; > system("cp %s obj &", copyinstr(arg0)); > } > . > . > > ************************************************ > * C P Lin, Common Technology Project Lead. * > * Sun Microsystems Inc. * > * E-Mail: c.lin at sun.com * > * Address: 4150 Network Circle, M/S UMPK12-330 * > * Santa Clara, CA 95054 * > * Phone: 650/352-4967 Fax: 650/786-7816 * > ************************************************ > > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org-- Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl
On Tue, Sep 27, 2005 at 01:57:20PM -0700, C Lin wrote:> Hi, > > I ran a d-program with syscall::open:entry probe but got the following > error messages sometimes: > > dtrace: error on enabled probe ID 1 (ID 14: syscall::open:entry): invalid > address (0xff34e000) in predicate at DIF offset 76 > dtrace: error on enabled probe ID 6 (ID 14: syscall::open:entry): invalid > address (0xff34e000) in predicate at DIF offset 28Read the "Avoiding Errors" section of: http://docs.sun.com/app/docs/doc/817-6223/6mlkidlmd?a=view DTrace cannot fault in user pages that haven''t been touched; you need to delay until after the kernel has touched them; typically, by using the :return probe. Cheers, - jonathan -- Jonathan Adams, Solaris Kernel Development