1

我正在调用命令go symbol.exit(myfunc)。有时程序控制到达函数的结尾,但有时它在函数的开头结束。

我们还有其他方法可以在函数结束时到达吗?请告诉我为什么我在我的环境中观察到这种行为。

4

1 回答 1

2

我建议使用命令Go.Return

在最新版本的 TRACE32 中使用 Go.Return 将在当前函数的 Epilog 处停止 CPU。再次从那里使用 Go.Return,在函数的退出点停止 CPU。

然而Go sYmbol.EXIT(myfunc),也应该在函数“myfunc”的退出点停止 CPU(除非没有其他断点更早地停止 CPU)。

如果它失败了,我可以想象这可能是由编译器优化引起的。(例如,如果函数被内联,调试器可能找不到退出点)。因此,请尝试将编译器优化级别设置为较低的值。

否则,也许您应该联系 Lauterbach 支持,告诉他们您的问题以及您正在使用的 PowerPC、编译器(及其版本)以及您正在使用的 TRACE32 的内部版本号。

于 2018-01-18T14:13:54.127 回答