2

我正在做一个项目,我需要跟踪任何给定应用程序代码中特定变量集的更改,以对内存访问模式进行建模。

我主要想到了两种方法,请给出您的想法。

  1. 我最初的想法是像许多像 gprof 这样的分析器那样做,我在编译之前在目标应用程序代码中添加检测代码,并分析此检测代码生成的日志以获取所需的信息。

为此,我只能想到某种源到源编译器,它解析给定的代码并将检测代码(相同语言的源代码编译器)注入应用程序,我以后可以编译和运行以获取所需的日志。

这看起来是对的还是我过度设计了?如果没有,是否有工具可以让我(相对)轻松地构建源代码编译器?

  1. 我读到了 GDB 对 python 的支持,所以,我在想是否可以编写一个 python 脚本来获取一组变量作为配置文件,并设置观察点并在每次写入被监视的变量时记录。我尝试使用此 GDB 功能,但在我的 Ubuntu 机器上,它现在似乎无法正常工作。 http://sourceware.org/gdb/onlinedocs/gdb/Python.html#Python

而且,应用程序的语言将是 nesC(我猜 nesC 在编译过程中会转换为 C)(并且应用程序将像我计算机上的本机应用程序一样在 TOSSIM 上运行)。

4

1 回答 1

2

See my paper on instrumenting codes using a program transformation systems (PTS) (PTS is a very general kind of "source-to-source compiler).

It shows how to install probes in code in a pretty straightforward way, once you have a grammar for the language of interest. The underlying tool, DMS, makes it fairly easy to define the grammar too.

于 2013-02-21T10:55:52.740 回答