性能如何对内核堆栈进行采样
How does perf sample kernel stacks?
据我所知,perf能够为每个进程/线程采样完整的调用堆栈,即使它当前在内核内。由于 perf 在我假设的用户空间中运行,我想知道它如何访问不同进程/线程堆栈的内核部分。
目的是编写一个应用程序,该应用程序可以对其他进程/线程的调用堆栈进行采样,即使它们当前在内核中也是如此。
问候
perf
由两部分组成。用户空间工具和perf_event_open
系统调用。
通常,堆栈采样由内核通过系统调用完成。您也可以使用perf_event_open
编写应用程序 - 默认情况下包含内核示例(exclude_kernel==0
)。
相关文章:
- 算法问题:查找从堆栈中弹出的所有序列
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 如何用RISC-V GD32VF103CBT6开发板卸载精确的ADC过采样
- 为什么调用堆栈数组会导致内存泄漏
- gdb错误:Backtrace已停止:上一帧与此帧相同(堆栈已损坏?)
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的 int main() 中出现堆栈溢出错误
- 堆栈和队列是否像C++中的数组一样传递?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 为什么 STL 容器适配器堆栈中的 top 返回常量引用?
- 从堆栈分配的原始指针构造智能指针
- 在函数范围内在堆栈上分配的数组在离开函数时是否总是被释放?
- 堆栈中大小变量输入错误 (C++)
- 堆栈问题(平衡表达式问题集)
- C++ 在堆栈中包含多态属性的类对象存储
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 在 C++ 中使用链表进行堆栈
- 变量周围的堆栈'...'已损坏
- 性能如何对内核堆栈进行采样