gpt4 book ai didi

c - 将程序状态导出到 procfs?

转载 作者:太空狗 更新时间:2023-10-29 14:54:20 27 4
gpt4 key购买 nike

我可以在 procfs 中创建任何文件映射来反射(reflect)我的程序的内部状态吗?

例如,

main.c:

char *message;

...

假设 pid 是 1200,是否可以创建一个临时文件/proc/1200/variables/message,它将反射(reflect)消息变量?

我想我需要使用 proc fs,因为有/proc/.../{net, fd, task, etc.},如果我想在过程 fs?

最佳答案

没有工具可以完成您想完成的事情。

有些东西关闭 -- gdb(1) 知道如何内省(introspection)正在运行的程序并显示某些变量的值(并非所有变量都在编译后存活-- 虽然调试 -g 标志帮助 gdb(1) 发现可能对您的程序进行了哪些优化。

FUSE项目使用户空间程序可以通过内核为其他进程提供文件系统。您可以直接使用 FUSE 从您的程序中导出选定的变量,或者您可以尝试一些更雄心勃勃的事情并编写工具来封装 gdb(1) 的内省(introspection)能力和 FUSE 的发布能力,并为世界。

您也可以考虑使用 9p从您的程序内部——它在本质上类似于 FUSE,允许程序通过文件系统接口(interface)为其功能提供接口(interface)。 (您可以在 wmii window manager 中看到它的使用,其中可以通过文件系统接口(interface)对窗口管理器进行数量惊人的控制,从而可以使用您喜欢的任何语言轻松进行编程。)您可以再次将其与 gdb(1) 的内省(introspection)能力试图提供这一点。

我希望这样的项目值得高级项目或研究生院项目——而不是很快就能完成的事情。

关于c - 将程序状态导出到 procfs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8192937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com