列出 C 程序中的全局变量

发布于 2024-11-09 01:46:00 字数 107 浏览 3 评论 0原文

有没有一个工具可以列出 C 程序中的所有全局变量?更具体地说,是否有一个简单的命令行工具可以执行此操作,即不是重量级 IDE、CASE、图形工具包系统等,而只是可以像 foo *.c 一样运行的东西?

Is there a tool around that will list all the global variables in a C program? More specifically, is there a simple commandline tool that will do this, i.e. not a heavyweight IDE, CASE, graphical toolkit system etc., but just something that can be run like foo *.c?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

风启觞 2024-11-16 01:46:00
ctags -R -x --sort=yes --c-kinds=v --file-scope=no file "c:\my sources" > c:\ctagop.txt
ctags -R -x --sort=yes --c-kinds=v --file-scope=no file "c:\my sources" > c:\ctagop.txt
素年丶 2024-11-16 01:46:00

如果您碰巧在大多数 UNIX 上编译该文件,您将拥有 nm ,它仅列出所有链接器符号。这些符号被分为不同的组(有点依赖于平台),因此您应该很容易找到哪些变量。

If you happen to compile the file on most unixes you have nm that just lists you all linker symbols. These symbols are classified in different groups (a bit platform dependent) so you should easily find out which the variables are.

蓝海似她心 2024-11-16 01:46:00

尝试ctags。或者,带有 -aux-info 的 gcc。还有 gccxmllibclang 但这两个并不是很简单。

Try ctags. Or, gcc with -aux-info. There is also gccxml and libclang but those two aren't very simple.

何止钟意 2024-11-16 01:46:00

列出程序“foo”的所有全局变量(linux/gnu):
如果程序是使用 -g 编译的(gcc -g -o foo main.c)
纳米富| grep “B”| sed -e "s/^[^B]*B//g"
将列出所有全局变量, nm 列出对象, grep 分离出全局变量, sed 清理表示。

实际上,我编译的大多数内容都是使用 Makefile 进行的,因此 Makefile 中的 CFLAGS=-g -pg -Wextra ,因此可以扫描可执行文件,直到

stackechange 上的“make dist”user1717828 提供 grep 模板

to list all globals (linux/gnu) for program 'foo':
if the program is compiled with -g (gcc -g -o foo main.c)
nm foo | grep " B " | sed -e "s/^[^B]*B//g"
will list all globals, nm lists the objects, grep seperates out the global variables, and sed cleans up the presentation.

Actually most stuff I compile is with Makefiles so it is CFLAGS=-g -pg -Wextra in the Makefile, so the executable can be scanned until a 'make dist'

user1717828 on stackechange provided the grep template

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文