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).

next & step のような通常のデバッグ コマンドは機能しません。

-m32 を使用してアプリケーションをコンパイルすると、GDB は作業ファイルになります。

前もって感謝します。サンダー・ラジェンドラン。

4

1 に答える 1

2

あなたには基本的に3つの選択肢があります - 私の好みの順に:

  1. マシンに 64 ビット GDB をインストールします。
  2. アプリを 32 ビット モードで再ビルドし、その方法でデバッグします。
  3. ソースから、64 ビット ターゲット用の独自のバージョンの gdb をビルドします。

64 ビット バイナリをデバッグする唯一の方法は、64 ビット用にビルドされた gdb を用意することです [または他のデバッガーですが、64 ビット ターゲット用にビルドする必要があります]。

于 2013-02-01T12:18:27.630 に答える