博主没有找到所谓的Start and Debug Remote Application,因为博主的菜单来汉化了一部分,所以有点坑。不过感觉是Attach to Running Debug Server..,但是我设置了服务器地址和端口,图如下所示:
注意:需要在构建条件中设置调试器,如图:
但是我设置的arm-linux-gnueabihf-gdb没有被QtCreator识别,所以也不知道是什么问题。
最终出现如下错误:
Unknown debugger type "No engine"
Unable tocreatea debugger engine ofthe type "No engine"
当然,偶然看到一篇博客说是因为是Ubuntu16.04 64位系统,而我的arm-linux-gnueabihf-gdb是32位的,会出现不兼容的现象,所以我安装了:
apt-get install gdb-multiarch
不过,仍然是上面的错误,可能其他人能够成功吧!附【Linux开发】【Qt开发】arm-linux-gnueabihf-gdb versus gdb-multiarch
虽然知道是arm-linux-gnueabihf-gdb不被QtCreator识别,但是也不知道如何解决,希望有解决的朋友能够告知!感谢!!!
命令行调试问题记录
在命令行下调试的过程中,因为博主也没有深入去研究gdb的命令,所以只是简单讲下我理解测试过的问题。在主机端和开发板端远程连接建立后,我执行了如下命令:
第一,重复一下远程连接建立的命令:
// 开发板
mount -t nfs 192.168.1.95:/nfs /opt -o nolock
gdbserver 192.168.1.90:20 helloWorld
// 注:开发板端是服务器端,等待主机端连接// 主机端
arm-linux-gnueabihf-gdb helloWorld
target remote 192.168.1.90:20
第二:使用gdb进行调试,gdb调试命令,博主对这些调试命令也不熟,直接附上我的gdb调试代码。
(gdb) target remote 192.168.1.90:20 // 远程连接
(gdb) file xxx // 这里是加载运行程序
(gdb) run // 运行博主的程序出现不支持run,没有研究,直接continue
The "remote" target does not support "run". Try "help target"or"continue".
(gdb) continue // continue是出现警告
Continuing.
warning: Could notload shared library symbols for25 libraries, e.g. /tftpboot/grape_ffmpeg/lib/libavcodec.so.57.
Use the"info sharedlibrary"commandtoseethecompletelisting.
Do you need "set solib-search-path"or"set sysroot"?
warning: Could notload shared library symbols for2 libraries, e.g. /tftpboot/qt5.5.1-grape/plugins/platforms/libqlinuxfb.so.
Use the"info sharedlibrary"commandtoseethecompletelisting.
Do you need "set solib-search-path"or"set sysroot"?
博主想要解释的就是这里的info sharedlibrary、set solib-search-path。
为什么会出现warning: Could not load shared library symbols for 25 libraries?这样的警告呢?,博主在网上查到很多相关的解释,很多都是复制粘贴,一笔带过,却没有说明具体的解决步骤。最后在这里:set solib-search-path command,才明白该如何使用。虽然都是英文,但是其实人家的解释真的非常非常简单。
这里翻译一下原文:
set solib-search-path command
set solib-search-path用于指定GDB查找动态库文件时的目录。这个选项在gdbsever调试的使用有用。
syntax
set solib-search-path[Directories]
show solib-search-path