Отладка dylib в XCode, который был построен без символов отладки

Я создаю приложение C ++ в Xcode 5, которое ссылается на внешние динамические библиотеки (OpenCV 2.4.6, установленный через macports). Эти динамические библиотеки, похоже, были скомпилированы без отладочных символов, так как, когда я сталкиваюсь с ошибкой в ​​них, я не вижу исходный код; все, что я вижу, это код сборки.

Я отдельно загрузил исходный код OpenCV с веб-сайта OpenCV. Есть ли способ сообщить мне Xcode, где искать исходные файлы для dylibs, чтобы я мог пошагово просмотреть код OpenCV в отладчике Xcode?

2

Решение

Нет, это невозможно. Когда библиотека скомпилирована с поддержкой отладки, дополнительные данные объединяются в общую библиотеку, которая содержит сопоставление по строкам «адрес 0x00240008 соответствует main.c: 24», «адрес 0x0024001a соответствует main.c: 25» и т. Д. Если модули были собраны без поддержки отладки, файлы теперь представляют собой просто двоичные двоичные объекты, содержащие машинный код, и отладчик не имеет возможности перевести машинный язык обратно в исходный код.

Однако, поскольку у вас есть исходный код, вы можете перекомпилировать библиотеку, чтобы включить эту информацию, и установить свою пользовательскую версию. Для OpenCV это будет такая команда:

cmake -DCMAKE_BUILD_TYPE:=Debug .
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]