代码之家  ›  专栏  ›  技术社区  ›  SpliFF

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

  •  5
  • SpliFF  · 技术社区  · 14 年前

    这是一个满嘴的问题,但基本上我想知道我是否可以使用GDB的应用程序编译到i686pcmingw在linux交叉编译器。我想用源代码引用等在目标windows框上调试生成的程序。

    有件事让我有点困惑,GCC和GDB的版本号似乎不匹配。如何判断版本是否兼容?

    2 回复  |  直到 14 年前
        1
  •  8
  •   Employed Russian    14 年前

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

    i686个人电脑 Linux 系统是您的主机。

    • 你已经有一个 linux -托管 i686个人电脑 .
    • gdbserver
    • gdb 交叉编译器)。那个 gdb公司 --host=x86-linux --target=i686-pc-mingw . 这实际上是跨gdb的——它在Linux上运行,但调试mingw可执行文件。

    现在快跑 gdbserver :0 foo.exe (瞄准目标)。应该打印一个端口号 正在监听连接。

    gdb foo.exe (在主机上),并使用连接到远程目标 target remote <windows-target-host-name>:<gdbserver-port-number> ,你应该做生意。

    附笔。

        2
  •  1
  •   rogerdpack    9 年前

    好吧,原来这是可能的使用“本机”gdb。

    基本上,你可以下载本机gdb.exe文件(32位或64位,以匹配可执行文件),并“使用调试符号”交叉编译.exe(例如, gcc -g source.c 创建一个.exe)。

    然后复制 a.exe gdb a.exe 您还可以设置断点、检查变量等。如果您在调试源代码时还希望访问源代码,可以将源代码复制到windows框中,然后运行 从你的源代码所在的目录中,这样它就会排列起来。当然,您需要/想要一个源代码的逐字副本,但是您有一个具有完整源代码的本机调试器。