【问题标题】:Systemtap error on ubuntuubuntu 上的 Systemtap 错误
【发布时间】:2017-10-12 11:56:02
【问题描述】:

在ubuntu上安装systemtap后,测试例子hello-stap.stp。但是有一些错误。

我该如何解决这个问题?

谢谢

systemtap 版本

Systemtap 转换器/驱动程序(版本 2.9/0.165,Debian 版本 2.9-2ubuntu2 (xenial))

版权所有 (C) 2005-2015 Red Hat, Inc. 和其他

这是免费软件;复制条件见来源。

启用的功能:AVAHI LIBSQLITE3 NLS NSS TR1_UNORDERED_MAP

你好-stap.stp

probe begin
{
    print("hello world\n")
    exit()
}

这是错误信息。

错误 1:

在 /usr/share/systemtap/runtime/linux/runtime.h:204:0 包含的文件中, 来自 /usr/share/systemtap/runtime/runtime.h:24, 来自 /tmp/stapd8LhT7/stap_24feca2d4e5abb002d28b0bc184e6d61_945_src.c:25: /usr/share/systemtap/runtime/linux/access_process_vm.h:在函数‘__access_process_vm_’中: /usr/share/systemtap/runtime/linux/access_process_vm.h:35:29:错误:传递“get_user_pages”的参数 1 从指针生成整数而无需强制转换 [-Werror=int-conversion] ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma); ^

【问题讨论】:

标签: ubuntu systemtap


【解决方案1】:

我遇到了同样的问题,所以我最终从源代码构建 systemtap。我在 xenial 上使用 v3.1,到目前为止一切顺利。

## Install build-required packages
apt-get update && \
        apt-get install -y build-essential gettext elfutils libdw-dev python wget tar && \
        apt-get clean;

## Build from source
wget https://sourceware.org/systemtap/ftp/releases/systemtap-3.1.tar.gz
tar xzvf systemtap-3.1.tar.gz

## Instruction: https://sourceware.org/git/?p=systemtap.git;a=blob_plain;f=README;hb=HEAD
cd systemtap-3.1/ && \
         ./configure && \
         make all && \
         make install ;

【讨论】:

  • 尝试你的方法,但仍然无法正确编译简单的脚本。
  • 对不起,除了 systemtap-4.0.tar.gz 可以工作之外,它可以工作。非常感谢!
【解决方案2】:

我自己也遇到了这个问题。总之,Ubuntu的systemtap包目前已经过时了。

解释: 前段时间,内核更新了 get_user_pages() 函数,这意味着使用之前的函数原型的任何东西现在都无法编译。这也发生在 VMWare 的 vmmon 和 vmnet 模块上。当您运行 stap 时,它会生成一个使用 get_user_pages() 的内核模块源文件,对其进行编译并将其加载到内核中。但它生成的 C 代码使用旧的函数定义,因此无法构建。

目前没有解决方案:您可以从源代码构建 SystemTap(我没有这样做,但我也没有很努力地尝试)或告诉 Ubuntu 升级他们损坏的 systemtap 包 - 我提交了一个bug report,或许你可以确认一下。

我的解决方案是切换到 Fedora 26 并运行 /usr/bin/stap-prep 来安装先决条件。工作顺利!

【讨论】:

  • 是的,从最新的源代码版本构建 systemtap 会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2016-03-25
  • 2018-01-03
  • 1970-01-01
相关资源
最近更新 更多