이 프로그램은 함수, 구조체, 인자 호출 관계를 추적하기 위해 제작되었습니다.
-
Cscope
Ubuntu
sudo apt-get install cscope
easy_auditing/*에 있는 파일들을 포함할 경우의 예시입니다.- 터미널에서 해당 디렉토리로 이동합니다:
cd easy_auditing/*
- cscope 데이터베이스를 생성합니다:
find . -type f \( -name "*.c" -o -name "*.h" \) > cscope.files cscope -b -q -k
- 만들어진
cscope.out파일을easy_auditing.py와 같은 디렉토리에 위치시킵니다.
python3 main.py --src=<func_name> --dest=<func_name> [--depth=<int, default=4>]python3 main.py --define=<func_name>python3 main.py --src=kbase_ioctl --dest=kbase_reg_prepare_native --depth=4[1] kbase_ioctl(mali_kbase_core_linux.c, L1697) -> KBASE_HANDLE_IOCTL_INOUT(mali_kbase_core_linux.c, L1747) -> kbase_api_mem_alloc(mali_kbase_core_linux.c, L975) -> kbase_mem_alloc(mali_kbase_mem_linux.c, L398) -> kbase_reg_prepare_native
[2] kbase_ioctl(mali_kbase_core_linux.c, L1702) -> KBASE_HANDLE_IOCTL_INOUT(mali_kbase_core_linux.c, L1747) -> kbase_api_mem_alloc(mali_kbase_core_linux.c, L975) -> kbase_mem_alloc(mali_kbase_mem_linux.c, L398) -> kbase_reg_prepare_native- 함수 호출 관계를 추적하는 데이터인
cscope.out파일은 소스 코드의 변경 사항(예: 주석 추가 등)을 실시간으로 반영하지 않습니다. 소스 코드에 주석 등을 추가하여cscope.out파일과 실제 코드의 줄 수가 일치하지 않게 되면, 라인 불일치 문제가 발생할 수 있습니다. - 이러한 문제가 거슬린다면, 명령어를 다시 입력하여 새로 갱신된
cscope.out파일로 확인하시기 바랍니다.