标签: stack-dump

我怎样才能解释.stackdump文件?

这个问题很可能重复使用来自Cygwin可执行文件的stackdump - 但我是初学者,我不理解答案,甚至是部分问题.

我是c ++和编程的新手,我在NetBeans中开发.我正在编写一些编译得很好的代码,但是在运行时失败了.如果我使用调试器,我会收到以下错误:

1 [main] all 6200 exception::handle: Exception: STATUS_ACCESS_VIOLATION
881 [main] all 6200 open_stackdumpfile: Dumping stack trace to all.exe.stackdump
Run Code Online (Sandbox Code Playgroud)

我已经设法找到文件all.exe.stackdump,我可以通过记事本++阅读它,但我不明白这是什么意思.我通过另一个问题收集到有一种用户友好的方式来解码这个文件,但我最好的猜测bash$ gdb all.exe.stackdump是无效的.在调试中使用此文件的最佳方法是什么?

为了防止它有用,这里是all.exe.stackdump的内容

Exception: STATUS_ACCESS_VIOLATION at eip=00434C41
eax=2003A2E4 ebx=0028A95C ecx=00000000 edx=0028A95C esi=0028A9B0 edi=00000000
ebp=0028A9C8 esp=0028A930 program=[redacted for privacy/security], pid 6200, thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
0028A9C8  00434C41  (00000000, 2003A4F0, 0028A9E8, 00000000)
0028A9E8  00436B14  (00000000, 2003A4F0, 0028AA28, 0028D000)
0028AAF8  004036A4  (0028AB80, 2003A2B0, 00000014, 00000003)
0028ABD8  00403FBC  (00000001, …
Run Code Online (Sandbox Code Playgroud)

c++ debugging stack-trace stack-dump

16
推荐指数
2
解决办法
2万
查看次数

为什么这个Hotspot JVM选项不是默认选项?-XX:+ PrintConcurrentLocks

默认情况下,使用Hotspot,CTRL-Break线程转储不会列出哪些线程持有java.lang.concurrent锁.我理解,使用这些锁,Hotspot无法获得有关获取锁的堆栈帧的信息.如果添加JVM选项-XX:+PrintConcurrentLocks,则CTRL-Break堆栈转储将列出(在线程的堆栈跟踪之后)该帧持有的任何并发锁定.例如:

"D-Java-5-Lock" prio=6 tid=0x00000000069a1800 nid=0x196c runnable [0x000000000770f000]
   java.lang.Thread.State: RUNNABLE
      at com.Tester.longDelay(Tester.java:41)
      at com.Tester$D.run(Tester.java:88)

   Locked ownable synchronizers:
      - <0x00000007d6030898> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
Run Code Online (Sandbox Code Playgroud)

没有这个选项,就不可能弄清楚在验尸中持有这个锁的线程.为什么此选项不是默认选项?是否存在一些不明显的性能或稳定性惩罚?当我寻找对此的讨论时,什么也没有出现.

java stack-dump

7
推荐指数
1
解决办法
2140
查看次数

如何分析核心转储

应用程序[rtorrent]崩溃后,它生成core文件,250MB.

Caught Segmentation fault, dumping stack:B] [Port: 58940][U 0/0] [D 0/10] [H 1/32] [S 72/75/768] [F 0/128]
Stack dump not enabled.
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

我需要的是分析和查看堆栈跟踪,以便了解为什么rtorrent经常崩溃.

ubuntu stack-dump

6
推荐指数
1
解决办法
7316
查看次数

堆栈转储访问malloc char数组

gcc 4.4.3 c89

我有以下源代码.并在printf上获得堆栈转储.

char **devices;
devices = malloc(10 * sizeof(char*));

strcpy(devices[0], "smxxxx1");

printf("[ %s ]\n", devices[0]); /* Stack dump trying to print */
Run Code Online (Sandbox Code Playgroud)

我想这应该创建一个这样的char数组.

devices[0]
devices[1]
devices[2]
devices[4]
etc
Run Code Online (Sandbox Code Playgroud)

每个元素我都可以存储我的字符串.

非常感谢任何建议,

==增加了更正===

for(i = 0; i < 10; i++)
{
    devices[i] = malloc(strlen("smxxxx1")+1);
}
Run Code Online (Sandbox Code Playgroud)

c memory-management stack-dump

5
推荐指数
1
解决办法
838
查看次数

如何在 cygwin 中使用“*.stackdump”文件进行调试

我是 cygwin(和 linux)的新手。

当我尝试运行基于 C 语言的可执行文件时,发生了分段错误,并且我获取了 stackdump 文件。但是,我不知道如何使用它进行调试。

我一直在寻找如何使用 stackdump 文件进行调试的方法,但我找不到。任何小技巧对我都非常有用。感谢您阅读我糟糕的英语(英语不是我的第一语言)。

cygwin segmentation-fault stack-dump

4
推荐指数
1
解决办法
4144
查看次数

g ++优化-O3导致奇怪的stackdump错误?

首先,我2个月前才开始编程C/C++(但是有更多的Java经验),所以我对C/C++的经验很少.我正在撰写一篇论文,并正在使用/扩展为此目的而为之前的研究编写的其他代码.

现在,这个错误肯定是我遇到的最奇怪的事情,花了我差不多3个小时才找到并缩小到最基本的形式我可以用它来重现它.最后,我有以下代码的这两个文件

c.hh:

#ifndef C_HH_
#define C_HH_

class complex {
public:
    double re;
};
#endif
Run Code Online (Sandbox Code Playgroud)

test.cc:

#include <iostream>
#include "c.hh"

int main(int argc, char **argv) {
    complex* c;
    c->re = 0.0;

    for (int i = 0; i < 3; ++i) {
        c->re = (c->re) + (i==1)?0:1;
    }

    std::cout << c->re;
}
Run Code Online (Sandbox Code Playgroud)

我可以拿出的唯一一行仍然会出现错误,即c.re的初始化,即"c-> re = 0.0;".但是,我留下了这个,因为即使我删除代码的下半部分,如果没有这行,错误仍然会发生,因为c.re尚未初始化(或者我认为?).

我发现其他一切都是重现错误的必要条件,即

1)for循环.如果i = 1,2,3的行是单独写的,则不会导致错误.

2)我的极限!例如,如果我只从0到2运行,则不会导致错误.仅在至少3次迭代后才会发生.

3)显式赋值"c-> re =(c-> re)+",使用"+ ="而不是"=(c-> re)+"不会导致错误.

4)i"(i == 1)?0:1"的评估和(!)条件检查.使用if(..)执行此操作也会导致错误,但如果不使用i,则不会导致错误,或者不执行条件检查.

5)c.re的输出.即"std :: cout << c-> re;".简单地评估c.re("c-> re;")不会导致错误.如果只有输出而没有评估c.re,它也不会导致错误.通过"fprintf(stdout,"%d",c - > - re)执行相同操作;" …

c++ optimization stack-dump

1
推荐指数
1
解决办法
149
查看次数