0

我正在寻找一种工具,它会告诉您从给定的头文件中使用了哪些符号(类型、预编译器定义、函数等)。我正在做一个从 Solaris 到 Windows 的大型驱动程序的移植,并且弄清楚事情的来源变得越来越困难,所以这将是一个巨大的帮助。有任何想法吗?

编辑:不是绝对要求,但适用于 Windows 的工具将是一个加号。

编辑#2:为了澄清我正在尝试做的事情,我有一个我正在尝试移植的代码库,它带来了大量的标头。我想要的是一个工具,给定 foo.c,它会告诉我它使用 bar.h 中的哪些符号。

4

4 回答 4

1

我喜欢KScope,它可以处理非常大的项目。

KScope http://img110.imageshack.us/img110/4605/99101zd3.png

于 2008-12-22T19:01:11.530 回答
1

我在 Linux 和 Windows 上都使用: gvim + ctags + cscope
同样的环境也可以在 solaris 上运行,但这当然会迫使你使用 vim 作为编辑器,我很确定emacs也可以与 ctags 和 cscope 一起使用。
你可能想尝试一下vim,一开始有点难,但很快你就不能用另一种方式工作了。最高效的编辑器(恕我直言)。

评论回放:

查看cscope 人

...

查找此函数调用的函数:
查找调用此函数的函数:

...

我认为这正是您要寻找的……如果不是,请澄清。

评论重播2:

好的,现在我明白你了。我建议的工具可以帮助您理解代码流,并找到定义了某些符号,但不是您要查找的。

不是您要的,但由于我们在谈论,我对移植和驱动程序有一些经验(请随意忽略)

编译器似乎足以胜任您的任务。您只是从原始文件开始并让编译器找到缺少的部分,这将是很多空存根,您将编译代码。

至少在开始时,我建议您创建大量存根并尽可能少地修改原始代码,稍后一旦您开始工作,您就可以优化。

根据您要移植的驱动程序类型(我假设内核驱动程序),它可能会更复杂,Windows 和 Solaris 子系统不太相似。我们确实有一个在 solaris 和 windows 上工作的驱动程序,但它从一开始就被设计为多平台。

于 2008-12-22T19:10:51.683 回答
0

试试doxygen,它可以生成图形和/或 HTML 并且高度可定制

于 2008-12-22T19:14:27.820 回答
0

emacsetags

我利用 make 为我运行标签索引——这样我就可以用一个命令索引一个大型项目。我一直在考虑建立一个主索引和单独的模块索引,但还没有开始实施这个......


@Ilya :黎明的手枪可以接受吗?

于 2008-12-25T22:22:02.963 回答