일단 OS X에 그 소리 빌드 된 바이너리와 lldb에서 :스택 트레이스 내가 리눅스에서 내가 일반적했던 것처럼, 설치된 엑스 코드 명령 행 도구를 사용하여 OS의 X에서 다음을 수행 할 수 있었다 옛적에
vim foo.cpp
#... write some buggy code that segfaults
gcc -g foo.cpp
gdb a.out
(gdb) bt
그리고 난을 멋지고 상징적 인 스택 추적을 볼 수 있습니다. 요즘에는 gdb가 lldb로, gcc가 clang으로 바뀌 었습니다. 만약 내가 단지 clang++
으로 빌드하고 lldb a.out
을하면 나는 심볼이 없다.
나는 dsymutil을 실행 해보고 Mach-O 64-bit dSYM companion file x86_64
유형의 파일을 얻었으며 target symbols add
과 함께 lldb에서로드하려고 시도했지만 아직 스택 트레이스에 심볼이 없습니다. 그러나 나는 인정해야한다, 나는 그 중 절반을 포기했다. http://lldb.llvm.org/symbolication.html이 고리들과 루프들을 거치면서 진실 일 수는 없다고 생각하고, 나 자신을 생산하는 바이너리로부터의 스택 추적을 얻는다.
제 질문은 다음과 같습니다. 몇 년 전에 gcc와 gdb를 사용하여 표준 Xcode 도구를 사용하여 최신 OS X 시스템의 명령 행에서 얻은 가장 간단한 방법은 무엇입니까?
포트 또는 홈 브루 등을 사용하여 gcc 및 gdb를 설치하는 옵션이 아니라는 점에 유의하십시오. 표준 Xcode 도구를 사용하여 명령 줄에서 스택 추적을 구해야합니다.
바이너리를 빌드 할 때 "clang -g -O0 foo.cpp"라고 했습니까? 그렇게했다면, lldb를 사용하는 단계는 gdb와 완전히 동일해야합니다. –