问题标签 [dtrace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3278 浏览

objective-c - 为什么 DTrace 有时但并非总是给我无效地址错误?

我的程序:

一些输出:

为什么会出现错误?它似乎是类名(这是唯一的%s,如果我删除它,我不会收到任何错误),但为什么它认为某些类的名称是无效指针?

有什么方法可以让错误消息真正告诉我 DTrace 程序的哪一行导致了问题?

有没有办法打电话object_getClassName而不是做这种结构检查舞?

对于它的价值,我正在跟踪的程序运行良好——它没有崩溃,所以我不相信这些类真的被破坏了。

0 投票
7 回答
7032 浏览

macos - 如何在不以 root 身份运行的情况下从一开始就跟踪程序

我正在编写一个调用 DTrace 以跟踪用户指定的程序的工具。

如果我的工具使用 dtrace -c 将程序作为 DTrace 的子进程运行,我不仅不能向程序传递任何参数,而且程序以 DTrace 的所有权限运行——即以 root 身份运行(我在Mac OS X)。这使得某些应该工作的事情中断,并且显然使许多不应该工作的事情成为可能。

我知道的另一个解决方案是自己启动程序,通过发送暂停它SIGSTOP,将其 PID 传递给dtrace -p,然后通过发送继续它SIGCONT。问题是,在 DTrace 收集符号信息时,程序运行了几秒钟而没有被跟踪,或者,如果我在继续该过程之前睡了几秒钟,DTrace 会抱怨不objc<pid>:<class>:<method>:entry匹配任何探测器。

有没有办法让我可以在用户帐户下运行程序,而不是以 root 身份运行程序,但仍然让 DTrace 能够从一开始就对其进行跟踪?

0 投票
5 回答
13203 浏览

c - 如何衡量互斥量争用?

我有一些在 Linux 上使用 PThreads 的线程代码,我怀疑这些代码正遭受过多的锁争用。我可以使用哪些工具来衡量这一点?

Solaris 有 DTrace 和 plockstat。Linux上有类似的东西吗?(我知道最近有一个用于 Linux 的 DTrace 端口,但它似乎还没有准备好迎接黄金时段。)

0 投票
3 回答
13551 浏览

linux - osx 的 ltrace 等价物?

osx 有非常强大的 dtrace/ktrace/dtruss 工具——但是我现在不愿意花必要的时间来学习如何处理它们。

在 OSX 上获得 linux ltrace(可能还有 strace)的等效功能的最简单方法是什么?

0 投票
4 回答
1722 浏览

java - pthread_self() 中的 Pthread id 与 dtrace 脚本中的数据不匹配

我正在使用这里的 dtrace 脚本尝试查找 java 程序的线程何时发生上下文切换。

我正在尝试将从脚本收集的数据与从正在运行的程序收集的跟踪数据(方法进入/退出之类的东西)进行匹配。我使用一个简短的 JNI 方法获取正在运行的线程的 pthread id,该方法只返回 pthread_self() 的值。

我遇到的问题是我通过调用 pthread_self() 获得的线程 ID 与我在 dtrace 脚本中获得的任何线程 ID 完全不同。我想知道这是否是因为我错误地调用了 pthread_self() 因为它返回了一个指针,但是很难找到有关 pthread_t 在 mac osx 上实际是什么的信息。

0 投票
2 回答
7567 浏览

dtrace - 如何在 DTrace 操作中打印 CFStringRef?

我有一个 DTrace 探针捕获对函数的调用,该函数的参数之一是CFStringRef. 这是一个私有结构,它包含一个指向 unicode 字符串的指针。但CFStringRef它本身不是 a char*,所以普通的 DTrace 方法,比如copyinstr()return ?cp?,这并不是很有帮助。

那么如何在 DTrace 操作中打印出字符串呢?

0 投票
1 回答
5016 浏览

c - 如何使用 dtrace 查看调用堆栈

如何使用dtrace查看下面简单程序的调用堆栈、返回值和参数

0 投票
1 回答
577 浏览

pointers - 如何从内存中获取字符串到 DTrace 脚本中

我的 DTrace 脚本中有一个 char*,我知道它指向一个以零结尾的字符串。如何访问这个字符串?

是否有类似 copyin() 的函数可以处理以零结尾的字符串?

0 投票
1 回答
56051 浏览

macos - mac os X 上的 strace -feopen <command> 等价物

这对于调试很有用(因此与编程相关)。在linux上,我们可以使用命令

找出加载了哪些 python 模块和共享对象。macOS X 上是否有等效的单行代码?

0 投票
6 回答
30712 浏览

linux - What's an alternative for DTrace on Linux?

From what I can see, a DTrace implementation on Linux is held up by licensing and politics. What are the alternatives currently?