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多对一,不然切换显示器很麻烦。