GDK7+NanoCode调试学习系列1--环境搭建

本系列学习主要以GDK7为目标机,以NanoCode为调试工具来学习调试linux,windows内核,以及应用程序。

介绍

从高端调试(http://advdbg.org/gdk/)注册并入手GDK7机器,从NanoCode官网(https://www.nanocode.cn/#/download)下载了NanoCode。

调试主机使用win10,通过USB3线连接到目标机GDK7,然后主机使用NanoCode工具来调试目标GDK7。

目标GDK7预装了Ubuntu和Win10(未激活),可以分别调试Windows和Linux。

GDK7: 

是针对X86平台开发的高级调试套件,包含了目标主机(预装了Ubuntu和Win10(未激活)),USB3调试线等。

GDK7+NanoCode调试学习系列1--环境搭建_第1张图片

NanoCode: 

是基于Visual Studio Code二次开发的调试工具,可以调试内核,应用程序等,调试指令兼容Windbg。NaoCode可以调试,提问,阅读和学习,调试时,需要先注册会员。

GDK7+NanoCode调试学习系列1--环境搭建_第2张图片

 

准备环境

主机环境(win10):

安装完NanoCode(默认安装在c:\NanoCode)之后,还需要安装Intel System Studio(简称ISS),从官网(https://dynamicinstaller.intel.com/system-studio/download)下载并安装。Intel System Studio比较庞大,得耐心下载和安装。

安装注意事项:

1. 安装ISS时,ISS会判断本机是否安装了Windbg,从而是否安装EXDIIPC.dll,EXDIIPC.dll是NaoCode调试时选择exdi方式调试依赖的组件。所以在在安装ISS时请选择custom,然后选择WinDBG extension。

2. 安装完ISS之后,需要检查一下NanoCode安装目录下data目录下ndb.cfg文件的ipcapi的路径是否正确,如果不正确,需要修改一下,比如ipcapi=C:\IntelSWTools\system_studio_2020\tools\python3\Lib\site-packages\py2ipc\windows\x64\IpcApiAccess_x64.dll,如果路径带空格,使用双引号括起来。查找时,一般这串(tools\python3\Lib\site-packages\py2ipc\windows\x64\IpcApiAccess_x64.dll)是一致的。

GDK7+NanoCode调试学习系列1--环境搭建_第3张图片GDK7+NanoCode调试学习系列1--环境搭建_第4张图片GDK7+NanoCode调试学习系列1--环境搭建_第5张图片

目标机GDK7(Win10):

目标机Win10没有预装任何需要的软件。

目标机GDK7(Ubuntu):

目标机Ubuntu预装了服务ndsrv和内核模块ndb.ko,应该是和主机通信的组件。可以从高端调试下载安装:http://advdbg.org/gdk/resource.aspx,如果二进制无法安装,可以通过编译源码来安装。

 

尝试中断目标Ubuntu和Windows

中断Ubuntu:

1,目标机GDK7开机进入Ubuntu,可以先lsmod | grep ndb确认ndb.ko是否正常运行;

2,主机Win10启动NaoCode;选择“去调试”或者直接选择左边的内核调试;

GDK7+NanoCode调试学习系列1--环境搭建_第6张图片

3,选择调试选项,点击“确定”;

GDK7+NanoCode调试学习系列1--环境搭建_第7张图片

4,然后等待工具栏上的“break”按钮变亮,同时右下角任务栏也会多出OpenIPC_x64.exe的图标;

GDK7+NanoCode调试学习系列1--环境搭建_第8张图片

5,此时,目标价GDK7的Ubuntu还在活蹦乱跳,准备点击“break”按钮了,看看能不能中断下来了(中断下来就抽根烟,中断不下来就抽二根烟);

6,很遗憾,如二烟所愿,没有中断下来;此时,点击Output->Nano Code查看输出,发现了问题(...no GPC threads in this domain),果断打开设备管理器,发现设备不正常。

GDK7+NanoCode调试学习系列1--环境搭建_第9张图片

7,将“通用串行总线控制器中”带“叹号”的设备先禁用一次,然后在启用一次,这样就正常了,输出窗口也输出了一些信息;

GDK7+NanoCode调试学习系列1--环境搭建_第10张图片

8,在试试,看看能不能中断,这次,如我所愿,断下来了,也进入了输入模式;

GDK7+NanoCode调试学习系列1--环境搭建_第11张图片

9,然后输入.reload,在输入lm,显示了很多模块;

GDK7+NanoCode调试学习系列1--环境搭建_第12张图片

10,先到这里,输入g或者按F5或者点击工具栏的"运行"按钮继续运行,Ubuntu又活了。

中断Windows10:

1,GDK7开机进入Win10;

2,重新启动NanoCode(以后使用不重启),进入内核调试,选择调试选项;

GDK7+NanoCode调试学习系列1--环境搭建_第13张图片

3,点击确定之后,等待一会,直接中断下来了,同时会启动“IntelExdiServer”;

GDK7+NanoCode调试学习系列1--环境搭建_第14张图片

4,还是比较顺利的,重新g起来,也没有问题;

 

总结:

1. 主要使用了GDK7和NanoCode,环境搭建,中断系统,后续在介绍单独的调试过程;

2. 下次调试一下Linux内核函数,尝试中断printk;

 

你可能感兴趣的:(GDK7+NanoCode)