2013-03-14 2 views
1

LLVM 3.1을 다운로드하여 성공적으로 빌드했습니다. 내 요구 사항은 몇 가지 디버깅 줄을 C++ 소스 코드 파일에 추가하는 것입니다. CLANG 3.1을 사용하여 모듈을 코딩했습니다. 하지만 CLANG은 gcc가하지 않는 많은 AST 오류를보고합니다. 내 코드는 gcc 컴파일러로 잘 컴파일됩니다. 또한 C++ 프로그램에는 #include 문이 많이 있습니다. LLVM은 동일한 경로에서 동일한 것을 사용할 것으로 기대하고 다른 레벨에서 다시 실패합니다.LLVM : C++ 소스 코드에 디버깅 라인 삽입

+1

당신이 여기에서 묻고있는 것이 나에게 정말로 불분명합니다. Clang이 GCC가 컴파일하는 코드에서 오류를보고하는 이유를 이해하려고합니까? 그렇다면 코드를 더 잘 공유하고 어떤 오류가 발생했는지 표시하십시오. Clang이 포함되지 않은 GCC가 include 파일을 찾는 데 성공한 이유가 궁금하십니까? 두 가지 모두에 사용했던 명령 줄을 보여 줄 수 있습니다. 또는 메서드 호출 후 printf를 추가하는 LLVM 패스를 작성하는 방법을 묻는 중입니까? 아니면 내가 너를 완전히 오해 한 것일까? 너는 완전히 다른 것을 요구하고 있는가? 즉, 명확히하십시오. – Oak

+0

세부 사항에 따라 질문을 업데이트했습니다. 예, 내 C++ 소스 코드 파일에 디버깅 문을 추가하는 방법을 찾고 있습니다 – Prakash

+0

아직 무엇을하려고하는지 전혀 이해하지 못합니다. 몇 줄의 코드를 제공하고 호출 한 실제 명령과 오류 메시지를 제공 할 수 있습니까? –

답변

2

clang에는 clang을 사용하여 소스와 소스 도구를 쉽게 작성할 수있는 libTooling이라는 새 라이브러리가 있습니다. 나는 당신이 그것을 조사 할 것을 제안한다. 이것을 사용하는 가장 완벽한 예제는 clang-format으로, 형식 지정 지침에 따라 임의의 C++ 코드를 다시 포맷합니다. 모든 의미를 유지하면서 소스 레벨에서 C++ 코드를 다시 작성하는 방법을 보여줍니다. 그것은 특정 장소에서 특정 진술의 삽입을 추가하기 위해 해킹하기가 어렵지 않아야합니다.

+0

자세한 내용을 고맙지 만 샘플 프로그램을 통해 시도 할 때 아래 오류가 발생합니다. ./clang-check t.cpp ---- LLVM 오류 : JSON 데이터베이스를 열 때 오류가 발생했습니다 : 해당 파일이나 디렉토리가 없습니다. – Prakash

+0

@Prakash : 그게 세부 사항은 아니지만 ... 당신이 따라야 할 단계와 코드 오류를 발견 한 새로운 질문을 열어야한다고 생각합니다. 이 문제들에 대해서는 cfe-dev 메일 링리스트에서보다 빠르고 더 좋은 답변을 얻을 수 있습니다. –