调试指南

来自SylixOS-wiki
(版本间的差异)
跳转至: 导航, 搜索
第47行: 第47行:
  
 
第二种方式启动的应用在debug退出时不会自动退出,而是继续运行,知道程序正常退出。
 
第二种方式启动的应用在debug退出时不会自动退出,而是继续运行,知道程序正常退出。
 +
 +
==gdb客户端连接==
 +
 +
:1、在eclipse下点击Run->Debug Configurations菜单,新建一个

2014年5月30日 (五) 22:39的版本

目录

说明

本文描述SylixOS应用程序调试方法,文中examples应用程序实例参考入门指南中的“examples示例工程”

编译下载程序

需确认gcc优化调试选项设置为“-O0 -g3”。examples工程已设置正确。
程序编译和下载方法可参考入门指南中的“examples示例工程”编译运行流程。

启动debug服务器

SylixOS debug服务器提供两种启动方式。
第一种方式:由debug服务器启动应用程序。在命令中指定监听的网络接口和端口,后跟需要启动的应用程序路径和参数。流程如下:
[root@sylixos_station:/]# cd /home
[root@sylixos_station:/home]# debug localhost:1234 hello_world
[GDB]Waiting for connect...

由debug启动的应用程序在debug退出时会被强制杀死,以便重新开始下一轮调试。但是这是不安全的,因此如果在重新下一轮调试中发现系统运行不正常,应该重新启动系统。

第二种方式,先启动应用程序,然后启动debug服务器attach到应用程序。debug命令中需指定--attach选项,并监听的网络接口和端口,后跟已启动的应用程序进程id。流程如下:
1、启动应用程序。
[root@sylixos_station:/]# cd /home
[root@sylixos_station:/home]# ./hello_world
2、由于现有telnet终端连接已经被应用程序占用,需新建telnet终端连接。
3、在新建的telnet终端连接上查询应用程序进程id。
[root@sylixos_station:/]# ps
      NAME             FATHER        PID   GRP   MEMORY    UID     GID    USER
----------------- ----------------- ----- ----- -------- ------- ------- ------
kernel            <orphan>              0     0        0       0       0 root
hello_world       <orphan>              1     1    65536       0       0 root
total vprocess : 2
4、启动debug服务器并attach到应用程序。
[root@sylixos_station:/]# debug --attach localhost:1234 1
[GDB]Waiting for connect...

第二种方式启动的应用在debug退出时不会自动退出,而是继续运行,知道程序正常退出。

gdb客户端连接

1、在eclipse下点击Run->Debug Configurations菜单,新建一个
个人工具
名字空间

变种
操作
导航
工具