在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应用程序在启动时关闭