在 OSX Mountain Lion 中使用 Qt 运行 mach_inject

问题描述 投票:0回答:1

OSX Mountain Lion 上,我能够编译

mach_inject
以及包含的测试项目。这按预期工作,注射功能完美。

我现在尝试使用 Qt 项目中相同的

mach_inject
框架,由 QtCreator 编译。我尝试过 clang 和 gcc 编译器。

一切都编译并且应用程序运行,但是当调用 mach_inject 时,我收到错误:

mach_inject failing.. (os/kern) invalid address

追踪

mach_inject
,失败发生在最后一步,调用
thread_create_running
时。

有谁知道这里出了什么问题吗?我假设这与 Qt 提供的编译器选项与 XCode 使用的编译器选项有关,但可能完全错误!

xcode macos qt osx-mountain-lion
1个回答
0
投票

问题原来是 32 / 64 位不兼容 - 因为(自然)你无法将 64 位捆绑包注入 32 位应用程序!

如果其他人有类似的问题,可以使用 mach_inject_bundle_stub 进行调试,因为由于其他问题可能会出现来自内核的相同错误。

© www.soinside.com 2019 - 2024. All rights reserved.