linux - 读取 /proc/PID/maps 的短期进程
问题描述
我有一个在执行后不久退出/段错误的二进制文件。我试图在它退出之前读取这个二进制文件的 /proc/PID/maps 但没有运气。
我试过cat /proc/($./binary [input] & echo $!)/maps
应该导致 /proc/pidofprocess/maps 但总是得到 No such file or directory 。
我的目标是查看在后续运行中加载到哪里。
解决方案
在整个结束之前,您的解决方案cat /proc/$(<pipeline>)/maps
不会调用(即使您在其中使用),所以您永远不会得到您的.cat
<pipeline>
&
maps
另一方面,
<pipeline> & cat /proc/${!}/maps
将立即返回。当然,当您的二进制文件立即退出时,cat
可能仍然运行太晚而无法捕获 /proc/${!}/maps
但你可以尝试:
while true; do; ./binary [input] & cat /proc/${!}/maps ; done
这会重新开始你binary
和cat
整天之间的比赛,有时 cat
可能会赢(在我的情况下,它确实是,ls <nonexisting file>
而不是./binary
30 次中的 1 次)
这会在您的终端上打印很多垃圾,但您可以通过重定向您cat
的 s 输出来收集成功的地图:
while true; do; ./binary [input] & cat /proc/${!}/maps >> mymaps; done
优雅的?不。有效:我希望如此!
推荐阅读
- python - 将空列表替换为诸如“a”之类的字符
- javascript - 页面上传输的 Javascript 数据量
- javascript - 在下拉列表中实现按日期过滤功能
- javascript - 从其他数组jquery中删除多个数组
- tyk - TYK 用于 POST 参数
- c++ - 未定义对 libssh 的“_imp__ssh_new”的引用
- cucumber - 如何使用其他 When 语句在 Cucumber 中定义 Given 语句?
- php - 在 jQuery 中打印 PHP 对象数组
- python - 如何在python中创建多个变量的所有可能组合
- google-app-maker - 如何在 AppMaker 中获取角色电子邮件地址