- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我编写了一个 DTrace 脚本,用于测量在我的 C 程序中的一个函数内花费的时间。程序本身运行,输出一些数据然后退出。
问题是它完成了让我快速获取进程 ID 并启动 DTrace 的方法。
目前我的代码中有一个 sleep() 语句,它让我有足够的时间启动 DTrace。必须修改您的代码才能获取有关它的信息有点违背 Dtrace 的目的……对吧。
基本上,我要做的是让 DTrace 等待进程 ID 出现,然后针对它运行我的脚本。
最佳答案
假设您正在使用 pid 提供程序,在这种情况下,无法在进程创建之前启用这些探测。通常的解决方案是使用“-c”选项从 dtrace 本身调用程序。
如果由于某种原因您不能这样做(即您的进程必须在其他进程设置的某些环境中启动),您可以尝试更复杂的方法:使用 proc::::start 或 proc:::exec-success 跟踪程序实际启动的时间,使用 stop() 操作在该点停止程序,然后使用 system() 运行另一个使用 pid 提供程序的 DTrace 调用,然后“修剪”再次编程。
关于c - dtracing 一个短暂的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343620/
如何使用 dtrace 访问函数的局部变量? 例如,在下面的代码片段中,我想使用 dtrace 了解变量 x 的值。 void foo(int a){ int x=some_fun(a);
我有一个 DTrace 探针捕获对函数的调用,该函数的参数之一是 CFStringRef。这是保存指向 unicode 字符串的指针的私有(private)结构。但 CFStringRef 本身并不是
DTrace令人印象深刻的强大的跟踪系统,最初来自 Solaris,但它被移植到 FreeBSD 和 Mac OSX。 DTrace 使用称为 D 的高级语言,与 AWK 或 C 不同。下面是一个示例
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
抱歉,标题很复杂,但这是我脚本的 dtrace 输出,我认为这将有助于解释我正在谈论的内容: 16384 1 38048
假设我的应用代码如下所示: #include int global_var; void change_var(){ global_var++; } int main(void){
我编写了一个 DTrace 脚本,用于测量在我的 C 程序中的一个函数内花费的时间。程序本身运行,输出一些数据然后退出。 问题是它完成了让我快速获取进程 ID 并启动 DTrace 的方法。 目前我的
dtrace 是否可用于多线程应用程序,我可以分析单个内核吗?如果是这样,有人会给我举个例子吗? 最佳答案 DTrace 非常适合锁分析,因为它能够根据需要动态检测锁事件。以下命令和提供程序可用于锁分
我有一台 2009 年中的 MacBook Pro 和一台新的 2012 MacBook Pro,我正在学习 DTrace(一个非常棒的工具)。当我在新的 2012 MBP 上计算聚合时,聚合不会打印
当我要求提供工具来分析 Rails 应用程序时,有人 pointed at DTrace .由于我在 MacOSX 工作站上工作并在 OpenSolaris 上进行部署,因此这是一种有效的方法。但我对
这个问题几乎概括了一切。 “dtrace 'print an associative array'” 在 Google 上只有一次点击,类似的搜索同样毫无用处。 编辑: 如果我使用聚合,我不知道我仍然
如果重要的话,我使用的是 Mac OS X,但我相信这适用于所有操作系统。如果每个操作系统的答案不同,我也会有兴趣了解这一点。 假设我打开一个终端窗口,启用几个探测器,并开始使用 DTrace 收集数
我在网上搜索可以帮助我进行流水线分析的东西。我在 http://www.webservertalk.com/message897404.html 上搜索并找到了一些东西 这个问题有两个部分;查找特定类
我正在使用 dtrace 打印代码中的所有 objc_msgSend。到目前为止,我可以看到选择器的名称,但无法获得正确的类名。 这是我的 dtrace 脚本: #!/usr/sbin/dtrace
我引入了一个环境选项,它会在启动时暂停我的进程,这样我就可以附加 dtrace(通过 XCode Instruments)并开始分析。然后我必须在进程上按 enter 键才能开始运行。我想知道我的进程
我在 dhcpagent 命令和测试中做了一些更改,它有点失败。现在我知道在 dhcpagent 退出之前到底调用了哪个函数。我想跟踪从 dhcpagent 到那个特定函数的控制让我们说 foo()。
我正在尝试测试 this script from oracle to get active NFS clients在 Ubuntu 10.04 上,但我无法让它运行。 为了实现这一点,我首先在 the
代码 dtrace -n 'syscall::read:entry /execname != "dtrace"/ { @reads[execname, fds[arg0].fi_pathname] =
我正在我的 restify.js 应用程序中跟踪 DTrace 探测器(重新确定它是 node.js 中提供 dtrace 支持的 http 服务器)。我正在使用 restify 文档中的示例 dtr
如何使用dtrace查看下面简单程序的调用堆栈、返回值和参数 /** Trival code **/ #include int foo (int *a, int *b) { *a
我是一名优秀的程序员,十分优秀!