Oracle Solaris Studio 12.2:使用 dbx 调试程序

如果核心转储文件被截断

如果装入核心存储文件时存在问题,请检查是否有被截断的核心转储文件。如果在创建核心转储文件时将其最大允许大小设得太低,那么 dbx 将无法读取最终被截断的核心转储文件。在 C shell 中,可使用 limit 命令来设置允许的最大核心转储文件大小(请参见 limit(1) 手册页)。在 Bourne shell 和 Korn shell 中,应使用 ulimit 命令(请参见 limit(1) 手册页)。可以在 shell 启动文件中更改核心转储文件大小的限制,重新寻找启动文件,然后重新运行生成该核心转储文件的程序,以生成完整的核心转储文件。

如果核心转储文件不完整并且缺少栈段,则栈跟踪信息不可用。如果缺少运行时链接程序信息,则装入对象列表不可用。在这种情况下,您会收到 librtld_db.so 未初始化的错误消息。如果缺少 LWP 列表,则线程信息、lwp 信息或栈跟踪信息不可用。如果运行 where 命令,将看到一条错误消息,指出程序未处于“活动状态”。