目录
前言
内核(Kernel)总是那么捉摸不透,而且有时也会出BUG,这时我们也应该对内核进行调试,但内核不像软件:内核调试很艰难,内核错误往往会导致系统宕机,很难保留出错时的现场,而且任何对内核空间的访问和修改都可能引发更多错误。同时,市面上的调试工具(例如WinDbg、KD、CDB等)也不能很好的解决这些问题。
机缘巧合之下,发现了一个非常强大的内核调试工具:GDK8(Web: Nano Code GDK8),它是格蠹科技针对ARMv8平台研发的开发和调试平台,GDK8搭配格蠹科技的Nano Debugger(NDB),用他们来调试Linux程序,将Linux平台的调试技术推上一个新的台阶, 是学习和研究ARMv8架构、LINUX操作系统和嵌入式软件技术的有力助手。
GDK8提供两种调试模式供选择:远程调试、内核调试。远程调试:可以调试用户空间的代码和数据,例如打开一个用户空间的可执行程序,或者编辑一些库加载到可执行程序上,但不可访问内核驱动,所以足够安全。内核调试:除了可以调试用户空间的数据外,还可以调试内核空间的代码和数据,并也支持调试驱动,所以足够深入、专业。下面我将介绍一下内核调试。
一、与GDK8创建连接
1 . 将sd转接卡与挥码枪按照以下方式连接(一定不要连错)。
2 . 把杜邦线连接的sd卡插入到GDK8。并用USB线将挥码枪和主机连接。
3 . 切换到GDK8的JTAG模式,通过GDK8的葫芦娃小程序或者遥控器按[Fn+5]进行切换。
4 . 按照顺序来操作Nano Code (若未登录Nano Code请先注册和登录)。

本文介绍了如何利用GDK8和NanoDebugger进行内核调试,包括建立连接、访问系统寄存器、符号化调试、加载项目源码以及自定义调试命令。GDK8的远程和内核调试模式提供了深入且专业的调试体验,对于ARMv8架构和Linux内核的学习与研究非常有帮助。



500

被折叠的 条评论
为什么被折叠?



