Отладчик, встроенный в Xcode, иногда вытворяет казалось бы необъяснимые вещи. Например, указатель согласно показаниям отладчика может быть равен нулю в том месте кода, где до этого была проверка, согласно которой в случае нулевого значения указателя код не должен дальше выполняться. Или бывает так, что строка приобретает зловещий вид через некоторое время после её инициализации (этот вид можно увидеть в Memory Browser).
Эти странные выходки Xcode-отладчика возникают по 2-м причинам, которые я успел уже выяснить:
1) Либо какая-то часть бинарного кода статической библиотеке не соответствует исходникам этой библиотеки (иначе говоря, исходники могли поменяться, а библиотеку забыли перекомпилировать).
2) Либо происходит обыкновенное переполнение стека. Тогда отладчик начинает показывать странные значения переменных. По крайней мере, на моей работе такое произошло в дополнительно созданном потоке. С помощью pthread-функций или с помощью класса NSThread можно изменять размер стэка потока перед его созданием потока, так как по умолчанию размер стека равен 512 килобайт. Благо, рядом со мной оказались опытные программисты. Они подсказали, что при переполнениях стека отладчик происходит повреждение данных, поэтому отладчик и показывает всякую чушь
Подписаться на:
Комментарии к сообщению (Atom)
Постоянные читатели
Архив блога
-
▼
2010
(55)
-
▼
апреля
(28)
- Стив Джобс рассказал, почему Apple "не пускает" Fl...
- Работа с локальным SVN-репозитарием
- Как в Mac OS снять блокировку/защиту из всех файло...
- Как получить пути к наиболее часто используемым па...
- Как автоматически копировать нужные заголовки в ну...
- Чем заменить функцию stricmp в iPhone-проекте
- Легендарный редактор vi
- Как выяснить причину EXC_BAD_ACCESS в Xcode
- Что делать, если в Xcode-отладчике невозможно пере...
- Как изменить размер стека потока средствами pthrea...
- Интересные материалы для C++ программистов в блоге...
- Принципы Agile Software Development
- Знакомство с компилятором GCC
- Антипаттерны
- man xcodebuild (справка по команде)
- Как сделать скрипт для компиляции и линковки сразу...
- Какой аналог у SetEvent (Win32) в pthread?
- Pthread Condition Variables и Windows Events (Креа...
- Шпаргалка по TinyXML
- Мои любимые книги по программированию
- Из блога Сергея Меднова: Знает ли Apple, для чего ...
- Вопросы на проверку знания языка C++
- Использование pthread (POSIX) функций для многопот...
- Xcode — странные выходки отладчика
- Проблемы со статическими библиотеками при разработ...
- Переименование Xcode-проекта и приложения (для iPh...
- Как совмещать C++ и Objective C код в одном файле ...
- Как удалить badge-кружочки из TabBar вкладок
-
▼
апреля
(28)
Комментариев нет:
Отправить комментарий