准备环境
主机环境(win10):
安装完NanoCode(默认安装在c:\NanoCode)之后,还需要安装Intel System Studio(简称ISS),从官网(https://dynamicinstaller.intel.com/system-studio/download) 下载并安装。Intel System Studio比较庞大,得耐心下载和安装。
安装注意事项:
安装ISS时,ISS会判断本机是否安装了Windbg,从而是否安装EXDIIPC.dll,EXDIIPC.dll是NaoCode调试时选择exdi方式调试依赖的组件。所以在在安装ISS时请选择custom,然后选择WinDBG extension。
安装完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(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;选择“去调试”或者直接选择左边的内核调试;
3,选择调试选项,点击“确定”;
4,然后等待工具栏上的“break”按钮变亮,同时右下角任务栏也会多出OpenIPC_x64.exe的图标;
5,此时,目标价GDK7的Ubuntu还在活蹦乱跳,准备点击“break”按钮了,看看能不能中断下来了(中断下来就抽根烟,中断不下来就抽二根烟);
6,很遗憾,如二烟所愿,没有中断下来;此时,点击Output->Nano Code查看输出,发现了问题(…no GPC threads in this domain),果断打开设备管理器,发现设备不正常。
7,将“通用串行总线控制器中”带“叹号”的设备先禁用一次,然后在启用一次,这样就正常了,输出窗口也输出了一些信息;
8,在试试,看看能不能中断,这次,如我所愿,断下来了,也进入了输入模式;
9,然后输入.reload,在输入lm,显示了很多模块;
10,先到这里,输入g或者按F5或者点击工具栏的”运行”按钮继续运行,Ubuntu又活了。
中断Windows10:
1,GDK7开机进入Win10;
2,重新启动NanoCode(以后使用不重启),进入内核调试,选择调试选项;
3,点击确定之后,等待一会,直接中断下来了,同时会启动“IntelExdiServer”;
4,还是比较顺利的,重新g起来,也没有问题;
总结:
主要使用了GDK7和NanoCode,环境搭建,中断系统,后续在介绍单独的调试过程;
下次调试一下Linux内核函数,尝试中断printk;
最后编辑:zuoyingying 更新时间:2024-12-09 10:54