Mac에서 표준 사용자로 GNU 디버거 (GDB) 프로그래밍 유틸리티를 사용할 수없는 이유는 무엇입니까?


8

나는 오직 GNU 디버거 (GDB) 관리자로 인증 될 때

표준 사용자로 GDB를 시작하면 GDB 명령에 "run"을 입력 한 후 "Developer Tools"그룹에있는 사용자의 사용자 이름과 암호를 묻는 대화 상자가 나타납니다.

문제는 이미 "개발자 도구"그룹에 있으므로 다른 작업을해야할지 모르겠다는 것입니다 ...

고맙습니다!

플랫폼:

  • MacOS X 10.7.1
  • GCC 4.2.1
  • i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Apple Inc. 빌드 5658 기준) (LLVM 빌드 2335.15.00)
  • GNU gdb 6.3.50-20050815 (애플 버전 gdb-1705)
  • 이 GDB는 "x86_64-apple-darwin"으로 설정되었습니다.

답변:


7

개발자 도구 그룹에 가입 했습니까?

이 명령을 실행 해보십시오.

sudo dscl . append /Groups/_developer GroupMembership <username>

그러면 사용자 계정이 그룹에 추가됩니다.


이제는 GUI에 표시된 그룹이 실제 그룹이 아니라는 것을 알고 있습니다 .-) 감사합니다!
Pietro

2

나는 root와 sudo를 제외하고는 실행되지 않을 것이고, 이것은 Eclipse와 함께 사용할 수 없다는 것을 의미한다. 이것은 문제를 디버깅하는 데 5 근무 시간을 낭비했다. 여기에 내 결과가있다.

첫째, gdb는 내 사용자 계정에서 실행될 때 비슷한 오류 메시지를 생성했습니다.

Unable to find Mach task port for process-id 4667: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

키 체인을 사용하여 인증서를 만든 다음 코드 서명을 위해 신뢰할 수있는 인증서로 표시하여 코드에 서명했습니다. 그런 다음 명령 줄에서 실행 파일에 적용합니다.

codesign -s gdb-cert /usr/local/Cellar/gdb/7.6.1/bin/gdb
codesign --verify --verbose  /usr/local/Cellar/gdb/7.6.1/bin/gdb
codesign -d --verbose  /usr/local/Cellar/gdb/7.6.1/bin/gdb

그게 작동하지 않았다.

내 사용자 계정을 procview, procmod 및 _developer 그룹에 추가하려고 시도했지만 (아마 안전하지는 않지만 코드를 github에 배포하고 개인용으로 사용하지 않아도 됨)

sudo dscl . append /Groups/procmod GroupMembership bryanhunt

sudo dscl . append /Groups/procview GroupMembership bryanhunt

sudo dscl . append /Groups/_developer GroupMembership bryanhunt

그게 작동하지 않았다.

마지막으로 실행 파일의 그룹과 끈적 끈적한 비트를 변경해 보았습니다.

sudo chgrp procmod /usr/local/Cellar/gdb/7.6.1/bin/gdb
sudo chmod g+s /usr/local/Cellar/gdb/7.6.1/bin/gdb

그게 효과가있어.


내가 뭘하든, 나는 아래의 오류를 얻는다. 네가 나를 도와 줄 수있는 모든 것. Starting program: /Users/nakulchawla/POPL/proj5/a.out Unable to find Mach task port for process-id 571: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))
nakulchawla09
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.