如何找出软件挂起的原因? qemu + zephyr + tfm 的问题

问题描述

我正在 qemu 上执行 arm elf (zephyr os + tfm) 并让它运行一些测试。 不幸的是,它在某个点停止,既没有错误消息也没有警告。 我也尝试过 GDB,但在某个时候,它就停止了。 它总是在同一版本的同一点停止(如果我添加一些调试打印,它会更早或更晚地停止)。 我认为有一些挂起的中断根本没有被捕获......老实说不知道。

因此,我的问题是:如何找出挂软件的原因? 或者,我如何检查哪个中断已经上升以停止正常执行?

解决方法

为了将来参考 TF-M 有一个选项可以在出现故障时启用异常信息转储打印。我将通过在 cmake 配置步骤中设置以下定义来开始启用它:-DTFM_EXCEPTION_INFO_DUMP=True