coredump相关内容

加载文件时的核心转储

我正在尝试创建一个从 .txt 文件加载数据的函数,但是当它运行时,我总是遇到分段错误(核心转储)错误.该文件包含未知数量的行,而每行都有一个字符串和一个由制表符分隔的整数. list_create 函数只是创建一个数据结构.最后的while循环删除了数据结构,我没有包含代码,因为我确定它不会导致问题但我也想表明我正在释放数据结构.值得一提的是,什么时候使用gdb,我明白了: 程序收到信号SIG ..
发布时间:2022-01-12 16:09:08 其他开发

递归导致的分段错误

我正在编写一个程序,该程序将取一个 1-10 之间的数字并显示所有可能的数字排列方式. 前输入:3输出: 1 2 31 3 22 1 32 3 13 1 23 2 1 每当我输入 9 或 10 时,程序都会给出分段错误并转储内核.我相信问题是我的递归算法被调用了太多次.有人可以帮助指出我如何限制必要的递归调用量吗?这是我当前的代码: void rerange(int numbers[ ..
发布时间:2022-01-12 15:57:43 其他开发

什么是 SEGV_MAPERR?

什么是SEGV_MAPERR,为什么总是想出SIGSEGV? 解决方案 常见的有两种SEGV,这是内存访问无效导致的错误: 访问了具有错误权限的页面.例如,它是只读的,但您的代码试图写入它.这将报告为 SEGV_ACCERR. 访问的页面根本没有映射到应用程序的地址空间.这通常是由于取消引用空指针或被小整数值损坏的指针造成的.这被报告为 SEGV_MAPERR. SEGV_M ..
发布时间:2022-01-12 15:35:12 服务器开发

Linux 中的核心转储

我想在我的进程崩溃时创建一个核心转储.目前我正在遵循这种方法: 使用 gcc/g++ 的“-g"构建程序的特殊“调试"版本. 执行“ulimit -c unlimited" 现在我们在程序崩溃时获取核心转储. 但我想尽量减少步骤数,以便: 应始终创建核心转储.即使它是“发布"构建.不应要求用户手动执行命令“ulimit -c unlimited". 核心转储的回溯应该能够给 ..
发布时间:2022-01-12 11:23:22 服务器开发

双自由或腐败(fasttop)

我的代码的以下部分在执行 * glibc 检测到 时给了我这个消息./a.out: double free or corruption (fasttop): 0x08e065d0 ** 我已经多次阅读代码,但我无法清楚地看到我是如何滥用free (temp2) bool found= false;整数 x=0;对于 ( x=0; xnum);temp->ptr=NULL;newNode = ..
发布时间:2022-01-01 18:41:14 其他开发

如何在生产系统的 Python 进程中找到正在使用内存的内容?

我的生产系统偶尔会出现内存泄漏,我无法在开发环境中重现.我在开发环境中使用了 Python 内存分析器(特别是 Heapy)并取得了一些成功,但是它无法帮助我解决无法重现的事情,而且我不愿意使用 Heapy 来检测我们的生产系统,因为它需要一段时间来完成它的工作,而且它的线程远程接口在我们的服务器中不能很好地工作. 我想我想要的是一种转储生产 Python 进程(或至少是 gc.get_obje ..
发布时间:2021-12-31 08:23:33 Python

如何使用 gdb 从核心文件中获取 lua 堆栈跟踪

我有一个 C++ 应用程序(用于 OS X),它调用 lua 作为脚本语言.我正在运行大量这些应用程序(100 个)并且它们可以运行很长一段时间(几天或几周). 有时会崩溃.当它崩溃时,它给我留下了一个可爱的核心文件. 我可以在 gdb 中打开这个核心文件并找到应用程序崩溃的地方.我可以遍历调用堆栈并找到一个 lua_State 变量的实例.我的问题是我想看看 lua 调用堆栈是什么样 ..
发布时间:2021-12-30 20:49:30 C/C++开发

对 `std::ios_base::Init::Init()' 的未定义引用

我写这段代码是为了读取3个文件,TM是方阵的大小,LER是数组的行数,从最后一个值定义一个非方阵(ler/2)*2 然后……代码读取一个有关系的文件,都是数字,并赋值给C[ler]. 然后... C[ler] 被分配给 B[ler/2][2]. B[ler/2][2] 中每行的那些坐标分配给 a 和 b. a 和 b 是矩阵 A[tm][tm] 中要加 1 的行和列. ..
发布时间:2021-12-18 23:43:02 其他开发

C 程序如何在不终止的情况下生成自身的核心转储?

我想要一个 C 程序在某些情况下产生一个核心转储.这是一个在生产环境中运行的程序,不容易停止和重新启动以调整其他类型的调试代码.另外,由于它在生产环境中,我不想调用 abort().在非生产环境中不容易复制正在调查的问题.我希望程序在检测到某些问题时自行生成核心转储,最好提供足够的信息来重命名文件,然后继续. 解决方案 void create_dump(void){如果(!叉()){//在 ..
发布时间:2021-12-14 09:01:26 其他开发

是否可以获得正在运行的进程及其符号表的核心转储?

是否可以获取 gdb 或使用其他一些工具来创建正在运行的进程的核心转储及其符号表?如果有一种方法可以在不终止进程的情况下做到这一点,那就太好了. 如果可以,您会使用什么命令?(我正在尝试在 Linux 机器上执行此操作) 解决方案 $ gdb --pid=26426(gdb) gcore保存的核心文件 core.26426(gdb) 分离 ..
发布时间:2021-12-14 08:58:56 其他开发

如何在 Mac OS X 中生成核心转储?

我似乎无法在 Mac OS X 10.6.8 中生成核心转储. $ ulimit -c 无限制$ ./a.out你好,世界!分段故障$ find ~/-type f -name 核心# ls -la/核心/共 0drwxrwxr-t@ 2 根管理员 68 24 jui 2010.drwxrwxr-t 31 root admin 1122 10 月 17 日 15:52 .. 我的当前目录,我的 ..
发布时间:2021-12-06 21:13:33 其他开发

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

在运行 C 程序时,它显示 "(core dumped)" 但我在当前路径下看不到任何文件. 我已经设置并验证了ulimit: ulimit -c 无限制ulimit -a 我也试图找到一个名为“core"的文件,但没有找到核心转储文件? 任何帮助,我的核心文件在哪里? 解决方案 阅读 /usr/src/linux/Documentation/sysctl/kernel.txt ..
发布时间:2021-12-03 13:43:48 服务器开发

如何在 Linux 中在分段错误时生成核心转储?

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

如何分析来自 Java 核心转储的信息?

如果进程崩溃并留下核心转储,或者我使用 gcore 创建了一个核心转储,那么我该如何分析它? 我希望能够使用 jmap、jstack、jstat 等并查看所有变量的值. 这样我就可以找到 JVM 崩溃或冻结的原因. 解决方案 好的,如果您已经使用 gcore 或 gdb 创建了核心转储,那么您需要将其转换为称为 HPROF 的内容文件.这些可以由 VisualVM、Netbea ..
发布时间:2021-11-27 11:57:48 Java开发

如何在 docker 容器中禁用核心文件转储

我的 PHP 容器运行 puppeteer 来生成 PDF.通过生成 PDF 文档,它还在我的容器内创建了两个核心转储文件.我不确定它们实际上来自哪里. 主机/服务器为 CentOS 7. 我检查了以下内容: 没有应用程序错误日志,Browsershot/puppeteer 运行没有错误. 在 /var/log/messages 中找不到错误日志(例如段错误) 我尝试禁 ..
发布时间:2021-11-27 08:26:34 其他开发

为什么这里没有生成 Coredump 文件?

我在这里有一个情况,几天前我能够在我的目标板上看到核心文件,我通过向我的/etc/profile 添加“ulimit -c unlimited"来提供核心转储生成支持.但是后来有人告诉我 这只会对从登录 shell 启动的程序有效,对由 systemd 启动的进程/服务无效,etc/limits 是设置这些默认值的正确位置. 所以我更改了/etc/limits 文件并添加了“ulimi ..
发布时间:2021-11-17 22:22:20 其他开发

使用 GDB 生成时如何限制核心转储文件的大小

我在 ARM9 板上运行嵌入式应用程序,其中总闪存大小仅为 180MB.我能够运行 gdb,但是当我这样做时 (gdb) 生成核心转储 出现错误 警告:核心文件部分的内存读取失败,0x4156c000 处为 1048576 字节.警告:核心文件部分的内存读取失败,0x50c00000 处为 1048576 字节.保存的核心文件 core.5546程序正在运行.无论如何退出(并分离它) ..
发布时间:2021-11-17 21:58:42 服务器开发