在Eclipse中,如何在远程调试时将可执行文件加载到基于远程ARM的嵌入式目标

时间:2015-06-22 09:01:01

标签: eclipse arm cross-compiling gdbserver

我建立一个'#34; hello world" Eclipse CDT中的程序,带有用于基于ARM Cortex-A8的板的交叉开发插件。我定义了arm-none-linux-gnueabi编译器用于交叉开发,当我将输出二进制文件传输到带有USB的板时,它可以正常工作。我用ssh连接到电路板并执行命令。

通过ssh,我运行以下命令:

  
    

gdbserver:2345 mydebugexecutable

         

创建过程NeonDenemeler_debug; pid = 1692

         

收听2345端口

  

" mydebugexecutable"是在Eclipse CDT中使用调试设置在我的主机pc(Ubuntu)上交叉编译的可执行文件。我正如我所描述的那样创建一个调试配置 http://linuxtortures.blogspot.com.tr/2012/06/cross-compiling-and-cross-debugging-c.html

总结一下这个过程,我创建了一个新的C / C ++远程调试配置,将调试器设置为" arm-none-linux-gnueabi-gdb"而不是" gdb"并将连接设置设置为远程目标的ip和端口。当我启动调试配置时,一切正常,因为板上的gdbserver等待来自端口2345的数据包。

但是,我的问题是,当我更改源代码并再次编译时,有没有办法通过Eclipse将gdb从主机加载到目标?我无法找到一个选项,例如"加载可执行文件"我进行了更改和构建,但始终在目标上运行旧的可执行文件。我的一个同伴通过成功使用QT执行相同的远程调试过程,这意味着" arm-none-linux-gnueabi-gdb"具有远程可执行加载功能。

1 个答案:

答案 0 :(得分:0)

问题是您正在使用“手动远程调试Laucher”配置(根据您发布的链接)。 “手动”表示应用程序已复制到目标并由用户启动。

您所要做的就是坚持图10的Debug配置,这是默认配置(“Automatic Remote Debugging Laucher”)。 Debug会话将文件复制到目标并自动启动调试程序,就像它在本地一样。 为此,您只需确保首先在“远程系统资源管理器”透视图上创建了一个有效的远程连接,并将其分配给您的调试配置(连接下拉菜单)。

希望它有所帮助!