⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 specopen.d

📁 Sun Solaris 10 中的 DTrace 组件的源代码。请参看: http://www.sun.com/software/solaris/observability.jsp
💻 D
字号:
#!/usr/sbin/dtrace -Fssyscall::open:entry,syscall::open64:entry{	/*	 * The call to speculation() creates a new speculation.  If this fails,	 * dtrace(1M) will generate an error message indicating the reason for	 * the failed speculation(), but subsequent speculative tracing will be	 * silently discarded.	 */	self->spec = speculation();	speculate(self->spec);	/*	 * Because this printf() follows the speculate(), it is being 	 * speculatively traced; it will only appear in the data buffer if the	 * speculation is subsequently commited.	 */	printf("%s", stringof(copyinstr(arg0)));}fbt:::/self->spec/{	/*	 * A speculate() with no other actions speculates the default action:	 * tracing the EPID.	 */	speculate(self->spec);}syscall::open:return,syscall::open64:return/self->spec/{	/*	 * To balance the output with the -F option, we want to be sure that	 * every entry has a matching return.  Because we speculated the	 * open entry above, we want to also speculate the open return.	 * This is also a convenient time to trace the errno value.	 */	speculate(self->spec);	trace(errno);}syscall::open:return,syscall::open64:return/self->spec && errno != 0/{	/*	 * If errno is non-zero, we want to commit the speculation.	 */	commit(self->spec);	self->spec = 0;}syscall::open:return,syscall::open64:return/self->spec && errno == 0/{	/*	 * If errno is not set, we discard the speculation.	 */	discard(self->spec);	self->spec = 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -