当前位置: 首页 > 面试题库 >

转储进程的内存

段干河
2023-03-14
问题内容

读取/ proc / $ PID / maps时,将获得映射的内存区域。这是甩掉其中一个地区的方法吗?

$ cat /proc/18448/maps
...[snip]...
0059e000-005b1000 r-xp 00000000 08:11 40         /usr/local/lib/libgstlightning.so.0.0.0
005b1000-005b2000 r--p 00012000 08:11 40         /usr/local/lib/libgstlightning.so.0.0.0
005b2000-005b3000 rw-p 00013000 08:11 40         /usr/local/lib/libgstlightning.so.0.0.0
...[snip]...

谢谢


问题答案:

不!打电话ptrace()PTRACE ATTACH。然后打开/proc/<pid>/mem,寻找区域偏移量,然后按照中给出的那样读取区域的长度/proc</pid>/maps

这是我编写的在C语言中执行的程序。这是我编写的在Python(以及ptrace绑定)中执行的模块。最后,将程序的所有区域转储到files的程序。

请享用!



 类似资料:
  • 我们正在用java编写的Azure kubernetes上运行我们的kafka流应用程序。我们是库伯内特斯的新手。为了调试一个问题,我们需要对正在运行的pod进行线程转储。 以下是我们进行转储的步骤。 > < li> 使用以下docker文件构建我们的应用程序。 提交包含以下部署yaml文件的映像 apiVersion: apps/v1种类:部署元数据:名称:my-application-v1.0

  • 遵循下面的过程,但我无法分析转储生成。 null 提前谢了。

  • 问题内容: 我有Java应用程序,不幸的是,它在一段时间后开始消耗大量内存。使事情复杂化的是,它不仅是Java应用程序,还是JavaFX 2应用程序。 我怀疑可能存在一些内存泄漏,甚至在底层JavaFX调用和本机库中也是如此。 理想的解决方案是在某个时刻获取所有java对象的转储(及其内存使用情况),然后分析该转储。有什么办法可以做到这一点? 问题答案: 有很多方法可以获取堆转储,从简单的工具(例

  • 问题内容: 是否有可能仅从正在运行的nginx进程中获取nginx使用的配置? 获取conf文件路径。有时会显示出来,有时却不会。可能就像(与)一样 那么是唯一的解决方案吗? 从这个问题出发,是否可以直接从nginx进程中转储conf数据结构?或者至少转储conf文件路径? 问题答案: 从Nginx 1.9.2开始,您可以使用以下标志转储Nginx配置: —与相同,但另外将配置文件转储到标准输出(

  • 问题内容: 我需要一种 从应用程序内部 请求堆转储 的方法 。 基本原理:当遇到特定的错误情况时,我想转储堆,以便可以看到内存中有什么内容。 但是我想使它自动化(例如,当我检测到某些特定情况发生时。或者当看门狗不再收到ping命令时;当某些测试失败时)。因此,我需要一种从应用程序本身内部转储堆的方法。我似乎无法通过MX bean的东西找到它。尽管MX Bean可以通过监视器和“可拥有的同步器”信息

  • 我并不了解Java特别是Java调试,但在Jenkins中使用Monitoring进行堆转储,然后在Eclipse中使用MAT对其进行解码,显示总内存使用量为169.4MB,而在Jenkins中Monitoring似乎经常使用内存,GCs也经常运行。-XMX是4G。 为什么我只有169.4MB的mat?可能是因为在进行转储之前,Jenkins执行了GC吗?如果是,我是否可以避免它以看到完整的内存转