当我想在WSL下运行perf时,我遇到了以下问题:
警告:内核4.4.0-18362找不到perf 您可能需要为这个特定的内核安装以下软件包: linux-tools-4.4.0-18362-Microsoft linux-cloud-tools-4.4.0-18362-Microsoft 您还可能希望安装下列软件包之一以保持最新: linux工具-Microsoft linux云工具-Microsoft
但我找不到名为linux-tools-4.4.0-18362-Microsoft
或linux-cloud-tools-4.4.0-18362-Microsoft
的包。我想包名是自动生成的。
我还试图在码头集装箱中使用perf。但是,docker容器使用与主机相同的内核。
有什么方法在WSL下运行perf吗?
我听说perf可以在WSL2中使用。但是在升级到WSL2之后,它显示了类似的错误消息:
警告:未为内核4.19.84找到perf -microsoft 您可能需要为这个特定的内核安装以下软件包: linux-工具-4.19.84-微软-标准linux-云-工具-4.19.84-微软-标准 您还可能希望安装下列软件包之一以保持最新: linux.工具.标准linux.云工具.标准
发布于 2020-02-18 08:46:30
警告:未为内核4.19.84找到perf -microsoft
因为WSL2使用自定义的Linux内核。它的源代码可以在这里找到microsoft/WSL2-Linux内核。我们必须从它编译perf工具。
操作步骤
sudo apt install build-essential flex bison libssl-dev libelf-dev
git clone --depth=1 https://github.com/microsoft/WSL2-Linux-Kernel.git
cd WSL2-Linux-Kernel/tools/perf
make
perf
可执行文件将位于该文件夹中。
发布于 2020-12-13 13:13:38
您可以安装linux-tools-generic
。
apt install linux-tools-generic
然后使用install /usr/lib/linux-tools/<linux-version>-generic/perf
运行/usr/lib/linux-tools/<linux-version>-generic/perf
。
有些工具,如flamegraph
,将使用环境变量PERF
作为perf
路径。
PERF=/usr/lib/linux-tools/<linux-version>-generic/perf flamegraph -- my_program
发布于 2022-03-09 16:30:36
接受的答案是有效的。但是,缺少一些功能。
为了获得有用的信息,我必须安装下面的库,然后再运行make
。
libbabeltrace-dev
libunwind-dev
libdw-dev
binutils-dev
libiberty-dev
我不确定是否所有这些都是必要的。然而,这些都足以使cargo-flamegraph
(我的usecase)工作。
https://stackoverflow.com/questions/60237123
复制相似问题