繁体   English   中英

Qt Creator GDB使用调试助手进行远程调试

[英]Qt creator gdb remote debugging with debug helpers

到目前为止的设置

1.建立gdb

Qt Creator的最新版本要求gdb必须使用python支持进行编译。 使用python支持为远程手臂编译gdb。

  1. 从此处http://www.gnu.org/software/gdb/download/获取gdb来源
  2. 提取并移至提取的目录
  3. (可选)创建构建文件夹

    mkdir -p build/gdb

  4. 使用以下参数运行configure。 注意: arm-linux-gnueabi这应该是PATH中交叉编译器二进制文件的前缀。

    ../../configure --target=arm-linux-gnueabi --with-python

  5. 运行make

如果一切顺利,则应该在gdb-7.7.1/build/gdb/gdb/使用python支持编译一个gdb可执行文件,该文件可以与arm上运行的gdbserver通信。

2.构建gdbserver

gdbserver的源位于gdb源中。

  1. (可选)为gdbserver创建一个构建目录

    mkdir -p build/gdbserver

  2. 准备gdbserver进行交叉编译

    ../../gdb/gdbserver/configure --host=arm-linux-gnueabi

  3. 运行make

如果一切顺利,则应该在gdb-7.7.1/build/gdbserver/具有gdbserver可执行文件。

3.将gdbserver迁移到目标

gdbserver必须位于要运行您要调试的代码的目标设备上。 我刚刚使用scp将其移动到/usr/bin 由于/usr/bin位于PATH中,因此gdbserver在远程终端中可用。

4.设置Qt创建者

为了能够从Qt Creator部署和运行,您需要指定如何连接到目标。 Devices添加具有所需参数的新设备。 我在具有密码身份验证的目标上使用openssh。 运行测试以检查此步骤是否通过。

要在目标上定义运行路径,请在.pro文件中添加以下内容:

linux-* {
         target.path = .
         INSTALLS += target }

注意:您可以在Projects->Run检查运行设置。 如果找不到运行按钮,请先添加工具包。

Build and Run-> Kits -> "Your cross compiler kit name" ,为Debugger属性选择Manage... 添加一个新的调试器,该调试器指向在步骤1中编译的gdb可执行文件。

另外,请确保在Debugger->Locals & Expressions启用Use Debugging Helper ,以正确解释QString。

我成功地走了这么远


问题

当我编译示例代码并在主机上运行时,一切正常。 在此处输入图片说明

但是当我尝试在遥控器上进行操作时,无法访问任何内容。

在此处输入图片说明

弹出的错误:

在此处输入图片说明

随着新见解的出现,我将对此进行更新。

“无法解析XML ...”消息来自gdb。 配置用于构建的gdb时,请确保将libexpat开发包放在眼前。

但是,这可能不是真正的问题。 我看到“ stty”。 如何指定与远程目标的连接?

我无法将其与有关XML的错误相关联,但是一旦在Build&Run-> Kits-> Sysroot中设置了正确的Sysroot,就可以解决该问题。

不知道默认情况下使用了什么sysroot ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM