在剥离的二进制文件上的oprofile

时间:2011-06-28 14:37:10

标签: oprofile

我正试图找到在剥离的二进制文件上使用oprofile的方法 当符号表可用时,仍会获得详细信息 后来,但到目前为止我还没有找到任何解决方案。

以下是我的情况:我们的软件已发送给我们的客户剥离,但我们的构建机器上有未剥离的版本。什么时候 我们有一个软件崩溃,回溯可以发送回我们 可以使用本地未剥离的版本来解释它。

由于oprofile是关于采样和解释样本,有没有办法解除这个过程?有没有办法让oprofile / opreport生成基于十六进制地址的配置文件信息,这些信息可以在具有所有可用符号的不同机器上解释。也许我可以通过复制样本文件来做到这一点?

我相信它一定是可能的,所以我正在向专家寻求建议。详细的步骤会很好。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我找到了办法。它可能不是最好的,但我很惊讶这没有产生足够的兴趣。

假设您有一个名为“mybin”的二进制文件,并在客户站点运行其剥离版本。这将是我的程序:

  1. 要求客户(或您的现场工程师)运行oprofile, 整整九码(设置,启动,转储和关闭),然后执行:

    tar czf OP-`date +"%Y%m%d%H%M%S"`.tgz /var/lib/oprofile
    

    然后运回来。

  2. 在您的构建计算机上,执行以下操作

    mkdir /tmp/migrate && cd /tmp/migrate
    tar xzf OP-*.tgz
    

    现在,您可以通过

    检查目标上的总体CPU使用情况
    opreport -% --session-dir=/tmp/migrate/var/lib/oprofile
    

    如果您的“mybin”是在/home/nobody/build/1.2.0/下构建的,则可以使用

    opreport -l mybin --image-path /home/nobody/build/1.2.0/ --session-dir=/tmp/migrate/var/lib/oprofile
    

    仅查看“mybin”的详细信息。