秋加数码网

linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?(linux 段错误 (核心已转储))

  1. linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?
  2. 核心已转储,是什么意思?
  3. crashpad是什么?
  4. ELF是什么?

linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?

在的所在.c文件的目录中在终端里面敲1. ulimit -c unlimited2. 在用gcc编译时,在最后加上-g3. 运行一次错误代码,出现段错误后, 目录中有一个core文件4. 运行:gdb ./a.out core会自动帮你找出可能出错的代码,出现段错误一般都是越界了

核心已转储,是什么意思?

核心文件核心文件(corefile),也称核心转储(coredump),是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。

linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?(linux 段错误 (核心已转储))-图1

linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?(linux 段错误 (核心已转储))-图2

这种信息往往用于调试。核心文件一词来源于磁芯内存(corememory)。核心转储通常这个词的含义是一个动作,这个动作在系统收到特定的信号时由操作系统完成。

信号可以由程序执行过程中的异常触发,也可以由外部程序发送。

动作的结果一般是生成一个某个进程的内存转储的文件,文件包含了此进程当前的运行堆栈信息。

linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?(linux 段错误 (核心已转储))-图3

程序自身产生的coredump文件一般可以用来分析程序运行到哪里出错了。Linux平台常用的coredump文件分析工具是gdb;Solaris平台用pstack和pflags;Windows平台用userdump和windbg。

外部程序触发的dump一般用来分析进程的运行情况,比如分析内存使用/线程状态等。

Solaris的常用内存分析工具umem就是需要先通过gcorepid得到coredump的文件然后继续分析内存情况。

linux下gcc编程,段错误(核心已转储) 大神救我,折磨我一天了?(linux 段错误 (核心已转储))-图4

crashpad是什么?

Crashpad是一个开源的跨平台崩溃报告库,由Google开发和维护。它提供了一种机制,使应用程序能够在发生崩溃时捕获和记录崩溃信息,并生成崩溃报告。

Crashpad支持多种操作系统,包括Windows、macOS和Linux,可以捕获崩溃堆栈、内存转储和其他关键信息。

它还提供了一套API,使开发人员能够自定义崩溃报告的生成和处理过程。Crashpad被广泛用于各种应用程序和平台,帮助开发人员快速定位和修复崩溃问题,提高应用程序的稳定性和可靠性。

ELF是什么?

是指文件格式

在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件的文件格式。

是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。

到此,以上就是小编对于linux段错误核心已转储的问题就介绍到这了,希望介绍的4点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