cjdb 工具
简介
CJDB 是一款基于 lldb 开发的仓颉程序命令行调试工具。当前 cjdb 工具是在llvm15.0.4基础上适配演进出来的工具。为仓颉开发者提供程序调试的能力。了解更多仓颉调试器的介绍,请参阅 调试工具。
本仓提供了 cjdb 调试工具源码,整体框架如下图展示:

目录结构
lldb/
├─bindings # 各种语言与LLDB交互的绑定代码
├─cmake # Cmake构建系统相关的配置文件
├─docs # 文档
├─examples # 示例代码
├─include # 公共头文件
├─packages # 打包脚本
├─resources # 运行所需各类资源文件
├─scripts # 辅助脚本
├─source # 核心源代码目录,Plugins包含cangjie扩展
├─test # 测试脚本及测试用例
├─third_party # 三方库
├─tools # 与LLDB集成的工具
├─unittests # 单元测试
└─utils # 通用工具类和辅助函数
约束
支持在 Ubuntu/MacOS(x86_64, aarch64) 环境中对仓颉调试器进行构建。更详细的环境及工具依赖请参阅 构建环境指导书。
编译构建
下载源码:
$ git clone https://gitcode.com/Cangjie/cangjie-compiler.git -b release-cangjie-merged;
构建步骤
$ cd cangjie-compiler
$ python3 build.py clean
$ python3 build.py build -t release --build-cjdb
$ python3 build.py install
clean命令用于清空工作区临时文件;build命令开始执行编译,选项-t即--build-type,指定编译产物类型,可以是release或debug;install命令将编译产物安装到output目录下。
output 目录结构如下:
./output
├── bin # 仓颉可执行文件
├── envsetup.sh # 一键环境变量配置脚本
├── include # 编译前端对外头文件
├── lib # 仓颉编译产物依赖库,子文件夹按照目标平台拆分
├── modules # 仓颉标准库 cjo 文件预留文件夹,子文件夹按照目标平台拆分
├── runtime # 仓颉编译产物依赖运行时库
├── third_party # llvm 等第三方依赖二进制及库
└── tools # 仓颉工具
│ ├── bin # 包含CJDB可执行文件
│ ├── config
│ └── lib
更多构建选项
如需了解更多构建选项,请参阅 build.py 构建脚本 或通过 --help 选项查看。
$ python3 build.py --help
集成构建指导
集成构建请参阅 仓颉 SDK 集成构建指导书。