我已经在网上搜索了一段时间,但似乎我的问题非常罕见:
我正在用 C++ 中的 JUCE 编写音频单元插件。当我在主机中运行它时,主机崩溃了。当我在加载插件之前将 XCode 调试器附加到提升机时,它指向以下内容:
error: address doesn't contain a section that points to a section in a object file
如果我在调试控制台中输入“bt”,它会说:
* thread #1: tid = 0x1f03, 0x00000000, stop reason = EXC_BAD_ACCESS (code=2, address=0x0)
frame #0: 0x00000000
我没有得到堆栈跟踪,因此无法找到错误的来源。看看在错误访问发生之前执行了什么会有很大帮助,但我不知道怎么做。
我可以在程序的某个地方设置一个断点,然后从那里慢慢地遍历代码,直到遇到崩溃。我这样做了,最终执行离开了我的源代码,我得到了装配线。我可以看到它使用“ret”命令从很多调用中跳出来。最终在一个“ret”命令上,崩溃发生了。
汇编代码来自运行我的插件的主机。但是崩溃出现在不同类型的主机上,所以我很确定,这是我这边的错。有任何想法吗?
谢谢!