[dive into martix] kernel 调试笔记 part.1 gdk7 环境搭建

0x00.背景

感谢mentor提供了一台gdk7调试设备。可以在cpu级别调试Linux kernel和windows内核。本节先介绍环境搭建。

0x01.环境

按照这里的说明下载安装Intel system sutdio/windbg/nanocode。
Intel system studio这里选择了所有的package。安装完成后重启。

0x02. 调试运行

先运行gdk7,连上显示器选择ubuntu启动。再用usb3的线连接主机和gdk7,注意主机用usb3.0接口,gdk7连接后面的usb3.0接口。
需要调整nanocode的两个配置。点击nanocode右下角的设置->调试器设置,设置正确的IPCApi和IPC Libs。我这里是

C:\Program Files (x86)\IntelSWTools\system_studio_2020\tools\python3\Lib\site-packages\py2ipc\windows\x64\IpcApiAccess_x64.dll
c:\Program Files (x86)\IntelSWTools\system_studio_2020\tools\OpenIPC_1.2035.4868.100\Bin

应用之后重启nanocode。

之后点击左侧的Nano Debugger,选择调试内核。usb3选择了DCI Open。
启动后可以选择输出->Nano Code来输出日志。日志没有什么warning和error就没有问题。

完全启动后点击暂停的按钮,这时就断下来了。可以查看寄存器信息,反汇编代码。

启动后的输出:

Starting new session...
Nano Debugger (NDB) 1.6.672
Starting KD session type=usb3,proto=dcid,ipc=open,opt=rxs

Microsoft (R) Windows Debugger Version 10.0.17763.132 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

All logic CPU threads detected: 1000 1001 1002 1003
Kernel Debugger connection established
Found NGB marker in target memory at ffffffffff5ff000
Connected to Windows 7 7601 x64 target at (Fri Feb  5 00:54:38.701 2021 (UTC + 8:00)), ptr64 TRUE  <-----这里的target有问题,应该是linux才对。

但是点击单步调试之后,就无法中断了。

0x03 TODO

  • 增加内核符号和源码。
  • 单步调试内核。
  • 多个cpu的调试原理,能切换cpu吗?
  • 买一个hdmi多对一,不然切换显示器很麻烦。
上一篇:Dive into BERT:语言模型与知识


下一篇:A Deep Dive into Rescalable State in Apache Flink