在macos上查看当前进程的栈信息

概述

在调试程序时,如cpu莫名的高或低,一个常用的方式就是打印当前进行的调用栈,然后确认各线程的执行函数是否有异常。

在linux系统中可以使用pstack命令,直接打印各线程的栈信息,可惜在macos上没有该命令。一种解决方式就是将代码迁移到linux平台上进行debug(事实上笔者也是这么做的,因为linux平台有很多熟悉的工具),但代码迁移存在成本(系统函数版本不一致),macos上的系统文件版本和linux平台上大概率是不同的。

因此比较直接的方式还是找到代替pstack的mac版本,也是本文介绍的方法。

具体做法

step1:打开mac本自带的程序"活动监视器"

step2: 找到正在调试的进程,如果当前进程太多,可以使用右上角的搜索框辅助

step3: 选中正在调试的进程,点击左上角的"系统诊断选项",在弹出的下拉菜单中点击"取样进程"

step4: 等一段时间后(采样时间,5s左右),会弹出一个分析文件。该文件头部会提示对该进程采样的次数,然后根据采样到的线程栈函数出现次数由高到低显示,主要信息包括线程id和采样次数。

相关推荐
1telescope21 小时前
MacBook 安装 nvm 管理 Node.js 多版本教程
macos·node.js
1telescope1 天前
MacBook 安装 Oh My Zsh 完整教程
macos·mac
蜜汁小强1 天前
macOS 上的git代理配置在哪里
git·macos·代理模式·proxy模式
蜜汁小强1 天前
macOS 上升级到 python 3.12
开发语言·python·macos
上天_去_做颗惺星 EVE_BLUE1 天前
Android设备与Mac/Docker全连接指南:有线到无线的完整方案
android·linux·macos·adb·docker·容器·安卓
goodmao1 天前
【macOS】【磁盘空间整理】查看大文件夹
macos
七夜zippoe1 天前
Cython终极性能优化指南:从Python到C++的混合编程实战
c++·python·macos·cython·类型系统·内存视图
韦东东2 天前
万元级边缘算力方案:Mac Mini在几个知识库项目的部署实践
人工智能·macos·大模型·mac mini·边缘算力·知识库应用
小镇学者2 天前
【python】macos环境升级自己安装的python3
开发语言·python·macos
TESmart碲视2 天前
解锁多屏办公效率:2026年深度解析EDID技术与KVM切换器解决方案
macos·计算机外设·kvm切换器·tesmart·双屏kvm切换器·tesmart碲视