# 系统调试
* [前言](#intro)
* [Jlink调试](#jlink-debug)
* [Ozone调试](#ozone-debug)
* [FAQ](#faq)
## 前言
本文档将介绍XiUOS使用jlink、Ozone调试软件的配置、调试过程。
## Jlink调试
### 软件安装
+ jlink包安装
第一步,进入jlink官网[下载网址](https://www.segger.com/downloads/jlink)
第二步,选择版本并下载安装包,此处下载的安装包版本为V6.72e,即JLink_Linux_V672e_x86_64.deb。
第三步,安装JLink_Linux_V672e_x86_64.deb
```shell
$ dpkg -i JLink_Linux_V672e_x86_64.deb
```
+ openocd安装
第一步,进入[下载网址](https://github.com/kendryte/openocd-kendryte/releases),
下载Unbuntu版本的openocd。XiUOS中下载的kendryte-openocd-0.2.3-ubuntu64.tar.gz
第二步,安装openocd
```shell
$ sudo mv kendryte-openocd-0.2.2-ubuntu64.tar.gz /opt
$ cd /opt
$ sudo tar -zxvf kendryte-openocd-0.2.2-ubuntu64.tar.gz
$ sudo apt install libusb-dev libftdi-dev libhidapi-dev
```
第三步,openocd文件配置
打开配置文件,修改第三行 jlink serial 504503073的504503073为具体JLINK设备的标签。
```shell
$ cd /opt/kendryte-openocd
$ vim ctl/openocd.cfg
```
第四步,打开openocd软件
```shell
$ cd /opt/kendryte-openocd
$ ./bin/openocd -f ./ctl/openocd.cfg
```
成功运行则显示如下的界面。
### 调试程序
```shell
$ riscv-none-embed-gdb XiaoShan_kd233.elf --eval-command="target remote 127.0.0.1:3333"
```
运行上述命令,其中,
+ XiaoShan_kd233.elf是编译过程生成的elf文件;
+ 127.0.0.1表示本地IP地址,也可以制定远程地址;
+ 3333是openocd监听的端口号;
成功连接openocd之后,界面如下所示,之后就可以使用load\break\continue等gdb命令进行调试了。
提交到Ozone页面

点击调试后,若未设置断点,Ozone将自动在执行main函数前停止,Ozone支持设置代码和数据断点、单步调试、查看变量值等功能,是很方便的一个调试工具。
## FAQ