단, 컴파일은 다시 해야 한다.
기본 개념은 별도의 설정 파일을 통해 함수 호출 규칙을 감시하는 코드를 추가한다.
이 설정파일을 c 함수로 컴파일하고, 컴파일 결과를 원 바이너리와 link하여 함수 호출을 감시한다.
이것을 쓰면 함수 호출 과정을 자세히 추적할 수 있을 것 같다. 하지만, 아직 테스트 전이다.
URL은 http://research.msrg.utoronto.ca/ACC/WebHome이다.
다음은 간단한 예제이다.
C 코드
int main() {
printf("world");
}
ACC 코드
before(): execution(int main()) {
printf("Hello ");
}
after(): execution(int main()) {
printf(" from ACC ! \n");
}
Aspect Compile 과정
acc hello.acc world.m
최종 바이너리 생성
$ gcc hello.c world.c
$ ./a.out
Hello world from ACC !



