由于代码相对较长,并且在异常消息中显示的地址(例如,
PC : 0x400d883a
)没有用,除非调试实际运行的二进制文件(因此它们对我没有任何帮助),我将基于基于一些一般见解。其他可用信息 to此例外(错误)发生始终或频繁发生?如果是这样,我经常使用的一种方法是评论(删除)代码的可疑部分,并使用最小的代码进行测试。如果问题在较小的版本中没有发生,则问题在于两者之间的差异。通过逐渐恢复注释的零件,您可以确定问题的位置。 另一方面,如果错误很少发生,调试将变得更加困难。在这种情况下,需要根据PC地址从异常消息进行调试,这通常需要在汇编语言级别进行高级调试器和分析。 结论:
从最小的代码开始(在发表零件后),并逐渐扩展,同时确认问题不会发生。
希望这有帮助!