1*68b2bbf2SGordon Ross #!/usr/sbin/dtrace -s 2*68b2bbf2SGordon Ross /* 3*68b2bbf2SGordon Ross * This file and its contents are supplied under the terms of the 4*68b2bbf2SGordon Ross * Common Development and Distribution License ("CDDL"), version 1.0. 5*68b2bbf2SGordon Ross * You may only use this file in accordance with the terms of version 6*68b2bbf2SGordon Ross * 1.0 of the CDDL. 7*68b2bbf2SGordon Ross * 8*68b2bbf2SGordon Ross * A full copy of the text of the CDDL should have accompanied this 9*68b2bbf2SGordon Ross * source. A copy of the CDDL is also available via the Internet at 10*68b2bbf2SGordon Ross * http://www.illumos.org/license/CDDL. 11*68b2bbf2SGordon Ross */ 12*68b2bbf2SGordon Ross 13*68b2bbf2SGordon Ross /* 14*68b2bbf2SGordon Ross * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 15*68b2bbf2SGordon Ross */ 16*68b2bbf2SGordon Ross 17*68b2bbf2SGordon Ross /* 18*68b2bbf2SGordon Ross * User-level dtrace for smbd 19*68b2bbf2SGordon Ross * Usage: dtrace -s ThisScript.d -p PID 20*68b2bbf2SGordon Ross */ 21*68b2bbf2SGordon Ross 22*68b2bbf2SGordon Ross #pragma D option flowindent 23*68b2bbf2SGordon Ross 24*68b2bbf2SGordon Ross pid$target:fksmbd:pipesvc_worker:entry 25*68b2bbf2SGordon Ross { 26*68b2bbf2SGordon Ross self->trace++; 27*68b2bbf2SGordon Ross } 28*68b2bbf2SGordon Ross pid$target:fksmbd:pipesvc_worker:return 29*68b2bbf2SGordon Ross { 30*68b2bbf2SGordon Ross self->trace--; 31*68b2bbf2SGordon Ross } 32*68b2bbf2SGordon Ross 33*68b2bbf2SGordon Ross pid$target:fksmbd::entry, 34*68b2bbf2SGordon Ross pid$target:libfksmbsrv.so.1::entry, 35*68b2bbf2SGordon Ross pid$target:libmlsvc.so.1::entry, 36*68b2bbf2SGordon Ross pid$target:libmlrpc.so.1::entry, 37*68b2bbf2SGordon Ross pid$target:libsmbns.so.1::entry, 38*68b2bbf2SGordon Ross pid$target:libsmb.so.1::entry 39*68b2bbf2SGordon Ross /self->trace/ 40*68b2bbf2SGordon Ross { 41*68b2bbf2SGordon Ross printf("\t0x%x", arg0); 42*68b2bbf2SGordon Ross printf("\t0x%x", arg1); 43*68b2bbf2SGordon Ross printf("\t0x%x", arg2); 44*68b2bbf2SGordon Ross printf("\t0x%x", arg3); 45*68b2bbf2SGordon Ross } 46*68b2bbf2SGordon Ross 47*68b2bbf2SGordon Ross pid$target:fksmbd::return, 48*68b2bbf2SGordon Ross pid$target:libfksmbsrv.so.1::return, 49*68b2bbf2SGordon Ross pid$target:libmlsvc.so.1::return, 50*68b2bbf2SGordon Ross pid$target:libmlrpc.so.1::return, 51*68b2bbf2SGordon Ross pid$target:libsmbns.so.1::return, 52*68b2bbf2SGordon Ross pid$target:libsmb.so.1::return 53*68b2bbf2SGordon Ross /self->trace/ 54*68b2bbf2SGordon Ross { 55*68b2bbf2SGordon Ross printf("\t0x%x", arg1); 56*68b2bbf2SGordon Ross } 57*68b2bbf2SGordon Ross 58*68b2bbf2SGordon Ross pid$target:libmlrpc.so.1:ndo_trace:entry 59*68b2bbf2SGordon Ross /self->trace/ 60*68b2bbf2SGordon Ross { 61*68b2bbf2SGordon Ross printf("ndo_trace: %s", copyinstr(arg0)); 62*68b2bbf2SGordon Ross } 63