coredump相关内容

Windows 崩溃转储调用堆栈仅显示 wow64

问题 我有一个我们为内部使用而开发的 Windows 应用程序.感谢 Windows 错误处理,窗口保持打开状态,我可以轻松地从任务管理器生成故障转储. 我以前曾通过 eclipse 在 linux 上使用过故障转储,但这是第一次在 Windows 上. 硬件 服务器是Windows 2012,我的开发机器是Windows 7. Windbg 当我在 Windb ..
发布时间:2021-09-25 19:30:31 其他开发

是否可以调试由没有 gdb 标志编译的可执行文件生成的核心文件?

是否可以调试由没有 gdb 标志编译的可执行文件生成的核心文件? 如果是的话,有没有关于它的指示或教程? 解决方案 是的,你可以.但这并不容易.我给你举个例子. 假设我有一个名为 foo.c 的程序: main(){*((char *) 0) = '\0';} 我会编译它并确保没有符号: $ cc foo.c$剥离a.out$文件a.outa.out:ELF 32 位 L ..
发布时间:2021-09-14 19:45:47 服务器开发

为什么 scikit-learn 会导致核心转储?

我尝试在 scikit-learn 中运行一个简单的线性拟合: from sklearn import linear_modelclf = linear_model.LinearRegression()clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) 结果我得到: 非法指令(核心转储) 有谁知道这个问题的原因是什么以及如何解决这个问题? 附言 ..
发布时间:2021-07-16 20:06:33 Python

如何使用VSCode调试Linux核心转储?

我有意从使用VSCode编写的C ++应用程序生成核心转储.我无法弄清楚如何调试核心转储.有谁愿意分享这些经验吗? *****更新*****我相信我现在可以工作了.我为核心文件创建了第二个调试配置.我需要添加指向生成的转储文件的"coreDumpPath"选项.我还需要删除将始终生成新可执行文件的preLaunchTask选项. 解决方案 来自 VScode文档 内存转储调试 ..
发布时间:2021-05-29 23:20:11 服务器开发

是否有可能获得仅包含调用堆栈,线程和局部变量的Linux coredump?

我的公司正在利用Linux(特别是CentOS)中的coredump功能来跟踪一些难以发现的问题.不幸的是,我们有一堆运行在有限HD空间中的小型VM,由于堆占用了大量空间,整个核心转储都引起了问题. 发生分段错误时,是否可以仅让Linux转储调用栈,线程和局部变量?我尝试仅将转储限制为50兆,但是似乎并不是所有所需的细节都在前50兆字节中(ulimit -c 51200).我们可以像这样将堆 ..
发布时间:2021-05-29 23:07:14 服务器开发

是否曾经在运行中的JVM中调用过此方法

