저는 매버릭스에서 C++ 11을 사용하는 lldb를 얻으려고 몇 주 동안 노력해 왔습니다. 안정적인 작동을 얻지 못했습니다. 누구가 이것을 관리 했습니까? 정확히 어떤 단계를 밟았 니? 내가 찾을 수누구든지 lverb 표현식 평가를 통해 매버릭스에서 C++ 11을 사용할 수 있습니까?
증상은 다음과 같습니다
이(1) 내가 코드에 벡터 v가있는 경우, 나는 "v.size()"를 호출 할 수 없습니다와 같은 기본적인 표준 기능을 호출 할 수 없습니다 (이전 응답이 동의에 StackOverflow 이).
(2) 일반적으로 데이터 유형 및 클래스에 대해 항상 혼란스러워합니다. 때로는 간단한 일을 이해하고 때로는 이상한 오류 메시지를 표시하고 사용자 유형을 잘못 해석하는 경우가 있습니다.
(3) 코드를 중단하고 다른 함수를 호출하면 lldb가 가끔 혼란스러워지며 기묘한 런타임 동작이 발생합니다 (예 : lldb에서 함수를 호출하고 논리적으로 불가능 함). 결과, 호출 스택 또는 메모리가 어떻게 든 엉망이 된 것처럼).
(4) 때로는 lldb가 그냥 포기하고 스택에있는 위치를 추적하지 못하는 것 같습니다.
나는 이것들이 모호하지만, lldb를 표현식 평가 (breakpoints가 아니라 디버거를 사용하여 함수와 메소드를 호출하는 것)에 광범위하게 사용하고 lldb를 사용했는지? 필자는 매우 복잡한 데이터 구조를 가지고 있으며이를 조작하고 인터랙티브 디버거를 사용하여 대화식으로 (즉, repl) 메소드를 호출해야합니다.
질문의 부분은 아니지만 런타임에 메서드를 호출하고 함수를 대화식으로 평가할 수있는 진정한 C++ 11 디버거를 알고 있고 MacOS Mavericks에서 안정적으로 작동한다면 매우 감사하게 생각합니다.
N.B. 초기 MacOS 버전은 매버릭스와 완전히 다릅니다.
원하는 경우 디버거를 구성하여 STL 기능을 호출 할 수있는 방법이 많이 있습니다. 첫째, lldb는 소스 코드에 액세스 할 수 있으므로 기본 데이터 유형을 파악할 수 있어야합니다. 그럴 수도 있겠지만, 매버릭스에서 잠시 동안 C++에서 lldb를 사용 해본 적이 있습니까? 내가 언급 한 문제가 2-4 개나 없었습니까? 디버깅 환경이 Mac의 C++에 얼마나 나쁜지에 대해 매우 실망했습니다. 어떻게하면 많은 기본 기능을 호출 할 수없는 디버거를 사용할 수 있습니까? 내 일이 힘들어, 내 프로그램의 모든 기능에 대한 래퍼를 만들어야 해. – kdog
lldb는 "데이터 형식 지정자"를 구현하기 위해 "소스 코드 액세스"를 사용합니다.예를 들어, int 벡터가있는 경우 벡터를 인쇄하면 데이터 포맷터가 크기를 인쇄하고 내용이 배열 인 것처럼 인쇄합니다. 현재 할 수없는 일은 앱에서 사용한 모든 빌드 설정에 해당하는 템플릿 버전을 컴파일하므로 사용하는 클래스와 일관성이 있습니다. 그게 아직 존재하지 않는 컴파일러의 도움이 필요합니다. 그러나 많은 경우에 데이터 포맷터는이를 불필요하게 만듭니다. –
물론 문제를 보여주는 몇 가지 예를 제공 할 수 있다면 bugreporter.apple.com을 통해 파일을 보내주십시오. lldb를 스스로 더 잘 만드는 데 도움이되는 피칭은 오픈 소스 프로젝트입니다. 실제로 상황을 개선하는 두 가지 방법입니다. –