Skip to main content

소스 코드의 구조 탐색

AST 뷰어를 사용하여 CodeQL 데이터베이스의 추상 구문 트리를 표시할 수 있습니다.

추상 구문 트리 정보

프로그램의 AST(추상 구문 트리)는 프로그램의 구문 구조를 나타냅니다. AST의 노드는 문 및 식과 같은 요소를 나타냅니다. CodeQL 데이터베이스는 데이터베이스 스키마를 통해 이러한 프로그램 요소와 해당 요소 간의 관계를 인코딩합니다. 데이터베이스 스키마에 대한 자세한 내용은 CodeQL 설명서에서 "CodeQL 용어집"을 참조하세요.

Visual Studio Code용 CodeQL에는 AST 뷰어가 포함되어 있습니다. 뷰어는 CodeQL 데이터베이스에서 파일의 AST를 탐색할 수 있는 그래프 시각화 보기로 구성됩니다. 이를 통해 원본 파일의 어느 부분에 해당하는 CodeQL 클래스를 확인할 수 있습니다.

원본 파일의 추상 구문 트리 보기

참고: 작업 영역에 적절한 쿼리(일반적으로printAST.ql)가 없는 경우 다음 단계에서 CodeQL: AST 보기 명령이 작동하지 않습니다. 이 문제를 해결하려면 main 분기에서 리포지토리의 github/codeql 복사본을 업데이트하면 됩니다. 이를 통해 쿼리 캐시가 해제될 수 있으므로 다음 쿼리 실행 속도가 느려질 수 있습니다.

  1. 익스텐션에서 "데이터베이스" 보기를 열고 탐색할 데이터베이스를 마우스 오른쪽 단추로 클릭합니다. 작업 영역에 데이터베이스 원본 추가를 클릭합니다.

  2. 파일 탐색기에서 CodeQL 데이터베이스의 원본 파일로 이동합니다.

  3. VS Code Command Palette에서 CodeQL: AST 보기를 실행합니다. 그러면 활성 파일에서 CodeQL 쿼리(일반적으로 printAST.ql)가 실행되며 몇 초 정도 걸릴 수 있습니다. 쿼리가 완료되면 AST 뷰어에 원본 파일의 구조가 표시됩니다.

  4. 원본 파일의 중첩된 구조를 보려면 화살표를 클릭하고 노드를 확장합니다.

AST 뷰어에서 노드를 클릭하여 소스 코드에서 해당 노드로 이동할 수 있습니다. 반대로 소스 코드의 섹션을 클릭하면 AST 뷰어에 해당 노드가 표시됩니다.