jjzjj

coredumper

全部标签

php - (notice) child pid XXXX exit signal Segmentation fault (11), possible coredump in/etc/apache2

我的Apache日志中不断出现以下错误:[WedSep1817:59:202013][notice]Apache/2.2.22(Ubuntu)PHP/5.3.10-1ubuntu3.8withSuhosin-Patchconfigured--resumingnormaloperations[WedSep1818:06:302013][notice]childpid7505exitsignalSegmentationfault(11),possiblecoredumpin/etc/apache2[WedSep1818:06:352013][notice]childpid7497exits

让golang程序生成coredump文件并进行调试

今天讲讲怎么让golang程序生成coredump文件,并且进行调试的。别看我写了不少golang的博客,其实我平时写c++的时间更多,所以也算和coredump是老相识了。coredump文件实际上是进程在某个时间点时的内存映像,当时进程使用的内存是啥样就会被原样保存下来存在文件系统的某个位置上,这个时间点一般是触发了SIGSEGV或者SIGABRT这两个信号的时候,当进程的内存映像保存完毕后进程就会异常终止,也就是大家喜闻乐见的“程序崩了”和“段错误:核心已转储”。因此coredump就像是程序出错崩溃后的“第一现场”,是用来排查错误的主要资源。不过我很少在golang里调试coredum

Linux下 生成coredump文件

一.coredump文件路径网上很多博文说到coredump文件默认会在某个目录下生成。按照网上很多的说法,运行程序就会生成core文件,一般生成路径和可执行程序是同一个路径。但是,我尝试在ubuntu20.04系统下,没有生成core文件。因此,需要查看core文件的生成路径。1. 查看coredump文件生成路径:查看coredump文件生成路径的方法:输入cat/proc/sys/kernel/core_pattern命令。如下所示:wangtian@wangtian-virtual-machine:~$cat/proc/sys/kernel/core_pattern/home/wang

c++ - GDB 无法显示堆栈并显示 "#1 0x0000000000000000 in ?? ()"

我有一个多线程C++程序,在极少数情况下会死锁。这个问题很难重现,我只能在远程机器上重现。我想用来解决这个问题的方法是运行程序等待死锁向其发送中止信号以生成核心转储将转储复制回我的本地机器使用gdb调试我在远程机器上没有gdb,无法在上面安装任何东西。问题是当我调试核心转储(从远程机器上的死锁或正常运行的进程获得)时,大多数线程的回溯仅显示:(gdb)bt#0pthread_cond_wait()at../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261#10x0000000000000000in??()我正在使用一

c++ - GDB 无法显示堆栈并显示 "#1 0x0000000000000000 in ?? ()"

我有一个多线程C++程序,在极少数情况下会死锁。这个问题很难重现,我只能在远程机器上重现。我想用来解决这个问题的方法是运行程序等待死锁向其发送中止信号以生成核心转储将转储复制回我的本地机器使用gdb调试我在远程机器上没有gdb,无法在上面安装任何东西。问题是当我调试核心转储(从远程机器上的死锁或正常运行的进程获得)时,大多数线程的回溯仅显示:(gdb)bt#0pthread_cond_wait()at../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261#10x0000000000000000in??()我正在使用一

c++ - Coredump 被截断

我正在设置ulimit-cunlimited.而在c++程序中我们正在做的事情structrlimitcorelimit;if(getrlimit(RLIMIT_CORE,&corelimit)!=0){return-1;}corelimit.rlim_cur=RLIM_INFINITY;corelimit.rlim_max=RLIM_INFINITY;if(setrlimit(RLIMIT_CORE,&corelimit)!=0){return-1;}但是每当程序崩溃时,它生成的核心转储就会被截断。BFD:Warning:/mnt/coredump/core.6685.1325912

c++ - Coredump 被截断

我正在设置ulimit-cunlimited.而在c++程序中我们正在做的事情structrlimitcorelimit;if(getrlimit(RLIMIT_CORE,&corelimit)!=0){return-1;}corelimit.rlim_cur=RLIM_INFINITY;corelimit.rlim_max=RLIM_INFINITY;if(setrlimit(RLIMIT_CORE,&corelimit)!=0){return-1;}但是每当程序崩溃时,它生成的核心转储就会被截断。BFD:Warning:/mnt/coredump/core.6685.1325912

windows - 打印 windows coredump 的堆栈跟踪,无需以交互方式进入 windbg/visual studio

我想通过调用在脚本中编写的预定义命令来获取导致崩溃的线程的堆栈跟踪,以便我运行脚本并获得包含所有线程的反向跟踪的日志文件。然后我可以解析此日志文件以查看是否存在已知问题。 最佳答案 我建议您看一下cdb.它是windbg的一个功能非常全的命令行版本,应该已经与windbg一起安装了。您可以告诉它打开转储、打印堆栈跟踪并使用命令行退出:cdb-zyourdump.dmp-c"~*kv;q"或者您甚至可以幻想并使用以下方法进行一些自动化分析:cdb-zyourdump.dmp-c"!analyze-v;q"这可能更有意义,因为它会在第二

python - 使用自定义 openssl 版本编译 python 时的 Coredump

使用本地openssl-1.0.1f共享安装编译python-3.4.0rc3时,make没有打印错误,但随后我在makeinstall或maketest上得到以下核心转储:Programterminatedwithsignal11,Segmentationfault.(gdb)bt#00x00007f131dd10510inEVP_PKEY_CTX_dup()from/data2/soft/openssl/lib/libcrypto.so.1.0.0#10x00007f131dd0284finEVP_MD_CTX_copy_ex()from/data2/soft/openssl/li

linux - SIGABRT如何获取coredump文件?

我用kill(pid,SIGABRT)写了一个示例程序,但是接收SIGABRT的进程没有创建任何核心转储。如何通过发送SIGABRT信号获取核心转储文件? 最佳答案 是的,通过使用将核心转储文件限制设置为无限制ulimit-cunlimited还要检查核心转储生成的路径,通常核心转储是在进程的当前目录中生成的,但是通过在/proc/sys/kernel/core_pattern中给出路径,您可以更改核心生成的路径和名称,如下所示echo/var/log/mycore>/proc/sys/kernel/core_pattern现在核心