커널 디버거

위키백과, 우리 모두의 백과사전.

커널 디버거(kernel debugger)는 커널에 위치한 디버거로서 커널 개발자들에 의한 디버깅과 커널 개발을 쉽게 하기 위한 것이다. 커널 디버거는 gdb 같이 완전한 디버거를 통해 저수준 연산들을 구현한 스텁이거나(다른 머신에서 돌아가면서 직렬 포트 또는 네트워크 연결을 통해 스텁에 명령어를 보내는), 또는 디버깅 되는 기계에서 직접적으로 사용될 수 있는 명령 줄을 제공할 수도 있다.

커널 디버거를 포함하는 운영 체제들과 운영 체제 커널들:

  • 윈도우 NT 패밀리는 KD라는 이름의 커널 디버거를 포함하는데,[1] 이것은 제한된 능력을 가진 로컬 디버거로서 동작할 수도 있고(커널 메모리를 읽거나 쓸 수 있지만, 브레이크포인트를 설정할 수 없는)[2] 직렬 포트를 통해 원격 머신에 부착될 수도 있다(IEEE 1394 연결, USB 2.0 또는 USB 3.0 연결).[3] WinDbg GUI 디버거도 로컬과 원격 머신에서 커널을 디버그하는데 사용될 수 있다.
  • BeOS
  • DragonFly BSD
  • 리눅스 커널; 리누스 토르발스가 커널 내에 커널 디버거를 원하지 않았기 때문에, 2.6.26-rc1 버전 이전에서는 커널 디버거가 리눅스에 포함되지 않았었다.[4][5]
  • NetBSD (로컬에는 DDB, 원격에는 KGDB)
  • OS X,[10] Mach 컴포넌트를 사용하여 XNU 커널을 실행하는 다윈

각주[편집]

  1. “KD”. 2011년 1월 21일에 원본 문서에서 보존된 문서. 2011년 1월 25일에 확인함. 
  2. “Performing Local Kernel Debugging”. 2011년 1월 25일에 확인함. 
  3. “Windows Debugging”. 2013년 5월 22일에 확인함. 
  4. “LWN.net”. 2008년 5월 29일에 확인함. 
  5. Torvalds, Linus (2008년 5월 3일). “Linux 2.6.26-rc1”. LWN. 2015년 3월 9일에 확인함. 
  6. Nellitheertha, Hariprasad. “Inside the Linux kernel debugger”. 2008년 5월 29일에 확인함. 
  7. “LWN Weekly Kernel News”. 2008년 9월 7일. 
  8. “MDB Github Website”. 2016년 1월 1일. 2016년 3월 22일에 원본 문서에서 보존된 문서. 2016년 3월 17일에 확인함. 
  9. “LWN Weekly Kernel News”. 2010년 6월 28일. 
  10. Singh, Amit (December 2003). “XNU: The Kernel”. 《What is Mac OS X?》. 2019년 4월 19일에 원본 문서에서 보존된 문서. 2012년 5월 25일에 확인함. the built-in low-level kernel debugger, ddb, is part of XNU's Mach component, and so is kdp, a remote kernel debugging protocol implementation