有没有一种方法可以确定在运行的JVM中是否曾经调用过某个方法.假设我有以下方法信息,并且想知道是否曾经被调用过: "methodId":{"className":"InvokerParser","filePath":"org/foo/commons/functors/InvokerParserformer.java","methodName":“解析器"} 解决方案 如果应用程序在HotS ..
发布时间:2021-05-28 18:54:42 Java开发

加载文件时出现分段错误(核心转储)

我正在尝试创建一个从.txt文件加载数据的函数,但是当它运行时,我总是会遇到分段错误(核心转储)错误.该文件包含未知数量的行,而每行都有一个字符串和一个由tab分隔的整数.list_create函数仅创建数据结构.最后的while循环删除了数据结构,我没有包含代码,因为我确定它不会引起问题,但是我也想表明我正在释放数据结构.值得一提的是,何时使用gdb,我得到: 程序收到信号SIGSEGV,分段 ..
发布时间:2021-05-07 18:51:02 其他开发

避免将信息转储到核心文件中

在发生任何崩溃时,我想避免将某些信息从程序中转储到核心文件中. 为此,我可以使用coredump_filter( http://man7.org/linux/man-pages/man5/core.5.html ) 手册页提供了以下说明 文件中的值是内存映射类型的位掩码(请参见mmap(2)).如果在掩码中设置了一位,则相应的类型被转储;否则,它们不会被丢弃.这该文件中的位具有以 ..
发布时间:2021-04-24 20:21:15 服务器开发

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

我有一个C ++应用程序(用于OS X),该应用程序将lua称为脚本语言.我正在运行大量的这些应用程序(100个),它们可以运行很长时间(几天或几周). 有时会崩溃.而且当它崩溃时,还给我留下了一个可爱的核心文件. 我可以在gdb中打开此核心文件,并找到应用程序崩溃的位置.我可以遍历调用堆栈并找到lua_State变量的实例.我的问题是我想看看lua调用堆栈的外观这次... 请记 ..
发布时间:2021-04-19 20:49:37 C/C++开发

分析来自Node.js的核心转储的工具

如果我使用gcore进行Node.js进程的代码转储,那么最好的分析工具是什么? 灵感来自: 分析Java核心转储的工具 在我的特定情况下,我有兴趣调查一些内存泄漏,因此,我真的很想进行一些堆分析.也欢迎使用通用工具,甚至仪器包和技术.我发现Node.js非常有趣,但是运行时分析工具还不存在. 解决方案 对于调查崩溃,我发现为了调查内存/分配问题,以下是我到目前为止收集的一些数 ..
发布时间:2020-11-22 20:40:31 其他开发

在gdb中使用coredump时,我如何确切知道哪个线程导致了SIGSEGV?

我的应用程序使用8个以上的线程.当我在gdb中运行info threads时,我看到了线程以及它们正在执行的最后一个函数.在我看来,确切是哪个线程引起了SIGSEGV似乎并不明显.有可能说出来吗?是线程1吗?线程如何编号? 解决方案 当您使用gdb分析核心转储文件时,gdb将在导致程序核心转储的函数处停止.当前的话题将是谋杀.以以下程序为例: #include # ..
发布时间:2020-11-13 01:40:05 C/C++开发

强制内核从FreeBSD上正常运行的活动程序中转储

我正在为FreeBSD上的服务器编写错误处理代码.对于非常严重的错误,我想通过立即终止来避免数据损坏.这很容易,exit(3).在我退出之前,我输出了导致我到达那里的相关变量.但是,理想情况下,此终止将带有.core,以便我可以全面调查是什么使我进入了这种灾难性(并且可能难以复制)状态. 我该如何强迫这种情况发生? 解决方案 kill -QUIT process_id将导致正在运行的 ..
发布时间:2020-11-10 22:11:13 其他开发

如何在Docker容器中生成核心文件?

使用ulimit命令,我设置核心文件大小。 ulimit -c unlimited ,然后使用gcc-g选项编译了c源代码。然后生成 。 。/a.out 后出现运行时错误。 p> (堆芯) 但未生成核心文件。(例如core.294340) 如何生成核心文件? 解决方案 首先确保容器将内核写入容器文件系统中的现有位置。核心生成设置是在主机 ..
发布时间:2020-10-24 21:28:25 其他开发

即使进程正常运行,如何创建核心转储?

在Linux下,当进程崩溃时,将创建一个核心转储。 但是,我想在进程没有崩溃时创建一个核心转储,但看起来越野车。远程专家需要核心转储进行分析。 在Windows下,我们可以通过任务管理器创建流程的转储文件,然后,该流程仍在运行。 在Linux下可以吗? 解决方案 调用 gdb ,然后 附加pid gcore 其中 pid 是相关进程的进程ID。 ..
发布时间:2020-10-19 05:23:40 服务器开发

如何在不调用外部工具(例如gdb)的情况下从C中的核心转储文件生成堆栈跟踪

我正在寻找一种简单的方法,以编程方式从Linux核心转储文件中提取堆栈跟踪,而不必调用gdb。有人有主意吗? 为避免混淆:我不是正在寻找一种方法来从流程内部获取自己的追溯信息。我正在寻找一种从我拥有的完全独立的核心转储文件中回溯的方法。 解决方案 如果真的可以不要调用gdb,但是想要像它提供的那样的回溯,您可以将gdb所需的源代码复制到您的项目中。显然,仅调用gdb会更容易,更可维护 ..
发布时间:2020-10-09 19:36:11 服务器开发

从核心转储中获取创建时间

我正在使用C ++应用程序。 我从客户那里得到了一些核心文件,他说这些文件是现在生成的,但是不愿意说出它们是如何生成的以及他从生成文件中所做的事情。 我怀疑他错了,可能是他给了我很久以前生成的转储。 有什么办法可以使我获得实际的创建时间?该文件? 我怀疑这些文件可能是在其他一些服务器上创建的,他已经将其传输了。 任何人都可以提供帮助。 如果它不在核心文件中,则Unix可 ..
发布时间:2020-10-09 19:34:38 服务器开发