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

Posted

技术标签:

【中文标题】如何找出软件挂起的原因? (qemu + zephyr + tfm 的问题)【英文标题】:How to find out the cause of hanging software? (problem with qemu + zephyr + tfm) 【发布时间】:2021-05-18 12:44:40 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于如何找出软件挂起的原因? (qemu + zephyr + tfm 的问题)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Flash Builder 4 在 Flex 4 中调试挂起/挂起的 Web 服务?

如何解决运行更新时 macOS Carthage 挂起的问题?

如何从挂起的 pgPool.connect() 中获取响应/信息?

linux C 当前进程运行10ms后挂起的功能如何实现.

我该怎么做才能找到 pread64/pwrite64 挂起的原因?

C++/Win32:如何等待挂起的删除完成