有没有什么工具可以查看/编辑 Linux 上运行进程的用户空间内存?
这将是一个很好的学习工具。
答案1
进程的内存以文件形式提供,/proc/12345/mem
其中 12345 是进程 ID。不过,您暂时无法直接从中了解任何信息。首先要弄清楚的是哪些部分被映射了;此信息可在/proc/12345/maps
和中找到/proc/12345/smaps
。 中的条目/proc
记录在内核文档中Documentation/filesystems/proc.txt
。该lsof
命令将以更易读的方式提供有关进程已映射到内存的文件的信息。
使用调试器查看正在运行的进程可能更有启发性。Linux 下常用的调试器是数据库.gdb有一个简单的命令行界面;领域驱动设计和Emacs提供更友好的用户界面。为了获得最佳效果,请查看仍具有调试符号且源代码可用的程序(即查看刚刚编译-g
且尚未剥离的程序)。
您还应该了解如何strace
观察进程正在进行的系统调用,以及ltrace
如何观察(某些)库调用。