메모를 단계별로 : 나는 물리적 하드웨어에 따라 특정 OS의 X 드라이버를 리버스 엔지니어링 일하고 있어요OS X 원격 커널 디버깅 잘못된 스레드 명령
, 그래서 VM 환경은하지 않습니다.
제 환경에서는 2x 2015 Macbook Pro에서 OS X 10.11.6 (15G18013)을 실행하며 최신 KDK를 둘 다 설치했습니다. 원격 디버깅을 수행하려면 두 번째 시스템에서 Thunderbolt NIC를 사용하여 이더넷을 통해 네트워크 디버깅을 설정하십시오.
나는 대부분 lldb
을 사용하고 있습니다. 나는 중단 점을 설정할 수 있고, 커널과 브레이크 포인트를 재개 할 수는 있지만, 문제는 ni
(다음 명령어)을 수행 한 후 오류이다. 나는 error: invalid thread
오류가 발생하고 더 이상 다른 기계로 명령을 보낼 수 없다. 이 상태에있을 때 컴퓨터는 여전히 고정되어 있으며 (지침을 단계별로 실행 중이므로) NMI를 수행 한 후에도 다른 컴퓨터에 다시 연결할 수 없습니다.
예를 들어'thread backtrace','thread list' 등이 작동하지 않고 커널 확장을 다시로드 할 수 없다는 말입니까? –
맞습니다. – jtl999
스레드가 사라 졌을 때 고정되지 않도록 예외 중단 점을 설정하는 것이 아마 처리 방법 일 것입니다. 커널 확장이 실행되고 나면 커널 확장을 죽이는 것은 쉽지 않습니다. 특히 클라이언트 디버거가 이미 종료 된 경우에는 더욱 그렇습니다. '프로세스 인터럽트','detach' 또는'kdp-remote '도 아무 것도하지 않습니까? 난 당신이 수동으로 원격 프로세스를 죽일 필요가 있다고 가정합니다 ... –