커널 디버거
Kernel debugger커널 디버거는 커널 개발자들의 디버깅과 커널 개발을 용이하게 하기 위해 일부 운영 체제 커널에 존재하는 디버거다.커널 디버거는 GNU 디버거(gdb)와 같은 완전 확장 디버거가 다른 시스템에서 실행되어 시리얼 라인이나 네트워크 연결을 통해 스텁에 명령을 전송하거나 디버깅 중인 시스템에서 직접 사용할 수 있는 명령줄을 제공하는 저수준 작업을 구현하는 스텁일 수 있다.
커널 디버거를 포함하는 운영 체제 및 운영 체제 커널:
- 윈도 NT 제품군에는 KD라는 커널 디버거가 포함되어 있어 제한된 기능(커널 메모리 읽기 및 쓰기, 중단점 설정)[2]을 가진 로컬 디버거의 역할을 할 수 있으며,[1] 직렬 회선, IEEE 1394 연결, USB 2.0 또는 USB 3.0 연결을 통해 원격 컴퓨터에 연결할 수 있다.[3]또한 WinDbg GUI 디버거를 사용하여 로컬 및 원격 시스템의 커널을 디버그할 수 있다.
- BeOS와 Hiku는 화면 콘솔 또는 직렬 회선을 통해 사용할 수 있는 커널 디버거를 포함한다.메모리, 스레드, 기타 커널 구조를 검사하는 다양한 명령이 특징이다.[4]
- 드래곤플라이 BSD
- Linux 커널; Linus Torvalds가 커널에 커널 디버거를 원하지 않았기 때문에 버전 2.6.26-rc1 이전의 메인라인 Linux 트리에 커널 디버거가 포함되지 않았다.[5][6]
- NetBSD(로컬의 경우 DDB, 원격의 경우 KGDB)
- MacOS,[11] 마하 성분을 사용하여 XNU 커널을 실행하는 다윈
- OpenBSD에는 GNU Debugger와 유사한 구문을 가진 ddb가 포함되어 있다.[12]
참조
- ^ "Debugging Environments". Debugging Tools for Windows (WinDbg, KD, CDB, NTSD). Retrieved 16 February 2020.
- ^ "Local Kernel-Mode Debugging". Retrieved 16 February 2020.
- ^ "Live Kernel-Mode Debugging Using KD". Retrieved 16 January 2020.
- ^ "Welcome to Kernel Debugging Land".
- ^ "LWN.net". Retrieved 29 May 2008.
- ^ Torvalds, Linus (3 May 2008). "Linux 2.6.26-rc1". LWN. Retrieved 9 March 2015.
- ^ Nellitheertha, Hariprasad. "Inside the Linux kernel debugger". Archived from the original on 21 June 2008. Retrieved 29 May 2008.
- ^ "LWN Weekly Kernel News". 7 September 2008.
- ^ "MDB Github Website". 1 January 2016. Archived from the original on 22 March 2016.
- ^ "LWN Weekly Kernel News". 28 June 2010.
- ^ Singh, Amit (December 2003). "XNU: The Kernel". What is Mac OS X?. Retrieved 25 May 2012.
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
- ^ "ddb(4)". OpenBSD manual page server. 6 December 2019. Retrieved 13 December 2019.
The ddb debugger provides a means for debugging the kernel, and analysing the kernel after a system crash ("panic"), with a gdb(1)-like syntax.