32位gdb可以调试64位二进制文件吗?
32位gdb可以调试64位二进制文件吗?
Can 32bit gdb debug 64bit binary?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
32位gdb可以调试64位二进制文件吗?
Can 32bit gdb debug 64bit binary?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
上面的答案是不正确的。您需要 64 位调试器来调试 64 位进程。这正是 gdb 在幕后创建 64 位自身副本的原因。
The answer above is incorrect. You need a 64-bit debugger to debug a 64-bit process. That's precisely the reason why gdb forks a 64-bit copy of itself behind the scenes.
是的。 32 位 gdb 在 Solaris 上可以很好地调试 64 位二进制文件,至少在最新版本上是这样。
然而,如果您仔细观察,就会发现这个 32 位 gdb 在幕后启动了一个 64 位 gdb:
无论调试的二进制文件是 32 位还是 64 位,它都会执行此操作。
我仍然认为 Solaris 下调试器与进程交互的方式与大小无关,因此从技术上讲,32 位二进制调试器应该能够调试 64 位程序。64 位 gdb 能够调试32 位和 64 位二进制文件,但 32 位 gdb 无法调试 64 位二进制文件。这就是你正在经历的。
Yes. A 32 bit gdb debugs 64 bit binaries fine on Solaris, at least on the latest release.
However, if you look closer, this 32 gdb is launching a 64 bit gdb under the hood:
It does it regardless of whether the binary debugged is 32 or 64 bit.
I still think the way a debugger interact with a process under Solaris is size independent so technically, a 32 bit only binary debugger should be able to debug a 64 bit program.A 64 bit gdb is able to debug both 32 bit and 64 bit binaries but a 32 bit gdb cannot debug 64 bit ones. This is what you are experiencing.