2013-04-18 3 views
0

On OSX Mountain Lion Я могу скомпилировать mach_inject и включенный тестовый проект. Это работает так, как ожидалось, при нормальной работе инъекций.Запуск mach_inject с Qt в OSX Mountain Lion

Теперь я пытаюсь использовать тот же каркас mach_inject из проекта Qt, составленный с QtCreator. Я пробовал как компиляторы clang, так и gcc.

Все компилирует и запускает приложение, но при вызове mach_inject, я получаю ошибку:

mach_inject failing.. (os/kern) invalid address 

Трассировка mach_inject, сбой происходит на последней стадии, когда она вызывает thread_create_running.

Кто-нибудь знает, в чем проблема? Я предполагаю, что это как-то связано с параметрами компилятора, предоставленными Qt, против тех, которые используются XCode, но может быть совершенно неправильным!

Спасибо.

ответ

0

Проблема оказалась несовместимостью 32/64 бит - поскольку (естественно) вы не можете вводить 64-битный пакет в 32-битное приложение!

Если у кого-то еще есть подобные проблемы, может потребоваться отладка в mach_inject_bundle_stub, так как одна и та же ошибка из ядра может быть представлена ​​из-за других проблем.

Смежные вопросы