在WSL下用GDB调试DLL

在WSL下用GDB调试DLL,dll,gdb,windows-subsystem-for-linux,Dll,Gdb,Windows Subsystem For Linux,抱歉,如果已经询问过,搜索没有产生任何结果 我安装WSL是为了调试一些遗留代码,这些代码以.exe的形式提供,但我还没有源代码(还没有)和可以访问的.dll。整个过程都是使用mingw32工具构建的,我认为使用*ix(DWARF或其他)调试符号应该更容易,而不是在尝试将它们转换为PDB时乱来,但我可能错了 现在我想在WSL下使用gdb调试dll(Ubuntu 20.04,如果相关的话)。我可以加载dll,加载符号,在某处设置断点,加载exe并运行。然后我得到以下消息 warning: Selec

抱歉,如果已经询问过,搜索没有产生任何结果

我安装WSL是为了调试一些遗留代码,这些代码以.exe的形式提供,但我还没有源代码(还没有)和可以访问的.dll。整个过程都是使用mingw32工具构建的,我认为使用*ix(DWARF或其他)调试符号应该更容易,而不是在尝试将它们转换为PDB时乱来,但我可能错了

现在我想在WSL下使用gdb调试dll(Ubuntu 20.04,如果相关的话)。我可以加载dll,加载符号,在某处设置断点,加载exe并运行。然后我得到以下消息

warning: Selected architecture i386 is not compatible with reported target architecture i386:x86-64
warning: Architecture rejected target-supplied description
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x1234567
不会再进一步了。dll本身是为arch=i586编译的

有趣的是,如果我对一个虚拟程序进行同样的尝试,我会得到同样的警告,但可以正常进行


有什么想法吗?

如果您的exe是由mingw生成的,请在mingw下使用gdb。如果你的exe是由cygwin生成的,请在cygwin下使用gdb。MinGW工作得很好,谢谢。如果你的exe是由MinGW生成的,请在MinGW下使用gdb。如果您的exe是由cygwin生成的,请在cygwin下使用gdb。MinGW工作得很好,谢谢。