| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/usr/sbin/dtrace -s
- /*
- * Copyright (c) 2017 Apple Inc. All rights reserved.
- *
- * @APPLE_APACHE_LICENSE_HEADER_START@
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @APPLE_APACHE_LICENSE_HEADER_END@
- */
- /*
- * Usage: voucher_trace.d -p [pid]
- * traced process must have been executed with
- * DYLD_LIBRARY_PATH=/usr/lib/system/introspection or with
- * DYLD_IMAGE_SUFFIX=_profile or DYLD_IMAGE_SUFFIX=_debug
- */
- #pragma D option quiet
- #pragma D option zdefs
- #pragma D option bufsize=16m
- BEGIN {
- printf("Starting to trace voucher operations...\n");
- }
- voucher$target:libdispatch*.dylib::create
- {
- printf("ALLOC voucher 0x%p, thread %#llx, ref 1, port %#x, aid %#llx", arg0, tid, arg1, arg2);
- ustack(10);
- printf("\n")
- }
- voucher$target:libdispatch*.dylib::dispose
- {
- printf("FREE voucher 0x%p, thread %#llx, ref 0", arg0, tid);
- ustack(10);
- printf("\n")
- }
- voucher$target:libdispatch*.dylib::retain
- {
- printf("RETAIN voucher 0x%p, thread %#llx, ref %d", arg0, tid, arg1);
- ustack(10);
- printf("\n")
- }
- voucher$target:libdispatch*.dylib::release
- {
- printf("RELEASE voucher 0x%p, thread %#llx, ref %d", arg0, tid, arg1);
- ustack(10);
- printf("\n")
- }
- voucher$target:libdispatch*.dylib::adopt
- {
- printf("ADOPT voucher 0x%p, thread %#llx", arg0, tid);
- ustack(10);
- printf("\n")
- }
- voucher$target:libdispatch*.dylib::orphan
- {
- printf("ORPHAN voucher 0x%p, thread %#llx", arg0, tid);
- ustack(10);
- printf("\n")
- }
|