GDB 错误:所选架构 i386 与报告的目标架构 i386 不兼容:x86-64
Posted
技术标签:
【中文标题】GDB 错误:所选架构 i386 与报告的目标架构 i386 不兼容:x86-64【英文标题】:GDB error: Selected architecture i386 is not compatible with reported target architecture i386:x86-64 【发布时间】:2017-02-09 11:26:14 【问题描述】:有谁知道这个错误是什么意思?
我在 Linux 机器上使用 Netbeans 8.0、gdb 7.8.1。直到两天前一切都很好,然后我开始调试时突然开始收到此错误,我不知道这是什么意思。 到目前为止,我正在尝试清理和重置我能想到的所有内容:重新安装 netbeans,清理所有本地文件,再次 rebase 我的代码,取消设置所有断点等等。 谁能帮我理解这个错误的含义?我从未设置过这些断点,Netbeans 从哪里获取它们?
提前致谢, 雷切尔
编辑
所以现在我有更多细节: 当我尝试直接使用 GDB 调试我的应用程序时,没有 netbeans 我收到以下错误:
启动程序:.... 警告:所选架构 i386 与报告的目标架构 i386 不兼容:x86-64 警告:架构拒绝了目标提供的描述 警告: 无法插入断点 -1。 暂时禁用共享库断点: 断点 #-1 无法插入断点 1。 无法访问地址 0x8081527 处的内存
如何确定编译中的哪些代码\标志使我的应用程序成为 i386?我怎样才能强制它是 x86_64?
再次感谢。
【问题讨论】:
但是,您在那之前开发过您的代码,对吗?而这条消息究竟是什么时候弹出的? 有 NetBeans 日志文件。在我的机器上它位于~/.netbeans/8.2/var/log
也许你需要清理上一个会话的断点。查看调试/断点窗口并删除所有断点。
我已经这样做了,但仍然出现此错误。
【参考方案1】:
好的,我机器上的 gdb 安装被搞砸了。 没有人能想象得到。我搬到另一台机器上,现在一切都很好。
【讨论】:
【参考方案2】:当您尝试在非 WSL 应用程序上使用 WSL gdb 时,可能会出现此错误。
【讨论】:
【参考方案3】:我认为你更新了系统,最新版本的 glib 不支持 32 位应用程序。
您能否找出系统上所有bin
和lib
目录中的哪些文件在过去2 天内发生了更改?如果它曾经支持它,但升级版本不支持,那么(可能在您不知情的情况下)编译为 32 位的应用程序将不是盒子上所有标准工具的有效目标。
您使用-m32
或-m64
指定目标架构。如果您在不同的机器上编译和调试,请查看是否可以明确指定它。
【讨论】:
我检查了我的应用程序及其使用的所有共享库 - 它们都是 x32。还有什么想法吗?以上是关于GDB 错误:所选架构 i386 与报告的目标架构 i386 不兼容:x86-64的主要内容,如果未能解决你的问题,请参考以下文章
尝试编译 AFNetworking 2.0 时架构 i386 的未定义符号
Cordova + XCTest 导致“架构 i386 的未定义符号”
仅构建活动架构时 Cordova 链接器错误“没有为归档构建文件,该文件不是被链接的架构 (i386)”
Ubuntu 16.04使用NASM编译时用ld链接程序出现:i386 架构于输入文件 sandbox.o 与 i386:x86-64 输出不兼容(I386 architecture in the i