Linux下设置core文件大小无限制:ulimit -c unlimited 。
然后写一段会出core的烂程序:
// test.cpp
int main()
{
int *pdata = new int(1);
delete pdata;
delete pdata; // 重复释放
return 0;
}
编译: g++ test.cpp
执行: ./a.out > e.log 2>&1
为什么重定向不了屏幕输出的core信息???
有木有办法将屏幕输出的core信息重定向到文件???
*** glibc detected *** ./a.out: double free or corruption (fasttop): 0x00000000020d7010 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3ffcc75676]
./a.out[0x40063b]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x3ffcc1ec5d]
./a.out[0x400549]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:11 222532 /var/tmp/prog/a.out
00600000-00601000 rw-p 00000000 08:11 222532 /var/tmp/prog/a.out
020d7000-020f8000 rw-p 00000000 00:00 0 [heap]
......