coredump相关内容

查找哪个程序导致了核心转储文件

我最近一直在紧张地进行程序/软件包安装,因此我无法确定是哪个新安装的程序(或旧程序)导致主文件夹中出现core文件.这是一台服务器,所以我最好找出计算机上任何可能的不稳定来源. 解决方案 您可以简单地使用file程序来识别它们: 例如 # file /var/core/core /var/core/core: ELF 64-bit MSB core file SPARC ..
发布时间:2020-05-01 11:06:26 服务器开发

Linux中的选择性核心转储-如何选择转储的部分?

我正在寻找一种选择核心转储中包含的节和内存区域的方法. 我的应用程序的核心转储大小约为30GB,其中大部分位于预先分配的缓冲区中,我什至不需要调试(以后可以将其清零).但是,由于转储很大,因此应用程序要花费太多时间才能完成崩溃并开始恢复. 任何人都可以想到一种方法来预先选择哪些段将在核心转储中吗? 谢谢 解决方案 根据 自内核2.6.23起, 特定于Linux /proc/PID/ ..
发布时间:2020-05-01 10:52:05 服务器开发

更改核心转储的位置

我想更改核心转储文件的默认位置,以便每次生成核心转储时都将转至该目录.此外,是否可以通过崩溃文件的名称在该位置保存转储文件? 解决方案 是的.您可以更改/proc/sys/kernel/core_pattern来定义用于生成核心文件的路径名.有关更多信息,请参见 man core 示例: echo '/tmp/core_%e.%p' | sudo tee /proc/sys/k ..
发布时间:2020-05-01 10:43:13 服务器开发

从核心转储获取stacktrace

如何从核心转储文件中获取堆栈跟踪?该文件约为14 mb,是在我的应用程序退出并显示“分段错误"后生成的. 我正在使用Red Hat 5.5 解决方案 gdb /usr/bin/myapp.binary corefile 然后,使用以下之一: (gdb) bt (gdb) bt full (gdb) info threads (gdb) thread apply all bt ..
发布时间:2020-05-01 10:41:02 服务器开发

Linux:处理分段错误并获取核心转储

当我的应用程序因分段错误而崩溃时,我想从系统中获取核心转储.我是通过事先配置来实现的 ulimit -c unlimited 我还想在我的应用程序日志中指出发生了分段错误.我通过使用 sigaction() 来做到这一点.但是,如果我这样做,该信号将无法达到其默认处理,并且不会保存核心转储. 如何让两个系统核心同时从自己的信号处理程序中转出一条日志行? 解决方案 答案:用标 ..
发布时间:2020-05-01 09:58:19 服务器开发

在Linux中使用Core Dump进行检查点/重新启动

可以使用进程的核心转储来实现检查点/重新启动吗?核心文件包含该过程的完整内存转储,因此从理论上讲应该可以 将进程还原到转储内核时的状态. 解决方案 否,没有内核的特殊支持,这通常是不可能的.内核维护着很多进程状态,例如文件描述符表,IPC对象等. 如果您愿意做很多简化的假设,例如没有打开的文件,没有打开的套接字,没有活动的IPC对象,没有共享的内存区域等等,那么从理论上讲可能,但实际 ..
发布时间:2020-05-01 09:39:50 服务器开发

为什么生成核心转储文件?

有时,当我运行代码时,通过 Ctrl + \ 终止程序时会生成一个核心转储文件.文件名的格式为core.*.该程序不会突然终止,并且没有分段错误.我相信它是SIGQUIT而不是SIGABRT或SIGSEGV.如果我尝试 Ctrl + C 或 Ctrl + Z ,则不会生成. 谁能说出为什么只有按下 Ctrl + \ 时才生成它?如何避免生成此核心转储文件?核心转储文件有什么用? 解决方 ..
发布时间:2020-05-01 08:29:59 服务器开发

什么是SEGV_MAPERR?

