问题标签 [jprobe]
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.
linux - 使用 jprobe 时指定 linux 内核模块依赖
我正在构建两个 linux 内核模块。
第二个模块(debugging
以下称为模块)主要用于jprobe
拦截第一个模块(称为main
模块)内部函数的调用并打印一些状态以进行调试。他们工作得很好。但是我有一个关于debugging
模块对main
模块的依赖性的问题。
显然,debugging
模块依赖于main
模块,因为在debugging
没有加载模块的情况下main
加载模块时,我得到了错误
但是,modules.dep 似乎无法弄清楚。通过查看
我没有找到任何与main
模块相关的未解析符号。但是jprobe
需要模块中的函数名main
来拦截,那就是.kp.symbol_name
在jprobe
结构中分配的字符串。
在这种情况下我们如何指定依赖关系?
java - 为 Eclipse 安装 jProbe 插件
我们目前正在为我们的应用程序进行性能和内存分析。我们正在使用 jProbe 9.5 来执行此分析。能否请您提供为 Eclipse 安装 jprobe 插件的步骤。我也提到了这个 [link] JProbe Plugin For Eclipse 3.7,但是提供的链接并没有清楚地解释这个过程。
非常感谢您对此的任何帮助。谢谢
java - Jprobe Profiling java应用程序
我使用 jprobe 来分析我的 java 应用程序。我试图分析的 java 应用程序是一个基于 Eclipse 的应用程序。我们为应用程序创建了多个项目以提供各种功能。当我们构建应用程序时,应用程序作为产品导出,我们会收到一个 .exe 文件。我想知道如何使用 jprobe 分析 .exe 文件。由于从帮助文档中,我可以看到 jar 文件将用于分析应用程序。但在我们的例子中,应用程序是一个 exe 文件。
非常感谢您对此的任何帮助。
memory - 使用 jProbe 分析 java 应用程序的问题
我目前正在使用 jprobe 为我们基于 eclipse 的应用程序进行动态内存分析。启动 eclipse 应用程序和 jprobe 后,当我尝试分析 eclipse 应用程序时,应用程序突然关闭,导致致命错误。将生成致命错误日志文件。在致命错误日志文件中,我可以看到 PermGen 空间似乎已满。以下是我在日志文件中获得的示例堆摘要
我尝试使用命令 -XX:MaxPermSize=512m 来增加 permGen 空间。但这似乎不起作用。我想知道如何通过命令提示符增加 PermGen 的大小。我想知道是否必须转到计算机中的 java 位置并执行上述命令,还是应该专门为 eclipse 应用程序或 Jprobe 增加 PermGen 空间?请指教。
非常感谢您对此的任何帮助。
java - 将 jprobe 与 Eclipse 集成?
我按照此链接将 Jprobe 与 eclipse Indigo 集成。但是,当我尝试使用“配置文件”选项从 Eclipse 下的服务器视图启动 tomcat 时,出现以下错误
在 Eclipse 控制台视图下,我看到以下错误
不支持最新版本的 jvm 之一,即 jdk1.7.0_51 吗?我真的很怀疑这一点。但不确定问题出在哪里?
c - Jprobe to 'do_execve' 在 Ubuntu 14 上不起作用,但在 Ubuntu 12 上工作
我正在尝试使用 Jprobes 在 Linux 内核上执行函数“do_execve()”的挂钩,但我遇到了某些系统的问题。我尝试使用我在 Ubuntu 12、64 位(内核版本 3.11)上在线找到的代码:
钩子.c:
生成文件:
该模块按预期工作。它首先在系统上正确编译,然后使用函数“insmod”(具有 ROOT 权限)插入。运行 dmesg 显示正确的输出:
当我在 Ubuntu 14、64 位(内核版本 3.13)系统上尝试相同的代码时出现问题。我在系统上重新编译它并像在以前的系统上一样插入它,但是这次它不起作用。我没有收到任何错误,并且打印了成功消息(“在 [ADDRESS WAS HERE] 处种植 jprobe,处理程序地址 [ADDRESS WAS HERE]”),但未打印“do_execve”行。我扫描了谷歌,但找不到解释或解决方案。有任何想法吗?
注意:我还尝试在 Ubuntu 14 上连接 'do_fork()' 并且成功了!这只是'do_execve()'的东西,我不知道是什么!
linux - jprobe do_execve 不适用于内核 4.1
我想在 do_execve 上设置一个 jprobe 钩子来捕获每个执行的程序。
我的代码正在<= 3.2 linux内核(debian)上运行。这是我在 linux 内核 3.2 上的输出:
在 4.1 内核上,我得到相同的结果(所有内容都已注册),但没有“execve”:
这是我的代码:
当我在 kallsyms 上执行 grep 时,我得到了 3.2:
在 4.2 上:
我什至尝试将函数(因为 do_execve 原型已更改)更改为:
甚至没有帮助。
我可以在 do_fork 或 sys_open 等其他函数上设置挂钩,但不能在 do_execve 上设置。为什么?有人有想法吗?为什么它不再工作了?
编辑:
我也在挂钩 do_execveat:
linux-kernel - 如何在使用 Jprobe 时传递活动进程的进程 ID
我正在尝试制作一个内核模块,它将活动进程的进程 ID 作为参数作为模块参数,并跟踪目标进程出现故障的所有虚拟地址。
执行时 - sudo ./module_name Parameter_1
如果我想传递活动进程的 ID,Parameter_1 应该是什么。
c - Jprobe 不会监控所有的 `do_execve` 调用
我知道过去有一个关于此的问题,但我没有找到解决方案。
我正在编写下一个内核模块来跟踪do_exec
调用。AFAIK 每个新的进程映像(不是创建)都应该像这样加载,所以我想我可以用 this 追踪所有执行jprobe
。
不幸的是,唯一的输出jprobe
是这些:
execve called /usr/lib/systemd/systemd-cgroups-agent by kworker/u8:3
我的模块代码如下:
我正在使用 CentOS 7,内核版本 3.10.0-514.el7.x86_64
任何帮助表示赞赏!
linux - kprobe 不适用于某些功能
我正在尝试使用 kprobe 来跟踪handle_pte_fault
linux 内核中的函数调用。我可以探测handle_mm_fault
,但是当我尝试探测时handle_pte_dault
,kprobe 的处理程序handle_pte_fault
不会打印任何内容。
使用这个我发现我无法探测一个内联的函数,也可能是静态的。所以,我改变了handle_pte_fault
函数的定义如下并重新编译了内核。
从:
至:
我还添加了以下内容以确保handle_pte_fault
符号存在
我仍然无法跟踪/探测 handle_pte_fault 功能。任何帮助或解释。这是否意味着 kprobe 仅适用于某些随机函数?
我正在使用内核 v4.13。
下面是我正在使用的 kprobe 的内核模块代码: