GDB терпит неудачу на горного льва
Я безуспешно пытался скомпилировать версию GD 7.x. Я подписал код исполняемого файла (http://sourceware.org/gdb/wiki/BuildingOnDarwin).
Со следующей версией возникли эти проблемы.
7.5,7.4, git clone: неизвестная команда загрузки 0x2a (и другие) для моего приложения и различных системных библиотек при запуске gbd. При попытке напечатать вектор, например, я всегда получаю: Не удалось найти основу кадра для "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 для компиляции. Кому-нибудь удалось установить gdb на Mountain Lion?
4 ответа
Я установил GDB 7.5 на горного льва без проблем...
эти шаги могут вам помочь: ./configure --prefix=/usr/local --enable-target =x86_64-apple-darwin10 --enable-64-bit-bfd --disable-werror --build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10 --target=x86_64-apple-darwin10
затем сделайте установку GDB.
создайте свой собственный сертификат, как описано здесь, и подпишите gdb http://sourceware.org/gdb/wiki/BuildingOnDarwin
перед тем как подписать GDB, вы должны явно указать: codesign -s gdb-cert / usr / local / gdb, чтобы убедиться, что вы уже установили для своего сертификата доверие. также закройте цепочку для ключей перед подписанием вашего GDB.
надеюсь, это также работает для вашего
Я решил эту проблему, выполнив следующие действия: http://coding.derkeiler.com/Archive/Ada/comp.lang.ada/2012-09/msg00305.html
меры
- sudo chgrp procmod / usr / local / bin / gdb
- sudo chmod g + s / usr / local / bin / gdb
- Отредактируйте /System/Library/LaunchDaemons/com.apple.taskgated.plist и добавьте аргумент +p в процесс с заданием
- Принудительно уничтожить заданный на процесс процесс
- Попробуйте снова
Другие ссылки:
В вопросе ОП было два вопроса. О подписании исполняемого файла или изменении Taskgated и использовании setgid procmod уже рассказано. Вторая проблема - предупреждения о неизвестных командах загрузки. Я тоже столкнулся с этим и после нескольких поисков наткнулся на следующие исправления:
Мне кажется, это не работает... та же проблема, что и в стандартных настройках доморощенного кофе
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, я должен был переподписать его после того, как ДОВЕРЯЛ сертификату по всей доске
кодовый знак -fs gdb-cert /usr/local/Cellar/gdb/7.5/bin/gdb