안녕하세요. 저는 Mac OS 10.5에서 C++ 응용 프로그램을 디버깅하는 중입니다. 때때로, 나는 나쁜 것을 할 것이고, segfault 또는 불법적 인 조작을 야기 할 것이다. 그 결과 앱이 잠시 멈추고 결국에는 충돌을 알리는 시스템 대화 상자가 표시됩니다. "정지"와 대화 사이의 대기 시간은 중요합니다. 몇 분. 강제로 응용 프로그램을 종료하거나 명령 행에서 kill -9
을 실행하면 아무 일도 일어나지 않습니다. 디버거 (gdb)에서 응용 프로그램을 시작하면 충돌이 발생하면 gdb 프롬프트로 돌아가 프로세스를 완전히 종료 할 수 있습니다. gdb가 느리게로드되므로 이상적이지 않습니다.Mac OS X에서 응용 프로그램 디버깅 및 종료?
어쨌든, 너희들은 뭔가 추천 할 수 있니? OS X에서 크래시보고 메커니즘을 비활성화하는 방법이 있습니까?
감사합니다.
업데이트 1 : 여기에 X 코드 실행에서 남겨진 좀비가 있습니다. 분명히 xcode는 그 중 하나를 올바르게 멈출 수 없습니다.
1 [email protected]:~$ ps auxw|grep -i Reader 2 eightieight 28639 0.0 0.0 599828 504 s004 R+ 2:54pm 0:00.00 grep -i reader 3 eightieight 28288 0.0 1.1 1049324 45032 ?? UEs 2:46pm 0:00.89 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 4 eightieight 28271 0.0 1.1 1049324 45036 ?? UEs 2:45pm 0:00.89 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 5 eightieight 28146 0.0 1.1 1049324 44996 ?? UEs 2:39pm 0:00.90 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 6 eightieight 27421 0.0 1.1 1049328 45024 ?? UEs 2:29pm 0:00.88 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 7 eightieight 27398 0.0 1.1 1049324 45044 ?? UEs 2:28pm 0:00.90 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader
Xcode를 사용하고 있습니까? 그렇다면 Crash Reporter 대화 상자가 표시되지 않아야합니다. 또한 GUI 기반 응용 프로그램 또는 콘솔 응용 프로그램을 구축하고 있습니까? 편집 : 덧붙여 말하자면 XCode를 사용하는 경우 Xcode에서 GUI 응용 프로그램을 실행하는 동안 EXEC_BAD_ACCESS 오류가 발생하면 중지 아이콘을 눌러 실행중인 응용 프로그램을 즉시 종료 할 수 있습니다. – Tom
그래, 내가 Xcode 또는 gdb 내 애플 리케이션을 실행하면 모든 것이 제대로 작동합니다. segfault가 생기면 앱이 디버거로 돌아가고 모든 것이 훌륭합니다. 그러나 콘솔에서 앱을 실행하면 영원히 멈춘 것처럼 보입니다. – EightyEight
어떻게 앱을 불러내나요?일반적으로 앱이 열심히 게임을 끝내면 프로세스가 종료됩니다. 그러나 다른 환경에서 호출 한 경우 해당 프로세스의 일부 리소스가 열려있을 수 있습니다. 아직 풀어 놓을 수 없으며 부모 프로세스가 먼저 작업을 수행하기를 기다리고 있습니다. 무언가를 감지하는 데 문제가있을 수 있습니다. –