2009-11-05 7 views
0

이것은 진짜 질문 일지 모르지만 인터뷰에서이 질문을 받았을 때 나는 단서가 없기 때문에 여기에서 묻습니다.gdb/dbx를 사용하여 스레드 프로세스를 디버깅하십시오.

어떻게 다른 스레드가 만든 스레드를 디버그 할 수 있습니까? 메인 프로세스가 있다고 가정하고 pthread_create 함수를 호출하여 결합 할 수없는 스레드 프로세스를 생성합니다. 즉, 메인 프로세스와 새로 생성 된 스레드 프로세스가 자체 태스크를 실행한다는 것을 의미하며, 프로그램 디버깅을 시작하면 우리가 만든 스레드로 이동할 수 있습니까?.

미리 감사드립니다.

답변

3

gdb를 전체 프로세스에 첨부 한 다음 gdb의 thread ops을 사용하여 스레드 간을 이동할 수 있습니다. 디버그 할 스레드를 pthread_create '할 때 스레드 ID를 출력하는 것이 도움이 될 수 있습니다.

+0

+1. 난 아마 게으른하고 프로세스의 실행을 설정하기 전에 스레드의 진입 점에 중단 점을 설정합니다. 나는이 접근법이 문제가되는 스레드에 대해 이미 알고 있다면 도움이된다고 생각합니다. –

관련 문제