NdSrv:在调试会话命令行中输入命令
NdSrv是运行在Linux操作系统的后台服务进程,用于为调试器提供本地服务,方便使用者进行调试。您可以在Nano Code内核调试窗口的命令行输入命令进行调试,目前支持三种类型的命令:下载文件,上传文件,执行命令。
NdSrv所在位置示意图
操作前置环境
需要您事先安装NdSrv,如果您不知道自己是否安装,可以检查一下,输入以下命令:
ps -A | grep ndsrv
此命令检查是否安装
sudo ./ndsrv
此命令检查是否运行
如果您没有安装,请点击下列链接下载:(或者见结尾)
https://gedu.oss-cn-beijing.aliyuncs.com/ndsrv/ndsrv_src.tar.gz
主要操作过程
- 在Nano Code内核调试中,成功中断内核之后,您就能在命令行中输入命令来执行操作了。
- 在命令行中输入一行命令,如:
!exec /bin/ls
如果输入正确,Nano Code会提示您输入g让中断的内核继续运行,此时输入g,那么GDK8就会开始执行您刚刚输入的那行命令。 - 在执行过程中,您可以切换到MobaXterm中GDK8的窗口,此时您可以在gdb调试窗口中观察参数变化,随时监视Linux内核进行调试。您会发现程序运行后参数对应的变化。
- 此时,您可以返回Nano Code界面,将内核再度中断,这样方便您观察刚刚执行的操作在GDB窗口中的参数变化。
- 当然,您也可以继续输入下一条命令,重复上述步骤完成调试。
下载文件
在调试会话中的命令行输入相应命令来读取文件。并将读取到的文件保存。
例如:
读取pwd文件,然后将内容保存。!copy /etc/passwd pwd !save
上传文件
在调试会话中输入相应命令来写入文件,将文件保存。
例如:
!copy c:\temp\a.txt /home/geduer/a.txt
a.txt文件将会被保存在Linux目标系统中。同样,您可以在GDK8的gdb调试窗口中观察内核参数的变化。在GDK8中调用Linux命令也能看到a.txt已经被拷贝到GDK8上。
执行命令
在调试会话中输入相应命令,
例如:
!exec /bin/ls
Linux目标系统就会执行此命令,同样,您可以在GDK8的GDB调试窗口中能观察到参数的变化。
下载链接
https://gedu.oss-cn-beijing.aliyuncs.com/ndsrv/ndsrv_src.tar.gz
2022.07.12
Ethan
需要将ndsrv复制到 /opt/gedu/gdk 文件夹中,将源代码中 /drivers/ndb/ndsrv.service 复制到/etc/systemd/system中:
然后enable及start ndsrv.service:
NDB中执行:
查看文件 /var/log/syslog:
!copy /etc/passwd pwd
暂时还有附加的不要的数据:
显示no export copy found:
但syslog中有记录:
单文件内容有缺损:
源文件为:
最后编辑:YuQing 更新时间:2024-10-10 17:15