2017-02-18 2 views
0

문제는 이미 알려져 있으며 gdb는 OS X Sierra에서 더 이상 작동하지 않습니다.gdb os x sierra 10.12.3 not working

이미 해결책에 대해 조사하고 몇 가지 해결책이 있었기 때문에 이것은 정말로 성가시다. 그러나 그들은 더 이상 효과가 없어 보인다. 나는 .gdbinit 파일 솔루션과 비활성화 csrutil 솔루션을 사용하려고 시도했지만 둘 다 작동하지 않습니다.

Sooo 내 질문은 : 누군가 10.12.3에서 해결 방법을 알고 있습니까?

대단히 감사합니다!

+0

소스 코드에서 최신 [GDB] (https://www.gnu.org/software/gdb/) 7.12.1을 컴파일하려고 했습니까? –

+0

http://sourceware-org.1504.n7.nabble.com/gdb-on-macOS-10-12-quot-Sierra-quot-td415708.html –

+0

감사합니다. 나에게 아이디어를 주셨습니다. 간단한 업데이트 gdb lol. 그것은 도움이된다, 나는 나 자신을 계산했다! :) 나는 미래의 친구들을위한 게시물에 답을 쓸 것입니다. –

답변

1

그래서 덕분에 단지 GDB에게 업데이트 나에게 아이디어를 준 바 실레 Starynkevitch에

해결책 :

당신은 단순히 현재 7.12.1입니다 업데이트를 최신 버전 GDB (에가). 당신이 브루를 설치 한 가정 :

을 내가 무슨 짓을했는지 그 :

brew update 
brew remove gdb 
brew install gdb 

그것은 지금 최신 버전으로 업데이트했습니다.

이제 gdb를 이전에 사용하던 cert로 다시 코드화하십시오. :)>set startup-with-shell off

디버깅 지금 나를 위해 작동 (OS X 시에라 10.12 -

nano ~/.gdbinit 

가 :

sudo killall taskgated 
codesign -fs gdb-certi /usr/local/bin/gdb 
launchctl load /System/Library/LaunchDaemons/com.apple.taskgated.plist 

마지막 단계는 .gdbinit 파일을 작성하는 해결 방법을 사용하는 것이 아직도있다. 3 - gdb 7.12.1).

UPDATE :

은 분명히이 특정 문제를 해결하지만, 그 자체 전체 문제가되지 않습니다. 여전히 오류가 발생합니다. 솔직히 내 해결책은 다음과 같습니다. LLDB 및 다른 IDE로 전환 (Netbeans은 LLDB를 지원하지 않습니다). 또는 Linux를 사용하십시오. 현재 MacBook Pro의 스틱을 사용하여 우분투를 사용하고 있습니다.

+1

이 작동하지 않습니다. 여전히 고장 –

-1

gdb 7.12.1이 나에게 적합하지 않음을 발견했습니다. 나는 2016 년 11 월 9 일에 만들어진 gdb에 중요한 커밋 82b19a4d2f9c9e8d56f가 포함되어 있다고 생각하지 않습니다. gdb 8.0 개발 브랜치를 사용할 수있었습니다.

git clone --depth 1 --branch gdb-8.0-branch git://sourceware.org/git/binutils-gdb.git 

는 그럼 난 MacPorts를이

cd binutils-gdb 

그래서 (A) MacPorts를 라이브러리에 링크하고 싶었와 (b)는 그래서/usr/지방에 물건을 넣어 피하기 위해 원 체크 아웃 된 디렉토리로 이동

./configure prefix=$HOME LDFLAGS="-L/opt/local/lib" CPPFLAGS="-I/opt/local/include" 


make -j8 

make install 

=> ~/bin에 gdb 실행 파일을 넣습니다. (정적) 라이브러리를 ~/lib에; ~/share에 문서화

위의 André의 팁에 따라 코드 서명을하십시오. codesign -fs gdb-certi ~/bin/gdb

0

없음 GDB 7.11 또는 7.12.1은 Sierra 10.12.4에서 작동하지 않습니다. 간단히 말해서 Apple 보안 업그레이드 때문입니다. 새 버전이 나올 때까지 다시 사용할 때까지 기다려야합니다.

Easy WA는 현재 LLDB를 디버거로 사용하고 있습니다. 샘플 지시 명령 here

3

는 여전히처럼 보이는 또 다른 LLDB이에 대한 해결책이 아니다

here. 나는 "GDB 대신 LLDB 사용"이 궁극적 인 해결책이라고 생각하지 않습니다. 그래서 나는 매우 기초적인 g ++와 gdb를 포함하는 상당히 기본적인 도커 컨테이너를 만들었습니다.

여기는 Docker Hub container이고 Dockerfile은이 Github repo입니다.

이 솔루션을 사용하면 몇 가지 간단한 명령을 통해 Mac에서 GDB를 사용할 수 있습니다. 그리고 코딩중인 폴더가 마운트되면 저장을 클릭하자마자 모든 변경 사항이 자동으로 나타납니다.

다른 사람에게 도움이되기를 바랍니다.