C++应用程序/ linux的调试文件一直是我的一个谜,缺乏一些基本的理解。 (1)我们是否需要用-g标志编译应用程序,而不用核心文件就不能提供任何有用的信息?但是我发现,即使我们不用-g标志编译,也会生成核心文件 - 所以除了占用磁盘空间外,它们还必须具有某种功能。有关调试核心文件的一些基本问题C++/linux?
Wikipedia说:“在计算中,核心转储,内存转储或存储转储由计算机程序在特定时间的工作内存的记录状态组成,通常当程序异常终止时(崩溃)” 。
这应该表示不管我们用-g标志编译,我们仍然有状态。如果我们有堆栈跟踪,我们仍然应该能够知道哪个函数导致了错误。
这取决于。如果您还没有剥离可执行文件,公共符号(那些在C++中具有外部链接的符号)仍然可用。 –