我正在运行一个使用流程ID 423
运行的应用程序。
基本上想调试这个过程。
问题是,
使用命令sudo dtruss -a -t open_nocancel -p 423
我没有看到执行打印消息,并且像sudo kill -30 423
这样的系统信号似乎没有显示在堆栈跟踪中。我错过了什么吗?我如何实现这一目标?。
下面的样本堆栈跟踪
PID/THRD RELATIVE ELAPSD CPU SYSCALL(args) = return
423/0xcf5: 109498638 14 9 open_nocancel("/Users/krishna/.rstudio-desktop/sdb/s-3F25A09C/373AE888\0", 0x0, 0x1B6) = 21 0
423/0xcf5: 109509540 20 16 open_nocancel("/Users/krishna/.rstudio-desktop/history_database\0", 0x209, 0x1B6) = 20 0
423/0xcf5: 109510342 56 44 open_nocancel(".\0", 0x0, 0x1) = 20 0
423/0xcf5: 109516113 19 15 open_nocancel("/Users/krishna/.rstudio-desktop/history_database\0", 0x209, 0x1B6) = 20 0
423/0xcf5: 109517099 35 30 open_nocancel(".\0", 0x0, 0x1) = 20 0
423/0xcf5: 109576820 16 11 open_nocancel("/Users/krishna/.rstudio-desktop/sdb/s-3F25A09C/373AE888\0", 0x0, 0x1B6) = 21 0
423/0xcf5: 109673038 16 10 open_nocancel("/Users/krishna/.rstudio-desktop/sdb/s-3F25A09C/373AE888\0", 0x0, 0x1B6) = 21 0
答案 0 :(得分:1)
命令sudo dtruss -a -t open_nocancel -p 423
将仅跟踪 open_nocancel
系统调用。根据{{3}}:
NAME dtruss - process syscall details. Uses DTrace. SYNOPSIS dtruss [-acdeflhoLs] [-t syscall] { -p PID | -n name | command } ... -t syscall examine this syscall only
如果要跟踪其他系统调用,则需要更改-t ...
参数,或将其删除。