8709
- 收藏
- 点赞
- 分享
- 举报
用Qt 调用GDB调试 Arm程序 详细步骤----可单步执行每一行
前言
本人交叉编译环境 Ubuntu 10.04(虚拟机),编译工具链 arm-hisiv100nptl-linux,Qt 4.8.5 ,QtCreator1.3.1
1、在虚拟机Ubuntu 10.04上,安装GDB调试工具之前,要安装预处理模块:
sudo apt-get install texinfo
sudo apt-get install libncurses5-dev
sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison
2、安装GDB调试工具
2.0 下载gdb-7.4.tar.gz(http://www.gnu.org/software/gdb/download/)
手动到网页下载
2.1、将gdb-7.4.tar.gz拷贝到任意的位置
2.2、解压gdb-7.4.tar.gz
tar -zxvf gdb-7.4.tar.gz
2.3、编译arm-linux-gdb(下面/usr/local是安装目录,可自行更改)
到目录gdb-7.4下
cd gdb-7.4
$./configure --target=arm-hisiv100nptl-linux --prefix=/usr/local/arm-gdb -v
target指明编译生成的GDB用于调试ARM-LINUX程序,prefix指明安装目录
$make
#make install
#sudo gedit /etc/profile
export PATH=$PATH:/usr/local/arm-gdb/bin --把arm-linux-gdb加入环境变量
这样就可以在/usr/local/arm-gdb/bin目录下看到如下三个可执行文件
arm-hisiv100nptl-linux-gdb
arm-hisiv100nptl-linux-gdbtui
arm-hisiv100nptl-linux-run
2.4、编译GDB Server
#cd ./gdb/gdbserver (进入gdb-7.4目录里执行该句)
#export PATH=$PATH:/usr/local/arm-gdb/bin
#./configure --target=arm-hisiv100nptl-linux
#make CC=arm-hisiv100nptl-linux-gcc //编译用于目标机的stub程序生成gdbserver是GDB客户端程序,在板子上运行。
此时发现有错误,打开config.h文件,把相应的行注释掉:
//#define HAVA_SYS_REG_H
//define HAVE_DECL_ADDR_NO_RANDOMIZE 1
有的人说只需要注释一行就可以了,我的需要注释这两行
注释完后,保存并关闭config.h,重新执行:
make clean
make CC=arm-hisiv100nptl-linux-gcc。成功后会生成可自行程序gdbserver。
2.5、将gdbserver通过你搭建的环境下载到开发板(我的环境是/mnt/nfs/samples),与你的可自行程序放在一个文件夹下
3、以sample_venc为例,构建Qt工程:(我的SDK路径是:/root/hixx/Hi3520D_SDK_V1.0.3.2/)
3.1、在$SDK_PATH/sample/下建立文件夹,我命名为qt_venc。拷贝$SDK_PATH/sample/venc/sample_venc.c到qt_venc。打开命令行,进入qt_venc文件夹,执行qmake -project。这样就自动生成了Qt工程文件。用QtCreator打开这个工程文件qt_venc.pro,把工程文件修改如下:(注意文件路径各人情况不同,请酌情修改)
# #####################################################################
# Automatically generated by qmake (2.01a) ?? 6? 9 16:55:18 2015
# #####################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += . \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/include \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/sample/common \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/tw2865 \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/tw2960 \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/tlv320aic31 \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/cx26828
DEFINES += hi3520D \
HICHIP=0x3520D100 \
HI_DEBUG \
HI_XXXX \
DEMO
# Input
SOURCES += sample_venc.c \
../common/sample_comm_vpss.c \
../common/sample_comm_vo.c \
../common/sample_comm_vi.c \
../common/sample_comm_venc.c \
../common/sample_comm_vdec.c \
../common/sample_comm_vda.c \
../common/sample_comm_sys.c \
../common/sample_comm_audio.c \
../common/loadbmp.c
LIBS += /root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libmpi.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libhdmi.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libVoiceEngine.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libaec.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libresampler.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libanr.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libjpeg.a
CONFIG += debug
########################## pro 文件结束 ###############
本人交叉编译环境 Ubuntu 10.04(虚拟机),编译工具链 arm-hisiv100nptl-linux,Qt 4.8.5 ,QtCreator1.3.1
1、在虚拟机Ubuntu 10.04上,安装GDB调试工具之前,要安装预处理模块:
sudo apt-get install texinfo
sudo apt-get install libncurses5-dev
sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison
2、安装GDB调试工具
2.0 下载gdb-7.4.tar.gz(http://www.gnu.org/software/gdb/download/)
手动到网页下载
2.1、将gdb-7.4.tar.gz拷贝到任意的位置
2.2、解压gdb-7.4.tar.gz
tar -zxvf gdb-7.4.tar.gz
2.3、编译arm-linux-gdb(下面/usr/local是安装目录,可自行更改)
到目录gdb-7.4下
cd gdb-7.4
$./configure --target=arm-hisiv100nptl-linux --prefix=/usr/local/arm-gdb -v
target指明编译生成的GDB用于调试ARM-LINUX程序,prefix指明安装目录
$make
#make install
#sudo gedit /etc/profile
export PATH=$PATH:/usr/local/arm-gdb/bin --把arm-linux-gdb加入环境变量
这样就可以在/usr/local/arm-gdb/bin目录下看到如下三个可执行文件
arm-hisiv100nptl-linux-gdb
arm-hisiv100nptl-linux-gdbtui
arm-hisiv100nptl-linux-run
2.4、编译GDB Server
#cd ./gdb/gdbserver (进入gdb-7.4目录里执行该句)
#export PATH=$PATH:/usr/local/arm-gdb/bin
#./configure --target=arm-hisiv100nptl-linux
#make CC=arm-hisiv100nptl-linux-gcc //编译用于目标机的stub程序生成gdbserver是GDB客户端程序,在板子上运行。
此时发现有错误,打开config.h文件,把相应的行注释掉:
//#define HAVA_SYS_REG_H
//define HAVE_DECL_ADDR_NO_RANDOMIZE 1
有的人说只需要注释一行就可以了,我的需要注释这两行
注释完后,保存并关闭config.h,重新执行:
make clean
make CC=arm-hisiv100nptl-linux-gcc。成功后会生成可自行程序gdbserver。
2.5、将gdbserver通过你搭建的环境下载到开发板(我的环境是/mnt/nfs/samples),与你的可自行程序放在一个文件夹下
3、以sample_venc为例,构建Qt工程:(我的SDK路径是:/root/hixx/Hi3520D_SDK_V1.0.3.2/)
3.1、在$SDK_PATH/sample/下建立文件夹,我命名为qt_venc。拷贝$SDK_PATH/sample/venc/sample_venc.c到qt_venc。打开命令行,进入qt_venc文件夹,执行qmake -project。这样就自动生成了Qt工程文件。用QtCreator打开这个工程文件qt_venc.pro,把工程文件修改如下:(注意文件路径各人情况不同,请酌情修改)
# #####################################################################
# Automatically generated by qmake (2.01a) ?? 6? 9 16:55:18 2015
# #####################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += . \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/include \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/sample/common \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/tw2865 \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/tw2960 \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/tlv320aic31 \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/extdrv/cx26828
DEFINES += hi3520D \
HICHIP=0x3520D100 \
HI_DEBUG \
HI_XXXX \
DEMO
# Input
SOURCES += sample_venc.c \
../common/sample_comm_vpss.c \
../common/sample_comm_vo.c \
../common/sample_comm_vi.c \
../common/sample_comm_venc.c \
../common/sample_comm_vdec.c \
../common/sample_comm_vda.c \
../common/sample_comm_sys.c \
../common/sample_comm_audio.c \
../common/loadbmp.c
LIBS += /root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libmpi.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libhdmi.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libVoiceEngine.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libaec.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libresampler.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libanr.a \
/root/hixx/Hi3520D_SDK_V1.0.3.2/mpp/lib/libjpeg.a
CONFIG += debug
########################## pro 文件结束 ###############
我来回答
回答8个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2012-12-24 14:27:15
-
2012-12-04 13:42:23
-
2013-12-02 22:02:26
-
2012-12-04 13:47:21
-
2017-03-20 20:37:31
-
2018-11-01 22:36:48
-
2018-10-24 15:42:32
-
2019-01-29 09:38:05
-
2012-12-04 13:12:32
-
2008-09-05 20:16:57
-
2021-01-27 13:55:03
-
2018-12-21 14:04:46
-
2018-10-22 09:49:48
-
2018-10-23 14:10:10
-
2017-11-15 20:22:01
-
2020-10-09 16:41:00
-
2020-09-29 14:16:21
-
2015-01-21 22:06:56
-
2013-11-23 08:55:59
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认