gpt4 book ai didi

C:获取当前范围内定义的所有变量

转载 作者:太空狗 更新时间:2023-10-29 15:53:25 26 4
gpt4 key购买 nike

此问题之前已针对其他语言提出过:Python , PHPJavaScript .

我想知道是否可以在 C 中执行此操作。我试图在执行期间的某一时刻获取函数中所有变量的快照,然后在稍后的某个时刻将其与另一个快照进行比较时间。

编辑
快照可以是范围内所有变量及其当前值的列表。我可以手动编写代码,但我想知道是否有更快的处理方法。

最佳答案

是与否

有语言功能吗? 没有。

能否以独立于系统的方式完成? 没有。

有没有简单的方法? 没有。

是否可以通过一些努力以特定于系统的方式完成? 是的。

总而言之,没有好方法也没有简单方法,但如果你真的真的想做,是可以做到的。从广义上讲,程序是为调试而编译的,然后您在运行时打开图像文件,找出存在哪些变量以及它们存储在哪里。最有可能的是,实现这一点的实用方法是编写一个像 gdb 这样的调试器的脚本,让它完成低级工作。

如果您的系统已经具有运行时回溯功能,那么您可以利用它。

另一种可能性:某些操作系统支持读取符号表的库函数。历史 Unix 和 Mac OS X 有 nlist(3).某些版本的 Linux 和 Solaris 有 dlinfo(3). CLI 工具 called nm(1) (你可以 popen(1) 它)是普遍可用的。

关于C:获取当前范围内定义的所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706254/

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