用于查看/编辑正在运行的进程的用户空间内存的工具?

用于查看/编辑正在运行的进程的用户空间内存的工具?

有没有什么工具可以查看/编辑 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如何观察(某些)库调用。

相关内容