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