草庐IT

core dump

全部标签

使用 Go 例程和变量时的 Go 插件核心转储

我无法在go插件中启动的go例程中使用变量。以下代码是我正在尝试做的示例。代码//Canbeannon-emptystructaswellvarchannel=make(chanstring)log.Println(channel)gofunc(chchanstring){log.Println(ch)}(channel)在darwin上的go插件中执行时出现核心转储崩溃。-YesGo插件在darwin上工作:http://prntscr.com/iq8czy 最佳答案 我最近向golang报告了这个问题:Issuerelatedt

c++ - 我如何读取小型转储?

我通过以下方式将小型转储写入文件:MiniDumpWriteDump.该文件是从客户端发送给我的(即我不能使用某种即时调试器)。我的问题是:如何打开它?VisualStudio给出错误:“不支持调试旧格式故障转储。”我用谷歌搜索,发现人们正在用visualstudio打开内核转储。这不是内核转储,只是应用程序崩溃的转储。我也试过用WinDbg打开它,但那也无法打开它。我怎样才能得到这些信息? 最佳答案 工具:http://technet.microsoft.com/el-gr/sysinternals/dd996900.aspx您在

java - Sun JDK 能否在 JVM 崩溃时生成核心/堆转储文件?

当JVM崩溃时,是否有生成核心/堆转储文件的方法?由于这些文件通常非常有助于找出代码中的错误。 最佳答案 使用以下JVM选项:-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath="/tmp"JVM会将堆中的内容转储到指定目录中的文件中。请注意,这仅在抛出OutOfMemoryError时发生,因为如果JVM由于其他原因而崩溃,则实际上不需要转储。编辑:“boolean选项用-XX:+打开,用-XX:-关闭。”docs 关于java-SunJDK

java - 如何分析Websphere core*.dmp文件和Snap*.trc文件?

全部,我的应用程序在websphereappserver7.0上运行。我得到了一些核心转储和跟踪文件,例如核心.20110909.164930.3828.0001.dmp和快照.20110909.164930.3828.0003.trc.我的问题是,就像WAS生成的threaddump可以被IBM-ThreadDumpAnalyzertool打开分析一样IBM或任何其他公司是否提供打开上述文件的工具?谢谢,阿尤斯曼 最佳答案 核心转储必须由jextract实用程序(转储的jre的)处理从我的webspereroot开始,这是./ja

java - 使用 jmap(1.5) 从 java 核心转储中提取信息

长话短说,一些同事正在运行一个非常旧的设置(x86_64中的oc4jjdk1.5.6)和一个恰好是关键任务的应用程序。他们最近尝试部署应用程序的新版本,但一旦他们这样做,java进程就会抛出核心转储并死掉。问题是,核心转储似乎没问题,gdb可以打开它们,但是jmap和其他工具拒绝处理它们:#/usr/java/jdk1.5.0_06/bin/jmap/usr/java/jdk1.5.0_06/bin/javacoreAttachingtocorecorefromexecutable/usr/java/jdk1.5.0_06/bin/java,pleasewait...Erroratta

java - Java 的核心转储等效项

到目前为止,我已经了解了分别使用jstack和jmap生成线程转储和堆转储。但是,jstack线程转储仅包含描述每个线程堆栈的文本。使用JavaVisualVM打开堆转储(.hprof文件)仅显示堆中分配的对象。我真正想要的是能够看到堆栈,切换到特定的堆栈帧,并观察局部变量。这种事后调试通常可以使用WinDbg、gdb和核心文件(对于nativeC++程序)等工具完成。我想知道Java中是否存在这样的“核心”文件(它将允许我在非实时环境中进行调试)? 最佳答案 Java可以。如果您使用的是IBMVM,请使用com.ibm.jvm.D

c++ - 在使用 gdb 检查核心转储时,有没有办法运行函数(如 std::string.size())?

考虑一个产生某些段错误并中止的C++程序。在使用gdb进行常规调试时,我可以执行以下操作并查看结果(gdb)r(gdb)pstr_var.size()其中str_var在文件中定义为std::string。但是,我在使用核心转储进行调试时遇到了一些问题。在我通过在gdb中加载核心转储之后gdbEXECUTABLEcore.pid然后在gdb终端运行以下命令(gdb)pstr_var.size()gdb说“如果没有调试过程,你就不能这样做。”我只能做bt(查看堆栈跟踪)或直接打印std::string变量之类的事情,但是找不到一种简单的方法来检查一些信息,例如打印std::string的

c++ - 使用核心转储从崩溃中恢复

一个C++程序在FreeBSD6.2上崩溃了,操作系统好心地创建了一个核心转储。是否可以截断一些堆栈帧,重置指令指针并重新启动gdb中的进程,以及如何? 最佳答案 Isitpossibletoamputatesomestackframes,resettheinstructionpointerandrestarttheprocessingdb?我假设您的意思是:更改进程状态,并将其设置为再次开始执行(就好像它从来没有崩溃过一样)。没有。一方面,您建议GDB(如果它神奇地具有此功能)如何处理您的文件描述符(当您的进程终止时内核自动关闭)

c++ - 核心转储的原因是什么?来自 oracle lib 的堆栈显示

我有一个coredmp,其中所有线程堆栈看起来都很正常,但一个堆栈显示如下。任何人都可以告诉我这可能的原因吗?我可以看到正在从oracle库调用exit,这是oracle的问题吗?当这种情况发生时,任何人都可以指导我吗?Thread3(process26454):#00x00002b803ceb54a8inexit()from/lib64/libc.so.6#10x00002b803bbe93f5inskgdbgcra()from/home/oracle/product/11g/lib/libclntsh.so.11.1#20x00002b803be9cdecinkpeDbgCrash

c++ - 在 gdb 中使用核心转储时,我如何确切知道哪个线程导致了 SIGSEGV?

这个问题在这里已经有了答案:HowtofindwhichthreadcausedSEGFAULTinapost-mortemgdbsession?(1个回答)关闭7年前。我的应用程序使用了8个以上的线程。当我在gdb中运行infothreads时,我看到线程和它们正在执行的最后一个函数。对我来说,究竟是哪个线程导致了SIGSEGV似乎并不明显。有可能告诉它吗?是线程1吗?线程是如何编号的?