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窗口中的参数变化。
  • 当然,您也可以继续输入下一条命令,重复上述步骤完成调试。

    下载文件

    在调试会话中的命令行输入相应命令来读取文件。并将读取到的文件保存。
    例如:
    !copy /etc/passwd pwd
    !save
    读取pwd文件,然后将内容保存。

上传文件

在调试会话中输入相应命令来写入文件,将文件保存。
例如:

!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  创建时间:2022-07-01 09:11
最后编辑:YuQing  更新时间:2024-04-26 11:16