【问题标题】:generate core dump via cygwin通过 cygwin 生成核心转储
【发布时间】:2016-01-12 06:46:21
【问题描述】:

main.cpp

#include <stdexcept>

int main()
{
    throw std::runtime_error("AAAA");
}

我生成并运行exe文件:

g++ -g main.cpp
a.exe

我在屏幕上看不到任何输出。我没有看到核心文件。

我也关注了this post,但没有成功。

好像ulimit在cygwin下也不存在。


更新

ulimit -a的输出:

在 CMD 中:

>ulimit -a
'ulimit' is not recognized as an internal or external command,
operable program or batch file.

在 bash 中:

$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 8
stack size              (kbytes, -s) 2032
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256
virtual memory          (kbytes, -v) unlimited

【问题讨论】:

标签: c++ exception cygwin coredump


【解决方案1】:

刚刚检查过,我的核心文件是完美创建的。请提供ulimit -a 的输出。除此之外,我不确定你有什么路径,所以,请以./a.exe 运行二进制文件以获得它的显式路径。

【讨论】:

  • 路径是明确的
  • 您是在 CMD 中还是在 bash 中构建和运行?
  • 对两者都进行了测试。 cmd 与exportulimit 存在问题。它不认识其中任何一个。但是,cmd 和 bash 都不能创建核心转储
  • 请同时检查当前目录对于进程是否可写。同时,您也可以尝试在 gdb 下运行它,看看代码是否真的产生了异常(可能您运行的二进制文件与源代码不对应)......并让我们知道结果。还请包括当前目录的列表。
  • 请让我知道我应该使用 bash 还是 cmd。另外我应该写什么命令?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 2023-03-27
  • 2013-07-24
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多