我有一个C程序,我想跟踪属于与具体输入对应的执行路径的所有分支条件。例如,考虑一个简单的程序:给定输入的程序分析
#include <stdio.h>
#include <string.h>
int test(char* a) {
if (strcmp(a, "123") == 0)
return 0;
if (strcmp(a, "123") < 0)
return -1;
else
return 1;
}
int main() {
char* a;
return test (a);
}
随着a = "1234"
,程序返回1
和相应的路径条件是strcmp(a, "123") > 0
。我想收集strcmp
,"123"
和此运算符的值(-1)。有什么办法可以让我这么做吗?我首先想到使用一些C语言分析器,但似乎并不那么简单。要获取参数的值,我们必须处理指针分析或外部库调用,这是我不知道如何解决的。
您正在问一个工具问题。 SO狂热者可能会关闭这个。 –
@IraBaxter我在问工具/方法:)。安,我会编辑它。 –