You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86主机使用aarch64-poky-linux-gdb调试GTest单元测试失败求助

调试ARM64架构GTest单元测试可执行文件的解决方法

核心原因

你使用的是交叉编译版GDB(aarch64-poky-linux-gdb),它无法直接在x86主机上运行ARM64架构的程序,必须配合模拟器或远程目标环境才能执行调试,这是run命令报错的根本原因。

可行调试方案

方案1:借助QEMU用户态模拟器本地调试

  1. 确认主机已安装qemu-aarch64(Poky SDK环境一般自带,缺失可通过系统包管理器补充)
  2. 启动GDB后按以下步骤配置:
    • 设置QEMU为程序运行器,指定ARM64根文件系统路径:
      set exec-wrapper qemu-aarch64 -L /opt/poky/3.1/sysroots/aarch64-poky-linux
      
      替换路径为你实际的Poky SDK ARM64根文件系统路径
    • 加载目标可执行文件:
      file ./unittests/ut_settings
      
    • 设置GTest过滤参数:
      set args --gtest_filter=SettingsTestSuite.testParseStatus
      
    • 执行run启动调试

方案2:远程调试(连接ARM64硬件/虚拟机)

如果有实际ARM64开发板或虚拟机:

  1. 在目标机上启动GDB服务器:
    gdbserver :1234 ./unittests/ut_settings --gtest_filter=SettingsTestSuite.testParseStatus
    
    确保目标机已安装gdbserver
  2. 在x86主机的交叉GDB中建立连接:
    file ./unittests/ut_settings
    target remote <目标机IP地址>:1234
    
    连接成功后,即可用continue、break等命令进行调试

方案3:兼容性检查

  • 确认ut_settings是用同款Poky SDK交叉编译,且编译时添加了-g调试参数(确保包含调试信息)
  • 验证交叉GDB版本与编译工具链版本匹配,避免版本差异导致的兼容性问题

内容的提问来源于stack exchange,提问作者helianthus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:02:02