2009-12-17 4 views
1

При запуске моего приложения с помощью GDB, я получаю странные ошибки, которые выглядят как:Mac OS X Debug Error

unable to read unknown load command 0x22 

Весь след выглядит примерно так:

[Session started at 2009-12-17 10:28:24 -0500.] 
GNU gdb 6.3.50-20050815 (Apple version gdb-966) (Tue Mar 10 02:43:13 UTC 2009) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "i386-apple-darwin".tty /dev/ttys003 
Loading program into debugger… 
sharedlibrary apply-load-rules all 
warning: Unable to read symbols for "@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle" (file not found). 
warning: Unable to read symbols from "Sparkle" (not yet mapped into memory). 
unable to read unknown load command 0x22 
unable to read unknown load command 0x22 
Program loaded. 
run 
[Switching to process 9051 local thread 0x2e03] 
Running… 
unable to read unknown load command 0x22 
unable to read unknown load command 0x22 

Я пытался все доступные инструменты анализа, не смогли найти утечки памяти или что-нибудь, что могло бы вызвать эти неизвестные ошибки.

Помощь?

ответ

1

У этой проблемы есть исправление в две части.

Убедитесь, что у вас есть Sparkle Copying in в фазе сборки Copy Frameworks.

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

install_name_tool -change "@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle" "@executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle" "$BUILT_PRODUCTS_DIR/$EXECUTABLE_PATH" 

Ниже приведен скриншот того, как выглядит эта фаза построения в моем проекте.

Build Phase Example http://grab.by/1OkU

А вот скриншот моих целевых шагов.

Target Steps http://grab.by/1fCu

+0

Спаситель! Я связался с более старой версией Sparkle, которую у меня есть, и проблемы ушли. Я тоже попробую. Благодаря! – alyx

+1

Вот немного улучшенный сценарий, который устраняет необходимость вручную добавлять имя вашего приложения в путь: install_name_tool -change "@loader_path /../ Frameworks/Sparkle.framework/Versions/A/Sparkle" "@executable_path /../ Frameworks/Sparkle.framework/Версии/A/Sparkle "" $ BUILT_PRODUCTS_DIR/$ EXECUTABLE_PATH ". Сценарий от Q & A Sparkle по адресу https://answers.launchpad.net/sparkle/+question/46535 –

+0

Обновлен ответ и снимок экрана. Спасибо Мартину. –