在DTrace输出中显示Objective-C类
发布时间:2020-12-16 09:44:26 所属栏目:百科 来源:网络整理
导读:使用以下DTrace脚本,我可以获得接近我想要的输出: $cat script.dobjc$target:::entry {}objc$target:::return {}$sudo dtrace -F -s script.d -c /Applications/TextEdit.app/Contents/MacOS/TextEditdtrace: script 'script.d' matched 105896 probesCPU F
|
使用以下DTrace脚本,我可以获得接近我想要的输出:
$cat script.d
objc$target:::entry {}
objc$target:::return {}
$sudo dtrace -F -s script.d -c /Applications/TextEdit.app/Contents/MacOS/TextEdit
dtrace: script 'script.d' matched 105896 probes
CPU FUNCTION
0 -> +load
0 <- +load
0 -> +load
0 <- +load
0 -> +load
0 <- +load
0 -> +load
0 <- +load
0 -> +initialize
0 <- +initialize
0 -> +alloc
0 -> +allocWithZone:
0 -> +self
0 <- +self
0 -> +initialize
0 <- +initialize
0 -> +initialize
0 <- +initialize
0 -> +initialize
0 <- +initialize
0 -> +__new:::
0 <- +__new:::
0 -> +immutablePlaceholder
0 <- +immutablePlaceholder
0 <- +allocWithZone:
0 -> -initWithObjects:count:
0 -> +__new:::
0 <- +__new:::
0 -> +initialize
0 <- +initialize
0 -> +new
0 -> +alloc
...
我希望输出包含所调用的类,所以它想要这样的东西: dtrace: script 'script.d' matched 105896 probes CPU FUNCTION 0 -> +[classX load] 0 <- +[classX load] ... 其中classX是正确的类. 输出仍然应该是indentend并且只包含Objective-C消息而不包括C函数调用. 解决方法
我制作了一个脚本,它完全符合我的要求:
#!/usr/bin/env dtrace -s
#pragma D option quiet
unsigned long long indention;
objc$target:::entry
{
method = (string)&probefunc[1];
type = probefunc[0];
class = probemod;
printf("%*s%s %c[%s %s]n",indention,"","->",type,class,method);
indention++;
}
objc$target:::return
{
indention--;
method = (string)&probefunc[1];
type = probefunc[0];
class = probemod;
printf("%*s%s %c[%s %s]n","<-",method);
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 为什么.NET 4.0 Client Profile中没有System.Data.Or
- 如何在Swift中更改自定义结构和类的默认嵌入字符串
- .net – 我可以使用IoC容器创建需要运行时值的依赖项吗?
- Cocos2D-X shader(四) 利用shader改变图片色相(Hue)
- <csapp> pipeline lab (《深入理解计算机系统》lab7)
- 【cocos2d-x官方文档】cocos2d-x坐标系详解
- xml – JSP vs Facelets作为JSF的视图技术
- XML_XML中的强制字符串转换
- pugixml“Clone”中“xml_document”的深层副本
- ios – testflight应用程序在启动时关闭
