2

我们使用 Sun Solaris 进行应用程序开发,并使用 -m64 编译 64 位应用程序。

但是 32 位 GDB 工具已经安装在我的机器上,我们无法调试我们的 64 位应用程序。

输出为

$ gdb cxlog
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.10"...
(gdb) break main
Breakpoint 1 at 0x100001464: file cxlogger.c, line 147.
(gdb) run
Starting program: /usr33/SIR07140/GTB_HOME/GoTx_HOME/samples/cxlog
procfs:4337 -- process not stopped.
procfs: ...giving up...
(gdb) n
procfs: couldn't find pid 12372 (kernel thread 1) in procinfo list.
(gdb).

像下一步和步骤这样的正常调试推荐不起作用。

如果我使用 -m32 GDB 编译我的应用程序是工作文件。

提前致谢。桑达尔·拉金德兰。

4

1 回答 1

2

你基本上有三个选择 - 按我的喜好排列:

  1. 在机器上安装 64 位 GDB。
  2. 在 32 位模式下重新构建您的应用程序并以这种方式进行调试。
  3. 从源代码为 64 位目标构建您自己的 gdb 版本。

调试 64 位二进制文​​件的唯一方法是使用为 64 位构建的 gdb [或其他一些调试器,但无论是哪种,都需要为 64 位目标构建]

于 2013-02-01T12:18:27.630 回答