나는 C 프로그램을 가지고 있으며 구체적인 입력에 해당하는 실행 경로에 속한 모든 분기 조건을 추적하려고합니다. a = "1234"
와주어진 입력으로 프로그램 분석
#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);
}
이 프로그램 1
반환하고 해당 경로 조건 strcmp(a, "123") > 0
있다 : 예를 들어, 간단한 프로그램을 고려한다. strcmp
, "123"
및이 연산자의 값 (-1)을 수집하려고합니다. 내가 그렇게 할 수있는 방법이 있습니까? 먼저 C 파서로 작업하는 것에 대해 생각했지만 간단하지는 않은 것 같습니다. 매개 변수의 값을 얻으려면 포인터 분석 또는 외부 라이브러리 호출을 처리해야합니다. 이는 해결 방법을 모릅니다.
공구 관련 질문을하고 있습니다. 열성적인 사람들이이를 막을 것입니다. –
@IraBaxter 도구/접근 방법에 대해 묻고 있습니다. :) 아, 편집 할게. –