ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

drgn was built without libkdumpfile suppor问题

2022-09-11 09:00:36  阅读:191  来源: 互联网

标签:built libkdumpfile setup py without 安装 drgn python3


背景

在使用pip3安装了最新的drgn后执行

drgn  -s vmlinux -c ./vmcore

命令后报出如下错误:

drgn 0.0.20+unknown (using Python 3.6.8, elfutils 0.186, without libkdumpfile)
Traceback (most recent call last):
  File "/usr/local/bin/drgn", line 11, in <module>
    load_entry_point('drgn==0.0.20+unknown', 'console_scripts', 'drgn')()
  File "/usr/local/lib64/python3.6/site-packages/drgn-0.0.20+unknown-py3.6-linux-x86_64.egg/drgn/internal/cli.py", line 164, in main
    prog.set_core_dump(args.core)
ValueError: drgn was built without libkdumpfile support

 

问题原因

默认情况下pip3安装的drgn没有集成kdump格式解析功能,默认是/proc/kcore解析;因此要先安装libkdumpfile,且把kdump功能编译到drgn。

解决方案

1 安装libkdumpfile库

对于Fedora或者EPEL on RHEL/CentOS >= 8系统可以通过dnf install libkdumpfile-devel来安装;

对于其他版本的centos需要通过源码来安装:从libkdumpfile下载源码,然后进入源码目录执行如下几个步骤进行编译、安装。

autoconf
./configure
make
make install

注意:1)  autoconf命令 可能会失败,报错autoconfig:possibly undefined macro: AM_INIT_AUTOMAKE,此时可通过autoreconf --install来解决。

        2) 上面的安装路径可能非标准的路径,可能会影响后续drgn编译。对于这种情况有两种解决方案,一种是在configure时指定安装路径参数,安装在自己的标准系统路径;另一种解决方法会在下面drgn编译是讲。

2 编译安装drgn

2.1 先安装依赖,下面是centos的安装;其他系统可参考drgn官方docs;

$ sudo dnf install autoconf automake elfutils-devel gcc git libtool make pkgconf python3 python3-devel python3-pip python3-setuptools

2.2 到drgn仓库下载代码,进入源码目录;

2.3 修改编译脚本,并添加libkdumpfile,如果libkdumpfile的安装路径不是默认的路径,还需要修改PKG_CONFIG_PATH.

diff --git a/setup.py b/setup.py
index 2c0703a..f94615b 100755
--- a/setup.py
+++ b/setup.py
@@ -67,6 +67,8 @@ class build_ext(_build_ext):
                 os.path.relpath("libdrgn/configure", self.build_temp),
                 "--disable-static",
                 "--enable-python",
+                "--with-libkdumpfile=yes",
+                "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/"
             ]

2.4 编译、安装

python3 setup.py build
sudo python3 setup.py install

标签:built,libkdumpfile,setup,py,without,安装,drgn,python3
来源: https://www.cnblogs.com/liuhailong0112/p/16671577.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有