有哪些方法可以调试核心转储?

Posted

技术标签:

【中文标题】有哪些方法可以调试核心转储?【英文标题】:What are some ways to debug a core dump? 【发布时间】:2009-11-12 02:39:15 【问题描述】:

我正在使用一个 ASIC 模拟器 (vcs),它采用多种不同的语言(在我们的例子中是 Verilog、VHDL、Vera、C 和 Tcl)并将它们全部编译成 C 可执行文件。

这一切都很好,直到它使用神秘的堆栈跟踪进行核心转储。调试此问题的最佳方法是什么?

【问题讨论】:

【参考方案1】:

如果您已经查看了堆栈跟踪,那么我怀疑您已经从核心文件中收集到了大部分信息。特别是如果您不熟悉模拟器的实现方式,而且听起来不像您。

我会说这个工具有问题,你应该让供应商负责。转储核心从来都不是一个好的响应,即使你给它的输入有问题。

但是,如果您想尝试进一步分析问题,一个建议是从您的 ASIC 设计的一些简单版本开始,然后逐步进行更改,确保在每组更改后它仍然有效。通过这种方式,您可以缩小系统中导致问题的具体部分,并可能允许您修复它或向供应商提交更具体的错误报告。

当然,这假设您可以返回到可行的东西,但我希望您在设计过程中至少测试过几次,并且您有某种版本控制(或至少备份)。

【讨论】:

这就是我们现在的处理方式。除非有多个设计师签到,即使有健全性检查,东西也会漏掉。现在的过程是使用版本控制来同步到它工作的时间,然后继续同步到中间日期,直到它缩小到特定的日期和特定的文件集。当每个模拟运行几个小时时,这个过程真的很糟糕。

以上是关于有哪些方法可以调试核心转储?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试阿帕奇?我在哪里可以找到核心转储

如何使用 VSCode 调试 Linux 核心转储?

gdb 调试远程核心转储

如何调试从执行发布文件生成的核心转储文件?

打开 python 核心转储后调试器中的 Python shell

在linux上使用gdb调试核心转储时如何知道线程的状态?