Конфликт файла конфигурации .gdbinit с отладкой Xcode - PullRequest
2 голосов
/ 28 сентября 2008

У меня довольно большой .gdbinit (поэтому здесь не скопирован) в моем домашнем каталоге.

Теперь, если я хочу отладить код внутри XCode, я получаю эту ошибку:

Failed to load debugging library at:

/Developer/Applications/Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin/Contents/Resources/PBGDBIntrospectionSupport.A.dylib

Custom data formatters are disabled.

Error message was:
0x1005c5 "dlopen(/Developer/Applications/Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin/Contents/Resources/PBGDBIntrospectionSupport.A.dylib, 16): image not found" 

На самом деле - как написано ниже - отладка все еще работает в XCode, но форматеры данных ломаются. Перемещение .gdbinit ИЛИ отключение Data Formatters возвращает GDB в XCode обратно в рабочее состояние, но это, очевидно, неприятно (в том числе в первом случае - Data Formatters)

Есть идеи, какие настройки в gdbinit могут вызвать эту ошибку в Xcode?

Примечание от Ответа. Похоже (из поиска в Google), что эта ошибка может возникать при связывании с библиотекой wxWidgets. Что-то, чего я здесь не делаю.

Примечание: при необходимости я могу предоставить копию моего (длинного) .gdbinit

WIP: я подробно рассмотрю мой .gdbinit, чтобы посмотреть, смогу ли я сузить проблему

Ответы [ 3 ]

5 голосов
/ 30 сентября 2008

Мой "короткий" ответ:


Возможно, вы уже заметили это, но на всякий случай:

Прежде всего, даже если вы видите эту ошибку (при условии, что вы щелкнете мимо нее и продолжите), тогда вы должны по-прежнему иметь возможность использовать 99% функций отладки в Xcode. Другими словами, эта ошибка означает, что только очень небольшая конкретная часть отладчика «сломана» для данного сеанса отладки. не означает, что отладка полностью отключена и / или невозможна для данного выполнения программы.

Учитывая вышеизложенный факт, если вы просто хотите избавиться от ошибки и не заботитесь о том, работают ли пользовательские средства форматирования данных или нет, снимите флажок рядом со следующим пунктом меню:

  • Выполнить -> Просмотр переменных -> Включить средства форматирования данных

Мой "длинный" ответ:


Разработчики в моем офисе довольно долго сталкивались с той же самой ошибкой XCode, пока кто-то не обнаружил, что причиной послужили сторонние библиотеки.

В нашем случае эта ошибка возникала только для проектов, использующих wxWidgets. Я не имею в виду, что использование wxWidgets является единственно возможной причиной. Я только пытаюсь представить больше информации, которая может привести к правильному решению по вашему делу.

Также интересно: мы (в моем офисе) получали эту ошибку без какого-либо использования или наличия какого-либо файла .gdbinit.

Оказывается, что «свойство» wxWidgets, которое заставило его вызвать эту ошибку, было связано с «пользовательской / универсальной» реализацией «dlopen». До Mac OS X 10.3, dlopen не был предоставлен в операционной системе, поэтому, очевидно, некоторые библиотеки кодировали свои собственные версии. Когда такие библиотеки используются, то, по-видимому, может произойти сбой вызова dlopen, который пытается открыть PBGDBIntrospectionSupport.A.dylib.

Прочитайте комментарии к этой рассылке Sourceforge, чтобы узнать больше подробностей о dlopen в 10.3 и более поздних версиях.

Также здесь есть еще одна ссылка:

Сообщение в списке рассылки пользователей Xcode о PBGDBIntrospectionSupport и пользовательских форматерах данных

0 голосов
/ 23 января 2009

Ваша ошибка на самом деле немного отличается от той, которую я получал с wxWidgets. Прошло много времени с тех пор, как я обнаружил конфликт dlopen, но я помню, что мне пришлось использовать сам gdb в этом конкретном сеансе отладки, чтобы выяснить, что происходит. Кроме того, с проблемой wxWidgets, шестнадцатеричный адрес каждый раз был другим.

В gdb вызовите «информационный символ» по шестнадцатеричному адресу, указанному в сообщении об ошибке. Это может дать вам подробную информацию о том, что именно не удается загрузить.

0 голосов
/ 30 сентября 2008

Странно ... Осматривая мой Mac, я вижу эту библиотеку просто отлично, и она выглядит в здравом уме.

Вы пытались использовать dtrace, чтобы увидеть, что Xcode и GDB пытаются сделать, когда происходит ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...