在C代码库中查找全局/静态变量的工具
我为一个更大的C代码库创建了一个C++包装器(类),它最初是为微处理器编写的。现在我们要模拟运行此C代码的“代理”的多个实例。当我们想看到它们如何交互时,我们需要同时运行它们。如果可能,我们希望在一个进程中运行它们 这在一开始失败了,因为C代码使用了静态变量,因此不是线程安全的。我们认为我们已经删除了所有静态和全局变量,但仍然没有得到预期的结果。(如果我们只有一个实例,那么一切都会正常运行。) 所以我的问题是:除了在整个代码库中搜索这些变量之外,是否有任何工具可以帮助找到问题?C代码是用KeilμVision编写的,现在在VisualStudio2008团队套件中编译在C代码库中查找全局/静态变量的工具,c,multithreading,thread-safety,C,Multithreading,Thread Safety,我为一个更大的C代码库创建了一个C++包装器(类),它最初是为微处理器编写的。现在我们要模拟运行此C代码的“代理”的多个实例。当我们想看到它们如何交互时,我们需要同时运行它们。如果可能,我们希望在一个进程中运行它们 这在一开始失败了,因为C代码使用了静态变量,因此不是线程安全的。我们认为我们已经删除了所有静态和全局变量,但仍然没有得到预期的结果。(如果我们只有一个实例,那么一切都会正常运行。) 所以我的问题是:除了在整个代码库中搜索这些变量之外,是否有任何工具可以帮助找到问题?C代码是用Keil
谢谢你的建议 如果您可以在一个更unix的环境中构建它,您应该有一个
size
命令,可以在.o
文件上运行,该命令将告诉您每个.o
文件的数据和bss
段大小。这是一种快速查找静态存储持续时间变量的方法(只需在这些字段中查找非零大小)
也许您可以尝试使用mingw或cygwin进行构建,或者在MSVC工具集中寻找类似的工具。如果您可以在更unix的环境中构建它,您应该有一个size
命令,可以在.o
文件上运行,该命令将告诉您每个.o
文件的数据和bss
段大小。这是一种快速查找静态存储持续时间变量的方法(只需在这些字段中查找非零大小)
也许您可以尝试使用mingw或cygwin构建,或者在MSVC工具集中寻找类似的工具。您在MSVC中找到类似的工具了吗?您在MSVC中找到类似的工具了吗?