首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mac OS X中打印内核调用堆栈

如何在Mac OS X中打印内核调用堆栈
EN

Stack Overflow用户
提问于 2016-03-21 16:01:37
回答 4查看 624关注 0票数 0

在Linux中,我可以使用echo t > /proc/sysrq-trigger来转储系统中所有线程的内核调用堆栈。

在Mac中有没有实现同样目的的方法?或者有什么方法可以转储一个进程的内核堆栈?

EN

回答 4

Stack Overflow用户

发布于 2019-08-30 04:57:48

简而言之: procexp 0线程(作为根用户)将完成此任务,其中procexp是来自http://newosxbook.com/tools/procexp.html的"Process Explorer“。

稍长一点的答案:- Dtrace是过度杀伤力,需要禁用SIP - stackshot是不推荐的,因为它的底层syscall (#365)已被删除-一个替代,stack_snapshot_with_config(#491)也可以通过编程使用(这是驱动上述工具的原因)

票数 1
EN

Stack Overflow用户

发布于 2016-03-22 18:08:07

答案可能是dtrace。我知道Instruments.app (或iprofiler)可以进行基于探测的分析,所以它会定期进行堆栈跟踪。(用户或内核;您的选择)据我所知,这都是基于dtrace的,尽管我对它还不够了解,无法告诉您一种一次性跟踪的方法。

票数 0
EN

Stack Overflow用户

发布于 2016-10-08 16:37:31

嗯..。我有好几年没有在Mac上写代码了。但是一个名为'stackshot‘的工具可以帮助你做到这一点。试着在谷歌上搜索一下它的用法。:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36125739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档