2017-04-10 7 views
1

here은 C++ (CLion) 프로젝트에 대한 링크입니다. 내가 할 수있는만큼 문제를 증류/단순화했습니다.LLDB 3.9.0 크래쉬 (Clion)

문제는 디버깅 할 때 LLDB (버전 3.9.0)가 충돌한다는 것입니다.

단계 충돌 재현 : CLion 2017.1

  • 장소 중단 MAIN.CPP 라인에서 프로젝트를 컴파일 (디버그 LLDB 내장 사용)
    1. 프로젝트 열기를 14
    2. 디버그 모드로 실행하십시오.
    3. 14 번 중단 점에 도달하면 "print an_integer"명령을 통해 "an_integer"변수를 출력하십시오.
    4. 충돌

    오류/충돌 보고서 :

    어설 션 실패 : (D-> getCachedLinkage() == LV.getLinkage는()), 기능 getLVForDecl이 파일 /응용 프로그램/buildAgent/일/92515a49514b3993/lldb/LLVM/도구/연타/lib 디렉토리/AST/Decl.cpp, 라인이 충돌이 맥 v10.12.4에 LLDB의 v3.9.0로 발생하는 1360

    참고. 그러나 Mac 10.12.4의 LLDB 3.7.0에서는 발생하지 않습니다.

    궁극적으로 나는 프로젝트 코드에서 뭔가 바보 같은 짓을하고 있는지 알고 싶습니까? 그렇지 않으면 CLion 또는 LLDB의 버그입니까? 버그가 (있는 경우) 해결할 수 있도록 게시해야하는 곳이 있습니까?

  • +0

    무거운 메타 프로그래밍 템플릿을 사용하면 충돌이 발생했습니다. 내 경우에는 부스터 메타 스태커를 부스트하십시오. MSM으로 건너 뛰면 모든 것이 작동합니다. – ovanes

    +0

    안녕하세요! 고치기를 찾았습니까? – Fashizel

    답변

    0

    그건 당신의 버그처럼 보이지 않습니다. 어떤 이유로 lldb는 컴파일러에서 생성 된 유형 정보를 처리하는 데 문제가 있습니다.

    내가 그렇게 할 수는 없으므로 clion을 가지고 있지 않다.하지만 XDK 8.3의 clang을 사용하여 PCH 또는 테스트 프로젝트를 빌드하면이 충돌이 표시되지 않는다. 할 수있는 가장 좋은 방법은 (. CLion 당신을 위해이 작업을 수행하지 않는 경우) dSYM을 당신은에 의해 실행 그렇게 다음, CLion이 프로젝트를 구축하는 것입니다 : 당신이 함께 충돌을 재현 할 수

    > dsymutil TestingLLDBBreaking 
    

    확인 dSYM이면 실행 파일과 .dSYM을 사용하여 http://bugreporter.apple.com이라는 버그를 제출하십시오.

    +0

    dsymutil에서 오류가 발생하지 않습니다. 또한 CLion으로 컴파일 한 후 lldb-370.0.40 (명령 줄을 통해)을 사용하면 오류가 발생하지 않습니다. 그것은 Lldb 3.9.0과 함께 CLion과 관련이 있습니다. 문제 추적기 (https://youtrack.jetbrains.com/issues/CPP)에 게시하겠습니다. – Xandrix

    1

    그래서 잠시 동안 같은 문제가있었습니다. 거의 내 Mac을 포맷하기 전에 프로젝트를 다른 디렉토리에 다시 복제하고 거기에서 실행했습니다. 문제 없음. (나는 그것의 mac-os 일을 확신한다). 행운을 빌어 요.