核心已转储 是什么意思?经常会遇到这种错误提示。 linux下使用GCC来编译的程序,这种运行时错误通常发生在什
核心已转储 是什么意思?
经常会遇到这种错误提示。 linux下使用GCC来编译的程序,这种运行时错误通常发生在什么情况下?
[解决办法]
core dump
通常是因为SEGMENT FAULT, 一般是访问越界引起的。
[解决办法]
[解决办法]段错误 一般是非法访问内存造成的
核心已转储 (core dump) -- 内存清除,早期的内存用磁芯存储器
[解决办法]通常是指针、内存等错误;
错误会存储到coredump文件,用gdb等工具可对coredump文件分析,定位错误发生的位置;
[解决办法]进程意外退出会在当前目录下产生形如‘core.数字’的文件比如‘core.1234’
使用命令
gdb 运行程序名 core.数字
进入gdb然后使用bt命令
可以查看进程意外退出前函数调用的堆栈,内容为从上到下列出对应从里层到外层的函数调用历史。
[解决办法]IT人都叫这个“出core了”。
一般都是程序有内存操作错误并产生SIGSEGV信号, 并在目录下生成名字叫做core的文件.
源码编译与链接时记得加入-g, 这样就可以出core后:gdb 程序名 core来调试出错原因了,一般使用:
bt命令
[liangdong@bb-browser-test00.vm.baidu.com py_project]$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1
36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5
40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9
44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13
52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9
56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5
60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1
64) SIGRTMAX