问题标签 [systemtap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1452 浏览

linux - 在哪里可以找到 ubuntu 12.04 的 debuginfo 内核 rpm?

我正在尝试在 ubuntu 上运行 systamtap,我有默认的 ubuntu 12.04,没有安装任何 debuginfo 包。

我收到以下错误:

语义错误:在“/lib/modules/3.8.0-35-generic/build”下缺少 x86_64 内核/模块调试信息 [man warning::debuginfo]

有人可以指导我如何在我的系统上启用调试信息吗?我只找到与 fedora 或 rhel 相关的软件包。

我还需要使用 debuginfo 编译内核吗?

我从 ubuntu 找到了这个有用的链接:http: //manpages.ubuntu.com/manpages/raring/man1/debuginfo-install.1.html

但是当我尝试 sudo debuginfo-install kernel 我得到 No debuginfo packages available to install

0 投票
1 回答
2394 浏览

linux - sock_sendmsg():内核的隐式函数调用

我试图通过将处理程序挂钩到sock_sendmsg()定义在linux/socket.c. 我可以通过编写一个 systemtap 探测处理程序来probe kernel.function("sock_sendmsg@net/socket.c")转储所有通过第二个参数传递的数据块struct msghdr *msg

以下是摘录net/socket.c

我测试了我的 systemtap 脚本hook_sendmsg.stp。首先,我hook_sendmsg.stp在一个终端中运行。然后我打开另一个终端并调用telnet命令来连接stackoverflow.com并输入HEAD / HTTP/1.0<Enter twice>终端。我从以下输出hook_sendmsg.stp

这表明sock_sendmsg()在 的上下文中总共被调用了 6 次telnet。显然,第 3 次和第 4 次是对 Google 的公共 DNS 服务器8.8.8.88.8.4.4. 第 5 行和第 6 行是从 发送的两行 HTTP 请求telnet。但是第 1 次和第 2 次的要求是什么?他们是由内核在内部调用的吗?

提前致谢。

0 投票
2 回答
1603 浏览

ubuntu - ubuntu 上 java 的 Systemtap

我想,不仅要跟踪 java 进程,还要在 systemtap 中使用对 openjdk 跟踪的新支持,包括热点跟踪和方法跟踪。

因此,我安装了 ddebs.ubuntu.com 存储库来安装内核调试符号——然后我可以调用一个使用内核 Tapset 但尚未使用 Java 的 stap 脚本。我确实注意到了一个名为 openjdk-7-jdk-dbgsym 的软件包,并尝试安装它以查看它是否具有 openjdk 的 systemtap Tapsets,但这与 openjdk-7-dbg 软件包冲突(然后 ubuntu 不让我错误报告,因为 openjdk-7-jdk-dbgsym 软件包不是来自“官方”服务器。如果我卸载那个并安装另一个,它无论如何也无济于事。

有没有人在ubuntu上成功做到这一点?

编辑:为了在具有 java byteman 支持的 ubuntu 上成功地从源代码构建 systemtap,您必须通过

(或您奇怪的 jvm 位置)

否则,建筑不会做罐子,所以需要。然后你必须按照源目录 java/README 文件中的步骤进行安装(不要忘记修改路径)。

还有另一个 --with-dyninst 选项,我没有尝试过,但可能会为其他调用模式“修复”它

编辑2:好吧,它可以编译甚至运行,但即使在给出的示例和设置了 BYTEMAN_HOME 的情况下,它也不会输出任何内容......

0 投票
1 回答
165 浏览

ubuntu - SystemTap 语义错误,找不到成员“mnt_parent”

我刚刚安装了systemtap。当我想使用 stap -o 将结果发送到文件中时,出现错误:sudo stap -o a.out b.stp

我对 systemtap 使用的语言感到很困惑。谁能帮我?

0 投票
0 回答
347 浏览

eclipse - Eclipse/Ubuntu 13.10 x64下C++程序调用图

我想在 Eclipse / Ubuntu 13.10 x64 下绘制 C++ 程序的调用图。

我已经安装了 SystemTap 并且能够正确启动“初始测试”。

但是当我尝试获取程序的调用图时,我得到:

  • 如果我右键单击我的项目 -> 分析工具 -> 函数调用图,则fd 编号错误
  • 如果我从“运行”菜单启动分析,则输出文件损坏

如何在 Ubuntu 上正常工作?

0 投票
1 回答
645 浏览

systemtap - SystemTap 注册错误

你有没有看到这个警告:probe kernel.function("some function@some file") (address 0xSomething) registration error (rc -84) ?如果是这样,你做了什么来解决它?这是一个警告,发生在运行时(通过 5 之后)。但它会跳过使用注册错误的特定功能。但是,我需要探索这个功能。请注意,这些函数不是 __kprobes。

我的内核是 3.11.0-15-generic (Ubuntu 12.04),SystemTap 版本是 2.4。

更新 显然我搞砸了 SytemTap 的安装。请在此处查看第二条评论(由我撰写)。

0 投票
0 回答
85 浏览

remote-debugging - systemtap 远程调试用户进程与源代码

我有一个mongod在机器 A 上运行的剥离版本(没有符号表),它是一个生产服务器。
在机器 BI 上具有源代码和未剥离的mongod二进制文件(带有符号表)。我想通过以下方式远程调试生产问题:

像这样的探针有效:

但另一个探测:

才不是。

我们在 A 和 B 上都有完全相同的二进制版本,并且二进制路径也相同。所有探针在机器 B 上按预期工作。

mongod在这种情况下如何远程调试?可能吗?

0 投票
2 回答
1348 浏览

ubuntu - kprobes 在 Ubuntu 中不起作用

我正在尝试从 Systemtap 运行标准示例脚本之一。procmod_watcher.stp 使用 kprobes 来监视 fork、exec 等。但是当我尝试运行此脚本时出现错误。

果然:stap -L 'kprobe.function("do_execve")'什么都不返回。怎么会这样?

我正在使用 Ubuntu,已按照以下说明进行操作: Ubuntu @sourceware 上的 Systemtap

我还尝试编译我自己的内核并确保通过配置启用 Kprobes、debug_info 和所有其他必需项。我犯了同样的错误。

我已经在 Fedora 上尝试过相同的脚本,它几乎是开箱即用的。但是我只有一个开启了fedora的虚拟机,并且想继续使用ubuntu一段时间。

我需要做什么才能在 ubuntu 的 systemtap 中启用 kprobes?

0 投票
1 回答
259 浏览

linux - Error in the systemtap script

I am trying to execute a systemtap script. But during execution i got the following semantic error.

Help me on this

0 投票
1 回答
1019 浏览

android - Android Systemtap 无法加载模块

我正在尝试在我的 GT-i9300 上加载一个简单的 Systemtap 模块

我得到错误

插入模块“/sdcard/systemtap/modules/monitor_fopen.ko”时出错:模块中有未知符号

我采取的步骤:


1.在设备上获取root

我通过安装这个Rom做到了这一点

2.构建自定义内核

3. Flash 内置 zImage 到设备

4.在PC上安装systemtap

5.创建一个.stp文件

6. 使用编译过的内核从 .stp 文件中构建 .ko 文件

7.在运行自定义内核的设备上安装Systemtap Android App

https://github.com/flipreverse/systemtap-android-app

8.启动应用程序并授予应用程序root访问权限

Superuser.apk 应该询问您 Systemtap 是否可以具有 root 访问权限

9.将步骤6中的.ko文件推送到sdcard

10.加载模块

11.读取模块加载结果

加载的内核模块:monitor_fopen.ko 输出文件:monitor_fopen_2014.mm.dd_sss.* 插入模块“/sdcard/systemtap/modules/monitor_fopen.ko”时出错:模块中存在未知符号


我不知道我在哪一步出错了。有人有线索吗?