标签: dtruss

全局设置项目的node_modules位置

如果我写

var moment = require('moment');
Run Code Online (Sandbox Code Playgroud)

在我的项目中,Node会浪费大量时间查看实际上不包含该文件的位置,如此dtruss输出所示.

       PID/THRD  RELATIVE SYSCALL(args)                 = return
 7079/0x7cf313:   1244530 stat64("/Users/burke/code/api/api/models/node_modules/moment\0", 0x7FFF5FBFE5D8, 0x9)          = -1 Err#2
 7079/0x7cf313:   1244575 stat64("/Users/burke/code/api/api/models/node_modules/moment.js\0", 0x7FFF5FBFE578, 0x9)               = -1 Err#2
 7079/0x7cf313:   1244595 stat64("/Users/burke/code/api/api/models/node_modules/moment.json\0", 0x7FFF5FBFE578, 0x9)             = -1 Err#2
 7079/0x7cf313:   1244612 stat64("/Users/burke/code/api/api/models/node_modules/moment.node\0", 0x7FFF5FBFE578, 0x9)             = -1 Err#2
 7079/0x7cf313:   1244628 stat64("/Users/burke/code/api/api/models/node_modules/moment.coffee\0", 0x7FFF5FBFE578, 0x9)           = -1 Err#2
 7079/0x7cf313:   1244663 open("/Users/burke/code/api/api/models/node_modules/moment/package.json\0", 0x0, 0x1B6)                = -1 Err#2
 7079/0x7cf313:   1244694 stat64("/Users/burke/code/api/api/models/node_modules/moment/index.js\0", 0x7FFF5FBFE578, 0x1B6)               = -1 Err#2
 7079/0x7cf313:   1244713 stat64("/Users/burke/code/api/api/models/node_modules/moment/index.json\0", 0x7FFF5FBFE578, 0x1B6)             = -1 Err#2
 7079/0x7cf313:   1244729 stat64("/Users/burke/code/api/api/models/node_modules/moment/index.node\0", …
Run Code Online (Sandbox Code Playgroud)

require node.js dtruss

11
推荐指数
2
解决办法
409
查看次数

在OS X 10.11上,ps上的dtruss失败

我试图查看哪个系统调用ps用于获取OS X 10.11(El Capitan)上的进程的命令行,并遇到以下错误:

# dtruss ps -p 43520 -o args

dtrace: failed to execute ps: dtrace cannot control executables signed with restricted entitlements
Run Code Online (Sandbox Code Playgroud)

谷歌搜索结果表明,制作副本ps会让我绕过这个,但这对我不起作用.为什么我不能再dtruss使用任意二进制文件了,有什么方法可以恢复旧的行为吗?

macos truss dtrace dtruss osx-elcapitan

7
推荐指数
1
解决办法
2688
查看次数

如何在Mac OS X上使用dtruss来成功跟踪子进程?

dtruss手册页说:

       -f     follow children as they are forked
Run Code Online (Sandbox Code Playgroud)

这听起来就像我想要的那样.但是,请遵循以下行为:

WhiteAndNerdy% uname -a
Darwin WhiteAndNerdy.local 13.4.0 Darwin Kernel Version 13.4.0: Wed Dec 17 19:05:52 PST 2014; root:xnu-2422.115.10~1/RELEASE_X86_64 x86_64
WhiteAndNerdy% sudo dtruss -f -t writev /bin/echo hello world
hello world
    PID/THRD  SYSCALL(args)          = return
37273/0x90e264:  writev(0x1, 0x7F8832D00000, 0x4)        = 12 0

WhiteAndNerdy% sudo dtruss -f -t writev sh -c '/bin/echo hello world'
    PID/THRD  SYSCALL(args)          = return

WhiteAndNerdy% sudo dtruss -f -t writev bash -c '/bin/echo hello world'
    PID/THRD  SYSCALL(args)          = …
Run Code Online (Sandbox Code Playgroud)

macos dtruss

6
推荐指数
0
解决办法
1498
查看次数

Dtruss没有显示mmap/sbrk调用?

我最近决定学习更多关于系统编程的知识,并且觉得看看我的代码实际上在做什么是很有帮助的.

为此,我在C++中编写了一个简短的LinkedList类,并决定使用它来跟踪它dtruss(读取:dtrace).

我的期望是任何扩展堆的指令(例如使用new关键字或实例化LinkedList对象)都会调用mmapsbrk/ break系统调用.此情况并非如此!

实际上,dtruss使用-s开关运行时,我看不到从我的函数内部调用任何系统调用LinkedList::Add!测试,我正在添加某些元素.

任何人都可以解释为什么我没有看到mmap/ sbrk在我的dtruss输出中的引用?

奖励积分,如果有人可以解释的目的mprotectmadvise.

我在下面包含了我的LinkedList类,main.cpp和dtruss输出.

谢谢!

dtruss输出

SYSCALL(args)        = return
Created new LinkedList
Created new LinkedList
Destroyed a LinkedList
open("/dev/dtracehelper\0", 0x2, 0xFFFFFFFFE3236D70)         = 3 0
ioctl(0x3, 0x80086804, 0x7FFEE3236CD0)       = 0 0
close(0x3)       = 0 0
access("/AppleInternal/XBS/.isChrooted\0", 0x0, 0x0)         = -1 Err#2
thread_selfid(0x0, 0x0, 0x0)         = 198178 0
bsdthread_register(0x7FFF5BAB5C50, 0x7FFF5BAB5C40, 0x2000)       = 1073742047 …
Run Code Online (Sandbox Code Playgroud)

c++ macos dtrace system-calls dtruss

5
推荐指数
1
解决办法
109
查看次数

标签 统计

dtruss ×4

macos ×3

dtrace ×2

c++ ×1

node.js ×1

osx-elcapitan ×1

require ×1

system-calls ×1

truss ×1