什么是SEGV_MAPERR,为什么总是出现SIGSEGV? 解决方案 访问了具有错误权限的页面.例如,它是只读的,但是您的代码尝试写入它.这将报告为 SEGV_ACCERR . 所访问的页面甚至根本没有映射到应用程序的地址空间.这通常是由于取消引用空指针或使用小整数值损坏的指针而导致的.据报道为 SEGV_MAPERR . 有关SEGV_MAPERR的某种文档(带索引的Linux ..
发布时间:2020-05-01 08:26:20 服务器开发

如何以编程方式在C/C ++中引起核心转储

我想在我的C ++应用程序的特定位置强制进行核心转储. 我知道我可以通过以下方式做到这一点: int * crash = NULL; *crash = 1; 但是我想知道是否有一种更清洁的方法? 我正在使用Linux. 解决方案 提高信号编号6(在Linux中为SIGABRT)是实现此目的的一种方法(尽管请注意,不需要SIGABRT 在所有POSIX实现中都为6,因此 ..
发布时间:2020-05-01 08:06:43 服务器开发

核心转储,但核心文件不在当前目录中?

在运行C程序时,它显示“((内核已转储)" ),但是我看不到当前路径下的任何文件. 我已经设置并验证了ulimit: ulimit -c unlimited ulimit -a 我还试图找到一个名为"core"的文件,但没有得到核心转储文件? 任何帮助,我的核心文件在哪里? 解决方案 阅读/usr/src/linux/Documentation/sysctl/kern ..
发布时间:2020-05-01 08:02:51 服务器开发

如何在Linux发生分段故障时生成核心转储?

我在Linux中有一个进程出现分段错误.我如何告诉它在失败时生成核心转储? 解决方案 这取决于您所使用的shell.如果使用的是bash,则ulimit命令控制与程序执行有关的一些设置,例如是否应该转储core.如果您输入 ulimit -c unlimited 然后将告诉bash它的程序可以转储任何大小的内核.您可以根据需要指定诸如52M的大小,而不是无限制的大小,但是实际上, ..
发布时间:2020-05-01 07:56:51 服务器开发

Python服务器“已中止(核心已转储)"

我使用web.py创建一个Python Web服务器.调用该服务器来解决线性编程问题,它使用CBC库来完成该任务. 每隔一段时间,服务器就会崩溃,并显示如下日志: 78.243.184.3:56271 - - [03/Jun/2016 04:35:54] "HTTP/1.1 GET /optimization" - 200 OK Aborted (core dumped) 我相信“ ..
发布时间:2020-04-30 12:17:47 Python

python libsvm核心转储

我拥有在我的开发环境(Ubuntu 12.04)上运行良好的Python代码,但在我的生产环境(运行CentOS的Linode)上转储了内核. *** glibc detected *** python2.7: double free or corruption (out): 0x090cba60 *** ======= Backtrace: ========= /lib/i686/nose ..
发布时间:2020-04-30 10:46:53 Python

Linux核心转储太大!

最近我一直注意到我的应用程序生成的核心转储文件的大小有所增加.最初,它们的大小约为5MB,包含约5个堆栈帧,现在我的核心转储大于2GB,并且其中包含的信息与较小的转储没有区别. 有什么办法可以控制生成的核心转储的大小?它们不应该至少比应用程序二进制文件本身小吗? 二进制文件的编译方式如下: 在发布模式下通过调试进行编译 符号(即-g中的-g编译器选项 GCC). 将调试符号复制 ..
发布时间:2020-04-23 11:13:55 服务器开发

如果应用程序在GC中,如何可靠地获取JVM核心转储?

我正试图在我的java应用程序中找到内存泄漏的原因。我需要为长 GC循环中的进程获取堆转储。 Jmap在这种情况下不起作用,因为app被挂起并且因为堆非常大。 不幸的是,jmap在我采取的核心转储上抛出UnknownOopException。我想在GC期间采取核心转储是不正确的。有没有办法在核心转储正确的时候暂停java进程? 或者我完全错了并且由于其他一些问题而被破坏了核心转储? ..
发布时间:2018-12-29 20:56:37 Java开发

当JVM崩溃时,Sun JDK能否生成核心/堆转储文件?

当JVM崩溃时,有没有生成核心/堆转储文件?由于这些文件通常非常有助于找出代码中的错误。任何帮助表示赞赏。 cheng 解决方案 使用以下JVM选项: -XX:+ HeapDumpOnOutOfMemoryError -XX:HeapDumpPath =“/ tmp” JVM会将堆内容转储到指定目录中的文件。请注意,只有在抛出 OutOfMemoryEr ..
发布时间:2018-12-07 18:24:51 Java开发

从应用程序内请求Java堆转储(核心转储)

我需要一种方法从应用程序中请求堆转储 。 基本原理:遇到特定错误情况时,我'我想转储堆,这样我就能看到内存中的内容。 但是我想自动化这个(例如,当我检测到时已经发生了一些特定的情况。或者当看门狗不再获得它的ping时。当某些测试失败时)。因此,我需要一种从应用程序本身转储堆的方法。我似乎无法用MX bean找到它。虽然MX Beans可以提供非常好的堆栈跟踪以及监视器和“可拥有的同步器 ..
发布时间:2018-12-07 12:31:01 Java开发

如何调试Java OutOfMemory异常?

调试 java.lang.OutOfMemoryError 例外的最佳方法是什么? 当我们发生这种情况时应用程序,我们的应用服务器(Weblogic)生成堆转储文件。我们应该使用堆转储文件吗?我们应该生成Java线程转储吗?究竟有什么区别? 更新:生成线程转储的最佳方法是什么? kill -3 (我们的应用程序在Solaris上运行)是杀死应用程序并生成线程转储的最佳方法吗?有没有办法 ..
发布时间:2018-12-05 11:03:44 Java开发