zhjding 发表于 2020-3-30 15:10:15

OKMX6UL-C2 eMMC版 远程调试

我想在Ubuntu下使用QT通过gdb远程调试板子,结果gdb编译后无法在板子上运行。
虚拟机:Linux ubuntu 3.2.0-126-generic #169-Ubuntu SMP Fri Mar 31 14:15:21 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
gdb版本:7.4.0
板子:Linux imx6ulevk 4.1.15-00025-gc980b04 #1 SMP PREEMPT Wed Jan 15 11:16:10 CST 2020 armv7l armv7l armv7l GNU/Linux

交叉编译步骤:
1. 尝试使用/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ 编译器
   ./configure --prefix=/usr/local/arm-gdb
   make CC=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++

2.使用OKMX6UL-C(eMMC&Nand版)用户资料-20190905\工具\gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz 编译器
./configure --prefix=/usr/local/arm-gdb
make CC=/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-gcc

结果编译出来移植到板子上都无法使用,error: cannot execute binary file: Exec format error
这是编译器选择的问题么?怎么可以远程调试?谢谢

zhichao 发表于 2020-3-30 15:16:40

您看看这个帖子能否帮到你,https://blog.csdn.net/lijingshan34/article/details/72764020/

zhjding 发表于 2020-3-30 15:33:46

zhichao 发表于 2020-3-30 15:16
您看看这个帖子能否帮到你,https://blog.csdn.net/lijingshan34/article/details/72764020/

不是,应该是编译的问题。板子自带gdb可以使用
file gdb
我编译的:gdb: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID=6ad31dbe1bb4a9cb690e0fde9016d8ff48c1fa73, not stripped
自带的:/usr/bin/gdb: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID=46739e506fd2c457560dbabaf0845d7b44d99e27, stripped

一个是 x86-64,一个是ARM

zhichao 发表于 2020-3-30 16:39:08

您得使用ARM架构的才行,x86-64编译出来的格式不识别

zhjding 发表于 2020-3-30 16:48:18

zhichao 发表于 2020-3-30 16:39
您得使用ARM架构的才行,x86-64编译出来的格式不识别

是的,这个我知道,gdb是源码,就是编译器的问题,我用的编译器都是你们资料里提供的。是我使用的方法不对么?

zhichao 发表于 2020-3-30 17:13:06

手册上提供了编译可执行二进制文件的方法,您可以再看看
页: [1]
查看完整版本: OKMX6UL-C2 eMMC版 远程调试