QNX下GDB的使用

QNX提供的专用的GDB用于调试板子上的程序,这里简单介绍下用法。
QNX的GDB使用的是Server+Client的架构:在板子上,有一个后台服务qconn,用于提供QNX对外的互联服务;在PC端(Ubuntu),使用的是ntoarmv7-gdb(QNX公司对GDB做了扩展)。安装完SDP后,可以在qnx660/host/linux/x86/usr/bin/下找到这个ntoarmv7-gdb。
简单的使用过程如下:
1. 板子需要设置ip地址;
2. 默认环境中,qconn已经启动,侦听的是8000端口号。可以根据需要重启qconn进程:如换个端口号,qconn port=8888,或者你的库不在现有的LD_LIBRARY_PATH中,重新设置了LD_LIBRARY_PATH后。
3. 启动ntoarmv7-gdb。
4. 执行gdb的命令:

(gdb)target qnx <board_ip>:8000
(gdb)file <your_program>
(gdb)upload <your_program> /tmp/<your_program>

或者,编辑一个包含以上命令的脚本debug.sh,在gdb中:

(gdb)source debug.sh

之后,或设置断点,或直接运行等等与标准GDB没有任何区别,只是gdb退出之后,程序并未在板子上结束运行,需要手动kill一下。

你可能感兴趣的:(gdb,QNX)