飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4054|回复: 0

[Debuggers] Nano Code 社区版

[复制链接]
  • TA的每日心情
    开心
    2019-3-15 11:00
  • 签到天数: 262 天

    [LV.8]以坛为家I

    发表于 2021-3-24 11:36:57 | 显示全部楼层 |阅读模式
    简介
    Nano Code是与GDK7硬件套件协同工作的集成工具,包含的主要功能包括以DCI方式调试Windows和Linux内核等
    Nano Code集成了Nano Debugger、Nano Read、Nano Course、Nano Bell四个子系统,从高级调试、技术问答、知识储备等多方面对传统IDE进行扩展,旨在为专业程序员提供专业的开发环境。
    官网:https://www.nanocode.cn/#/home
    备注:使用需注册账号登录使用
    文章内容来源于官方介绍


    使用Nano Debugger
    简介Nano Debugger(简称NDB)是格蠹科技为Nano时代研发的一款全功能调试器,既支持应用程序调试,也支持内核调试。
    在内核调试方面,NDB支持多种通信方式,包括基于Intel DCI技术的USB 3.0连接,以及经典的串口。
    NDB的界面使用Node.JS技术开发,具有容易扩展和跨平台的优势。
    内核调试
    NDB提供了如下三种连接方式进行内核调试:
    • 串口: 使用经典的交叉串口线(Zero Modem)连接目标机和主机,依赖操作系统内核中的调试引擎模块控制和访问调试目标,目前只支持Windows目标系统。
    • 管道:使用管道来模拟串口,适合调试虚拟机目标,目前只支持Windows目标系统。
    • USB3:使用专用的USB3电缆连接目标机和主机,又细分为如下四种:
      • DCI Exdi:基于Intel DCI技术控制和访问调试目标,主机端使用EXDI接口调用Intel的Open DCI软件库。
      • DCI Open:与DCI Exdi类似,但是使用Intel的Open DCI编程接口来调用Open DCI软件库。
      • ND:使用NDB的内核调试协议与目标机通信,尚未正式发布。
      • NT:使用Windows的内核调试协议与目标机通信。与在WinDBG中调试NT内核相同。

        对于两种DCI方式,目前既支持Windows目标系统,也支持Linux目标系统,以及调试KVM、EFI固件和SMM软件等特殊目标。 在调试Linux目标时,如果要支持符号化的调试,那么应该选中界面中的Memory Shadow选项,并且在目标系统中加载NDB的内核模块(ndb.ko)。NDB内核模块的作用是读取和报告目标系统的内存布局和模块列表。



    交叉调试Linux应用程序
    NDB支持双机方式交叉调试Linux应用程序,基本步骤如下:
    1)在Linux系统中安装和运行ndsrv,参见http://advdbg.org/gdk/resource.aspx
    2)在Windows系统中启动Nano Code(NDB),在如下界面中选择Connect to Remote Stub:

    在连接对话框中输入如下连接串:tcp:port=200,server=目标ip
    3)如果要调试Linux系统中已经运行的程序,则选择Attach to a process,然后选择对应的进程ID
    4)如果要调试Linux系统中尚未运行的程序,则选择Open Executable。注意,因为界面程序需要指定特定的控制台,所以使用这种方式调试具有图形的程序时可能在创建进程时失败。
    调试本地的Windows应用程序
    可以使用NDB来调试同一台机器上的Windows应用程序,如果要调试新创建的程序,则选择Open Executable,如果要附加到已经运行的进程,则选择Attach to a process,使用方法与WinDBG相同。
    分析Windows转储文件
    可以使用NDB来分析转储文件,可以是应用程序转储,也可以是包含内核数据的内核转储或者系统转储,只要选择Open Crash Dump,打开要分析的转储文件即可。目前暂不支持分析Linux系统的转储文件。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表