在 OSX Mountain Lion 上,我能够编译mach_inject
和包含的测试项目。按预期工作,注射功能完美。
我现在正尝试使用来自 QtCreator 编译的Qt项目中的相同mach_inject
框架。我已经尝试过clang和gcc编译器。
Everything编译并运行应用程序,但在调用mach_inject时,我收到错误:
mach_inject failing.. (os/kern) invalid address
跟踪mach_inject
,失败发生在最后一步,当它调用thread_create_running
时。
有谁知道这里的问题是什么?我假设这与Qt提供的编译器选项与XCode使用的编译器选项有关,但可能完全错误!
感谢。
答案 0 :(得分:0)
问题结果是32/64位不兼容 - 因为(自然地)你不能将64位捆绑包注入到32位应用程序中!
如果其他人遇到类似问题,可以使用mach_inject_bundle_stub进行调试,因为由于其他问题,可能会出现内核相同的错误。