我正在做一个项目,我需要跟踪任何给定应用程序代码中特定变量集的更改,以对内存访问模式进行建模。
我主要想到了两种方法,请给出您的想法。
- 我最初的想法是像许多像 gprof 这样的分析器那样做,我在编译之前在目标应用程序代码中添加检测代码,并分析此检测代码生成的日志以获取所需的信息。
为此,我只能想到某种源到源编译器,它解析给定的代码并将检测代码(相同语言的源代码编译器)注入应用程序,我以后可以编译和运行以获取所需的日志。
这看起来是对的还是我过度设计了?如果没有,是否有工具可以让我(相对)轻松地构建源代码编译器?
- 我读到了 GDB 对 python 的支持,所以,我在想是否可以编写一个 python 脚本来获取一组变量作为配置文件,并设置观察点并在每次写入被监视的变量时记录。我尝试使用此 GDB 功能,但在我的 Ubuntu 机器上,它现在似乎无法正常工作。 http://sourceware.org/gdb/onlinedocs/gdb/Python.html#Python
而且,应用程序的语言将是 nesC(我猜 nesC 在编译过程中会转换为 C)(并且应用程序将像我计算机上的本机应用程序一样在 TOSSIM 上运行)。