免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4856 | 回复: 4
打印 上一主题 下一主题

[C++] 关于子进程coredump的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-20 17:20 |只看该作者 |倒序浏览


大家好,
我写了一个必然会崩溃的程序,名字为 test :
#include "stdlib.h"
#include "unistd.h"

int main()
{

        char *pTest = NULL;
        memcpy(pTest , "123", 111);
        return 0;
}


编译后,直接执行,会在当前目录产生coredump。

然后我又写了一个shell,名字为 shelltest.sh :
#!/bin/bash

ulimit -c unlimited
echo $(date) 'aaaa' >> /root/oooo.log
echo $(ulimit -a)    >> /root/oooo.log
sleep 3
./test


并且在/etc/inittab中加入:(shelltest.sh , test 都放在/root下)
asd:2345:respawn:/root/shelltest.sh

执行init q.这时脚本开始循环跑了,并且记了日志,程序也是在循环地崩溃。
在日志中打出来的ulimit -a如下:
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 40960
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024 pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200 r
eal-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 40960
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

跟我在命令行中打出来的一致。似乎没什么不妥的地方。

但是在/root目录下没有产生dump文件。
问题用一句话描述就是:通过shell执行的程序崩溃了,为什么不产生coredump呢?


论坛徽章:
0
2 [报告]
发表于 2013-08-21 10:28 |只看该作者
这种故意的coredump还没碰到过。 看看这个, 好像跟权限和内核设置有关:

Linux环境中以daemon方式运行的程序生成core dump --  http://blog.csdn.net/poechant/article/details/7705340

论坛徽章:
0
3 [报告]
发表于 2013-08-21 15:19 |只看该作者
回复 2# djsxut


    感谢楼上的帮助,提供的资料很有帮助

我上面的方法,其实也是可以产生coredump的,只是由于目录未设置,产生路径为 /proc/[pid]/cwd对应的目录
并且在sshd中输入的ulimit -c unlimited ,在由init启的进程中并不生效,需要设置,可以在shell中设置

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2013-08-22 12:54 |只看该作者
coredump还可以设置目录么。。。从来没设置过。。以前我们公司代码里不管是不是daemon,只是设置一下core limit而已,都是产生在执行目录的

论坛徽章:
0
5 [报告]
发表于 2013-08-23 09:45 |只看该作者
回复 4# csumck


   
可以设置路径在 /proc/sys/kernel/core_pattern

也许是你们的执行方式导致cwd已经指向了当前目录吧
现在我把程序 改成自己处理signal,然后gcore
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP