2

gdb の 7.x バージョンをコンパイルしようとしましたが、うまくいきませんでした。実行可能ファイル (http://sourceware.org/gdb/wiki/BuildingOnDarwin) をコード署名しました。

以下のバージョンでは、これらの問題がありました。

7.5,7.4,git clone: gbd の起動時に、アプリケーションと別のシステム ライブラリのロード コマンド 0x2a (およびその他) が不明です。たとえば、ベクトルを印刷しようとすると、「main(int, char**)」のフレームベースが見つかりませんでした。

7.3 (macports および gdb-website から): アプリケーションの起動時に、ブレークポイントの設定に失敗し、実行が続行されます。

(gdb) start
Temporary breakpoint 1 at 0x100000950: file ../src/main.cpp, line 15.
Starting program: [...]
BFD: unable to read unknown load command 0x24
BFD: unable to read unknown load command 0x2a
BFD: unable to read unknown load command 0x26
Error in re-setting breakpoint 1: Cannot access memory at address 0x100000950
[application continues]

システムllvm-gcc、gcc4.7、およびsvn-gcc4.8を使用してコンパイルしました。Mountain Lion に gdb をインストールできた人はいますか?

4

4 に答える 4

11

問題なくマウンテン ライオンに gdb 7.5 をインストールしました...

  1. これらの手順が役立つ場合があります。 darwin10 --host=x86_64-apple-darwin10 --target=x86_64-apple-darwin10

  2. 次に、gdb をインストールします。

  3. ここに記載されているように独自の証明書を作成し、gdb http://sourceware.org/gdb/wiki/BuildingOnDarwinに署名します。

  4. gdb に署名する前に、明示的に次のように述べる必要があります。また、gdb に署名する前にキーチェーンを閉じます。

これがあなたにも役立つことを願っています

于 2012-09-11T14:28:43.307 に答える
5

ここで試した手順に従って、この問題を解決しました: http://coding.derkeiler.com/Archive/Ada/comp.lang.ada/2012-09/msg00305.html

手順

  1. sudo chgrp procmod /usr/local/bin/gdb
  2. sudo chmod g+s /usr/local/bin/gdb
  3. /System/Library/LaunchDaemons/com.apple.taskgated.plist を編集して +p 引数を taskgated プロセスに追加します
  4. taskgated プロセスを強制終了します (再起動します)
  5. 再試行

その他のリンク:

  1. https://blogs.oracle.com/dns/entry/understanding_the_authorization_framework_on
于 2012-12-01T01:07:08.233 に答える
2

私にはうまくいかないようです...デフォルトの自作設定と同じ問題

v1:src zeph$ brew install gdb
==> Downloading http://ftpmirror.gnu.org/gdb/gdb-7.5.tar.bz2
Already downloaded: /Library/Caches/Homebrew/gdb-7.5.tar.bz2
==> ./configure --prefix=/usr/local/Cellar/gdb/7.5 --with-python=/usr --with-system-readline --enable-targets=x86_64-apple-darwin10 --enable-64-bit-bfd --disable-werror --build=x86_64-apple-darwin10 --hos
==> make
==> make install
==> Caveats
gdb requires special privileges to access Mach ports.
You will need to codesign the binary. For instructions, see:

  http://sourceware.org/gdb/wiki/BuildingOnDarwin
==> Summary
/usr/local/Cellar/gdb/7.5: 62 files, 9.3M, built in 119 seconds
v1:src zeph$ codesign -s gdb-cert /usr/local/Cellar/gdb/7.5/bin/gdb 
v1:src zeph$ /usr/local/Cellar/gdb/7.5/bin/gdb --args /Users/zeph/tmp/CouchBase/src/install/bin/memcached -d -u root -P /tmp/0libmemcached_memc.pid -t 1 -p 11221 -U 11221 -m 128
GNU gdb (GDB) 7.5
Copyright (C) 2012 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 "x86_64-apple-darwin10".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
BFD: /Users/zeph/tmp/CouchBase/src/install/bin/memcached: unknown load command 0x29
BFD: /Users/zeph/tmp/CouchBase/src/install/bin/memcached: unknown load command 0x29
Reading symbols from /Users/zeph/tmp/CouchBase/src/install/bin/memcached...done.
(gdb) run
Starting program: /Users/zeph/tmp/CouchBase/src/install/bin/memcached -d -u root -P /tmp/0libmemcached_memc.pid -t 1 -p 11221 -U 11221 -m 128
Unable to find Mach task port for process-id 28755: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))
(gdb) 

k、証明書を全面的に信頼した後、再署名する必要がありました

codesign -fs gdb-cert /usr/local/Cellar/gdb/7.5/bin/gdb

于 2012-11-15T18:05:13.397 に答える
2

OPの質問には2つの問題がありました。実行可能ファイルへの署名または taskgated の変更と setgid procmod の使用に関するものはカバーされています。2 つ目の問題は、不明なロード コマンドに関する警告です。私もこれに遭遇し、一連の検索で次のパッチに出くわした後、それを修正しました:

https://gist.github.com/davidbalbert/4197567

于 2013-02-05T17:45:10.507 に答える