加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读