Tool to find global/static variables in C codebase
I have created a C++-wrapper (a class) for a larger C codebase which was originally written for a microprocessor. Now开发者_开发技巧 we want to simulate multiple instances of "agents" running this C code. As we want to see how they interact, we need to run them simultaneously. If possible, we'd like to run them in one process.
This failed at first because the C code used static variables and thus wasn't thread safe. We thought we had removed all static and global variables but still don't get the expected results. (Everything runs fine if we have only one instance.)
So my question is: instead of searching the whole code base for such variables, is there any tool that might assist to find the problem? The C code was written in Keil μVision and is now compiled in Visual Studio 2008 Team Suite.
Thanks for suggestions!
If you can build it in a more unix-ish environment, you should have a size
command you can run on .o
files that will tell you the data
and bss
segment sizes for each .o
file. This is a very quick way to find variables of static storage duration (just look for nonzero sizes in either of these fields).
Perhaps you could try building with mingw or cygwin, or looking for a similar tool in the MSVC toolset.
精彩评论