1

Eclipse를 사용하여 clang을 디버깅하려고합니다. 전 전 처리기의 생성자에서 clang/lib/lex/preprocessor.cpp에 중단 점을 넣었습니다.Eclipse를 사용하여 clang을 디버깅하는 방법

  1. "test.c"파일을 디버그 구성에서 인수로 설정했습니다.
  2. 실행 -> 디버그 -> 로컬 C/C++ 응용 프로그램으로 이동했습니다.
  3. "디버그 할 로컬 응용 프로그램 선택"질문. 나는 "clang"을 선택하고 OK를 클릭했다.
  4. 코드를 작성하기 시작했습니다. 빌드가 완료되었습니다.
  5. 디버그 창에서 main()에서 중지되었습니다. 일부 단계 오버 후
  6. (주()가 사용할 수있는 소스)는 "종료 : GDB 디버거 (.에 Exited 종료 코드 = 255)"말한다 나는 그 소리 코드로 이동하고 있지 않다

(프리 프로세서 코드). 누군가가 clang 코드를 디버깅하는 방법을 알려 주실 수 있습니까? 나는 clang에서 코드 흐름을보고 싶다. AST를 구축하는 방법에 대해

답변

2

사실 Clang 바이너리에는 드라이버 및 컴파일러 프런트 엔드 자체가 포함되어 있습니다. 후자는 -cc1 cmdline 옵션을 통해 실행됩니다. 따라서 도구 호출의 실제 순서를 보려면 clang 명령 줄에 -v를 추가하고 프론트 엔드 cmdline (-cc1이 포함 된 cmdline)을 잡고 디버깅에이 cmdline을 사용하십시오.

+0

나는 clang을 사용하여 코드를 디버그하려고하지 않습니다. clang의 코드를 디버그하고 싶습니다. 이클립스에서 LLVM Source를 "Makefile Project"로 열고 디버그하십시오. –

+0

예, 나는 clang에 대한 지침을 작성했습니다. –

0

같은 문제점이 있습니다. 바이너리를 빌드 할 때 -g 플래그 (디버그 정보 사용 가능)가 누락되었습니다. CMAKE_BUILD_TYPE 옵션을 실행 cmake를 실행하는 경우 :

cmake -G "Eclipse <CDT_Version> - Unix Makefiles" -D_ECLIPSE_VERSION=<eclipse_version> -DCMAKE_BUILD_TYPE=Debug <llvm_source_path> 

예 :이 도움이

cmake -G "Eclipse CDT4 - Unix Makefiles" -D_ECLIPSE_VERSION=4.4 -DCMAKE_BUILD_TYPE=Debug ../llvm/ 

희망을.

관련 문제