为了进一步调查我的系统跟踪,我尝试使用TraceCompass。为此,您需要CTF格式,在Linux中有两种可能的方法: afaik:
我一直在尝试使用第二个选项,因为第一个选项需要安装跟踪点,我从perf获得的信息对我来说已经足够了。因此,假设我有可用的perf.data,申请
perf data convert --to-ctf=./ctf 结果是:没有版本支持编译在.挖掘在线资源从lwn,我发现这个转换是不可用的,没有宝宝跟踪。为了安装babeltrace,我尝试了以下方法:
1 1:
sudo apt-get install libbabeltrace-ctf-dev libbabeltrace-ctf1 libbabeltrace1 libbabeltrace-dev python3-babeltrace这没有很好地解决在.中编译的没有版本支持的问题。
2 1
我试过从源头建立婴儿追踪系统。我事先挖掘并找到了它的所有依赖项:
sudo apt-get install dh-autoreconf bison libdw-dev libelf-dev flex uuid-dev libpopt-dev
git clone git://git.efficios.com/babeltrace.git
cd babeltrace
./bootstrap
sudo ./configure --prefix=/opt/libbabeltrace LDFLAGS=-L/usr/local/lib
sudo make -j4 prefix=/opt/libbabeltrace
sudo make install prefix=/opt/libbabeltrace然后试过,
LD_LIBRARY_PATH=/opt/libbabeltrace/lib perf data convert --to-ctf=./ctf这也导致错误:不支持在.中编译的版本
所以,总而言之,现在我认为问题是把婴儿追踪和perf联系起来。虽然我还不知道如何用babeltrace支持编译perf。我应该从内核模块构建所有东西(下面给出),还是有一个解决办法来重新编译或调整我当前的perf并支持babeltrace?
请注意perf/core_ctf_core是在这个内核模块中实现的:git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
还请注意,我正在使用Raspbian在一个Raspberry Pi 3。
请提前提供指导。
干杯,
参考资料:
https://lwn.net/Articles/634333/
http://tracingsummit.org/w/images/9/98/TracingSummit2014-Perf-CTF.pdf
https://patchwork.kernel.org/patch/5883821/
https://patchwork.kernel.org/patch/5858601/
编辑:解决了好了,这很棘手。首先,所有的学分都来自kernel.org,他的建议让我明白了这一点。
在从源构建libbabeltrace之后,将执行以下操作:
安装了一些依赖项(有些可能不需要,这些都是我为实现Raspbian可用的大多数跟踪特性而安装的)。不幸的是,bfd是不可用的,afaik)
sudo apt-get install libnewt-dev binutils-arm-none-eabi libcrypto++-dev libunwind-dev systemtap-sdt-dev libssl-dev libperl-dev libiberty-dev然后,
sudo git clone git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git
cd linux/tools/perf
sudo git checkout perf/core
sudo LIBBABELTRACE=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/ make
sudo LIBBABELTRACE=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/ make install安装完成后,perf将使用LD_LIBRARY_PATH env执行。即
在perf.data所在的目录中,如果新建的perf位于/home/user/linux/tools/perf,则调用以下命令:
sudo LD_LIBRARY_PATH=/opt/libbabeltrace/lib ./home/user/linux/tools/perf/perf data convert --to-ctf=./ctf然后,CTF可以导入到TraceCompass :)

发布于 2017-04-24 04:15:32
您需要为perf data convert支持(AFAIK)构建与Babeltrace链接的perf。是的,您需要您的内核源代码树来完成此操作(您的确切版本)。
apt-get等)。或者通过从源(./configure; make; make install)构建它。tools/perf中,运行:
LIBBABELTRACE=1制作
如果Babeltrace没有安装在系统目录中,请使用LIBBABELTRACE_DIR指定一个自定义Babeltrace安装目录:
LIBBABELTRACE=1 LIBBABELTRACE_DIR=/opt/libbabeltrace/ maketools/perf/perf是您的perf实用程序,它是为您的特定内核构建的,支持CTF转换。
https://stackoverflow.com/questions/43576997
复制相似问题