首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perf- debian 8 jessie上没有显示StackTraces的事件

perf- debian 8 jessie上没有显示StackTraces的事件
EN

Stack Overflow用户
提问于 2017-09-16 06:07:52
回答 1查看 89关注 0票数 2

我试图分析一个简单的C程序与perf事件上Debian8Jessie.我可以看到符号,但我无法得到堆栈痕迹。同一过程在ubuntu16.04上生成良好的堆栈跟踪。

我安装了linux-image-amd64-dbglibc6-dbg。我已经确认内核配置参数包括CONFIG_KALLSYMS=y

我已经用gcc -g3 -O0 hello.c编译了程序,以启用调试符号。

我使用以下命令开始分析。sudo perf record -g ./a.out

我使用以下命令生成火焰图火焰图

代码语言:javascript
复制
sudo perf script | ~/code/FlameGraph/stackcollapse-perf.pl | \
~/code/FlameGraph/flamegraph.pl > perf-kernel.svg

这是hello.c的清单,我正试图对其进行分析。

代码语言:javascript
复制
#include <stdio.h>
#include <unistd.h>


void do2() {
    FILE* f = fopen("/dev/zero", "r");
    int fd = fileno(f);
    char buf[100];
    while(1) {
        read(fd, buf, sizeof(buf)/sizeof(buf[0]));
    }
}

int main(void)
{
    do2();
    return 0;
}

这是debian jessie的火焰图

这是带ubuntu的火焰图

为什么debian jessie中缺少堆栈跟踪?

谢谢沙拉斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 17:58:21

找到了问题所在。我必须启用CONFIG_FRAME_POINTER=y并按照Brendan Gregg's perf站点重新编译内核

不幸的是,Debian 8的内核传送没有启用此功能,从而破坏了perf。

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

https://stackoverflow.com/questions/46250669

复制
相关文章

相似问题

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