Конфликт файла конфигурации .gdbinit с отладкой Xcode

У меня в домашнем каталоге довольно большой .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 ИЛИ отключение форматеров данных возвращает gdb в Xcode обратно в рабочее состояние, но это, очевидно, боль (включая средства форматирования данных в первом случае)

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

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

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

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
3 839
3

Ответы 3

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

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

Библиотека есть и у меня, нет проблем с целостностью файла (если я удалю gdbinit, отладка Xcode полностью работает)

ninendra 30.09.2008 20:30

Что касается отладки xcode и gdb, я могу прибегнуть к этому, если мне когда-нибудь удастся сделать это правильно.

ninendra 30.09.2008 20:40

Мой «короткий» ответ:


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

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

Учитывая вышеупомянутый факт, если вы просто хотите избавиться от ошибки и вас не волнует, работают ли пользовательские форматеры данных или нет, СНИМИТЕ галочку рядом со следующим пунктом меню:

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

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


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

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

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

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

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

Кроме того, вот еще одна связанная ссылка:

Сообщение в списке рассылки пользователей Xcode о PBGDBIntrospectionSupport и Custom Data Formatters

Очень хороший ответ, спасибо. На самом деле я знал о проблеме с wxWidget (единственные результаты в Google), но я не использую ее. И я также увидел, что отладка продолжает работать, просто нарушает Data Formatter, что на самом деле мне нужно. Я посмотрю на свой gdbinit в деталях

ninendra 30.09.2008 20:28

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

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

Другие вопросы по теме