加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

调试 – 可以在目标平台上的交叉编译的win32应用程序上使用GDB

发布时间:2020-12-14 01:54:37 所属栏目:Windows 来源:网络整理
导读:这是一个问题,但基本上我想知道我是否可以在 Linux交叉编译器上编译到i686-pc-mingw的应用程序上使用GDB.我想在目标窗口框中调试生成的程序,包含源代码引用等. 是否可能,如果是这样,我需要考虑什么(即相同版本的mingw文件,相同的binutils,相同的源代码相对路
这是一个问题,但基本上我想知道我是否可以在 Linux交叉编译器上编译到i686-pc-mingw的应用程序上使用GDB.我想在目标窗口框中调试生成的程序,包含源代码引用等.

是否可能,如果是这样,我需要考虑什么(即相同版本的mingw文件,相同的binutils,相同的源代码相对路径等)?

有点让我感到震惊的是GCC和GDB的版本号似乎不匹配.你怎么知道版本是否兼容?

如果这些问题听起来很愚蠢,那只是因为我没有太多使用GDB,这只是我想要开始做的事情,所以我不是想猜测是什么破坏了.

解决方法

是的,您应该能够在Linux主机上使用GDB来调试在i686-pc-mingw上运行的可执行文件.

术语:i686-pc-mingw系统是您的目标,Linux系统是您的主机.

>你已经有一个linux托管的
编译器的目标
i686的-PC-MinGW的.
>你需要建立一个
目标的gdbserver(使用交叉编译器).
>您还需要构建一个gdb(使用本机,而不是交叉编译器).那个gdb需要配置为–host = x86-linux和–target = i686-pc-mingw.这实际上是跨gdb – 它在Linux上运行,但调试mingw可执行文件.

现在运行gdbserver:0 foo.exe(在目标上).这应该打印gdbserver正在侦听连接的端口号.

运行gdb foo.exe(在主机上),并使用目标远程< windows-target-host-name>连接到远程目标:< gdbserver-port-number>,您应该开始营业.

附:GCC和GDB是完全独立的项目,它们的版本彼此没有任何关系.您应该能够使用任何相对较新的GCC版本构建GDB.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读