{"id":577,"date":"2017-10-19T17:48:37","date_gmt":"2017-10-19T09:48:37","guid":{"rendered":"https:\/\/i007.cc\/wordpress\/?p=577"},"modified":"2017-11-24T15:17:21","modified_gmt":"2017-11-24T07:17:21","slug":"gcore-%e8%8e%b7%e5%8f%96%e7%a8%8b%e5%ba%8fcore-dump-file-%e4%bd%86%e7%a8%8b%e5%ba%8f%e4%b8%8d%e7%94%a8%e9%80%80%e5%87%ba%ef%bc%8cgdb-%e5%88%86%e6%9e%90core%e8%bd%ac","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/577","title":{"rendered":"gcore \u83b7\u53d6\u7a0b\u5e8fcore dump file \u4f46\u7a0b\u5e8f\u4e0d\u7528\u9000\u51fa\uff0cgdb \u5206\u6790core[\u8f6c]"},"content":{"rendered":"<div class=\"articalTitle\">\n<p id=\"t_553c6d4e0101gwx7\" class=\"titName SG_txta\">\u8f6c\u8f7d\u5730\u5740\uff1a<a href=\"http:\/\/hi.baidu.com\/widebright\/item\/e94ea43535711f4a3075a1d0\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/hi.baidu.com\/widebright\/item\/e94ea43535711f4a3075a1d0<\/a><\/p>\n<\/div>\n<div id=\"sina_keyword_ad_area2\" class=\"articalContent \">\n<div><\/div>\n<div>\n<p><strong>\u672c\u6587\u5305\u542b\u5982\u4e0b\u90e8\u5206\u5185\u5bb9<br \/>\n<\/strong><\/p>\n<p><strong>1. Linux\u5185\u6838\u91cc\u9762\u751f\u6210\u7684core file\u6587\u4ef6\u76f8\u5173\u7684\u4ee3\u7801<\/strong><\/p>\n<p>2. core dump file \u76f8\u5173\u7684\u8bbe\u7f6e<\/p>\n<p>3. \u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u8c03\u7528\u4ee3\u7801\u751f\u6210 core dump file\uff0c\u7a0b\u5e8f\u53c8\u4e0d\u7528\u9000\u51fa\u3002<\/p>\n<p>4. \u4f7f\u7528gdb\u5206\u6790 core dump file \u6587\u4ef6<\/p>\n<p>5.\u00a0<wbr \/>\u00a0<wbr \/><strong>\u7528gdb \u751f\u6210core\u6587\u4ef6<\/strong><\/p>\n<p><wbr \/><\/p>\n<p><wbr \/><\/p>\n<p><strong>1. Linux\u5185\u6838\u91cc\u9762\u751f\u6210\u7684core file\u6587\u4ef6\u76f8\u5173\u7684\u4ee3\u7801<\/strong><\/p>\n<p><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<\/strong><\/p>\n<p><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=get_signal_to_deliver\">get_signal_to_deliver<\/a>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u8fd9\u91cc\u6ca1\u5224\u65ad\u662f\u4e0d\u662f\u4fe1\u53f7\u662f\u4e0d\u662f\u8981\u89e6\u53d1core dump\uff0c\u7136\u540e\u8c03\u7528<\/p>\n<p><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=do_coredump\">do_coredump<\/a><\/p>\n<p>\u6700\u540e\u4f1a\u8c03\u7528<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=elf_core_dump\">elf_core_dump<\/a><\/p>\n<p>\u91cc\u9762\u6709\u4e00\u6bb5\u8fd9\u6837\u53d8\u91cfvma\u7684\u5faa\u73af\uff0c\u5e94\u8be5\u662f\u4fdd\u5b58\u6240\u6709\u5185\u5b58\u7684\uff1f \u4e0d\u8fc7\u5e94\u8be5\u8fd8\u6709\u5176\u4ed6\u4fe1\u606f\u7684<\/p>\n<p><a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1980\" name=\"L1980\">1980<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1981\" name=\"L1981\">1981<\/a>\u00a0<wbr \/>for (<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=first_vma\">first_vma<\/a>(<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=current\">current<\/a>,\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=gate_vma\">gate_vma<\/a>);\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>\u00a0<wbr \/>!=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=NULL\">NULL<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1982\" name=\"L1982\">1982<\/a><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=next_vma\">next_vma<\/a>(<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>,\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=gate_vma\">gate_vma<\/a>)) {<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1983\" name=\"L1983\">1983<\/a>\u00a0<wbr \/>struct\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=elf_phdr\">elf_phdr<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1984\" name=\"L1984\">1984<\/a><a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1985\" name=\"L1985\">1985<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_type\">p_type<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=PT_LOAD\">PT_LOAD<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1986\" name=\"L1986\">1986<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_offset\">p_offset<\/a>\u00a0<wbr \/>=<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=offset\">offset<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1987\" name=\"L1987\">1987<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_vaddr\">p_vaddr<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vm_start\">vm_start<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1988\" name=\"L1988\">1988<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_paddr\">p_paddr<\/a>\u00a0<wbr \/>= 0;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1989\" name=\"L1989\">1989<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_filesz\">p_filesz<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma_dump_size\">vma_dump_size<\/a>(<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>,\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=cprm\">cprm<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=mm_flags\">mm_flags<\/a>);<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1990\" name=\"L1990\">1990<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_memsz\">p_memsz<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vm_end\">vm_end<\/a>\u00a0<wbr \/>&#8211;\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vm_start\">vm_start<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1991\" name=\"L1991\">1991<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=offset\">offset<\/a>\u00a0<wbr \/>+=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_filesz\">p_filesz<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1992\" name=\"L1992\">1992<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_flags\">p_flags<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vm_flags\">vm_flags<\/a>\u00a0<wbr \/>&amp;\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=VM_READ\">VM_READ<\/a>\u00a0<wbr \/>?\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=PF_R\">PF_R<\/a>\u00a0<wbr \/>: 0;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1993\" name=\"L1993\">1993<\/a>\u00a0<wbr \/>if (<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vm_flags\">vm_flags<\/a>\u00a0<wbr \/>&amp;\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=VM_WRITE\">VM_WRITE<\/a>)<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1994\" name=\"L1994\">1994<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_flags\">p_flags<\/a>\u00a0<wbr \/>|=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=PF_W\">PF_W<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1995\" name=\"L1995\">1995<\/a>\u00a0<wbr \/>if (<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vma\">vma<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=vm_flags\">vm_flags<\/a>\u00a0<wbr \/>&amp;\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=VM_EXEC\">VM_EXEC<\/a>)<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1996\" name=\"L1996\">1996<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_flags\">p_flags<\/a>\u00a0<wbr \/>|=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=PF_X\">PF_X<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1997\" name=\"L1997\">1997<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>.<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=p_align\">p_align<\/a>\u00a0<wbr \/>=\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=ELF_EXEC_PAGESIZE\">ELF_EXEC_PAGESIZE<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1998\" name=\"L1998\">1998<\/a><a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L1999\" name=\"L1999\">1999<\/a>\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=size\">size<\/a>\u00a0<wbr \/>+= sizeof(<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>);<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L2000\" name=\"L2000\">2000<\/a>\u00a0<wbr \/>if (<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=size\">size<\/a>\u00a0<wbr \/>&gt;\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=cprm\">cprm<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=limit\">limit<\/a><a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L2001\" name=\"L2001\">2001<\/a>\u00a0<wbr \/>|| !<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=dump_write\">dump_write<\/a>(<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=cprm\">cprm<\/a>-&gt;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=file\">file<\/a>, &amp;<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>, sizeof(<a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=phdr\">phdr<\/a>)))<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L2002\" name=\"L2002\">2002<\/a>\u00a0<wbr \/>goto\u00a0<wbr \/><a href=\"http:\/\/lxr.linux.no\/linux+*\/+code=end_coredump\">end_coredump<\/a>;<a href=\"http:\/\/lxr.linux.no\/linux+*\/fs\/binfmt_elf.c#L2003\" name=\"L2003\">2003<\/a>\u00a0<wbr \/>}<\/p>\n<p><wbr \/><\/p>\n<p><wbr \/><\/p>\n<p><wbr \/><\/p>\n<p><strong>core dump file \u76f8\u5173\u7684\u8bbe\u7f6e\uff1a<\/strong><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n\u9ed8\u8ba4 linux \u662f\u6ca1\u6709dump core\u6587\u4ef6\u7684\uff0c\u9700\u8981\u8bbe\u7f6e\u4e00\u4e0b<br \/>\nwidebright@:~\/\u684c\u9762$ ulimit -a<br \/>\ncore file size\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(blocks, -c) 0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;\u8fd9\u4e2a\u8bbe\u4e3a0\u4e86\uff0c\u4e0d\u4f1a\u6709core dump\u4e86<br \/>\ndata seg size\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(kbytes, -d) unlimited<br \/>\nscheduling priority\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(-e) 20<br \/>\nfile size\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(blocks, -f) unlimited<br \/>\npending signals\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(-i) 16382<br \/>\nmax locked memory\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(kbytes, -l) 64<br \/>\nmax memory size\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(kbytes, -m) unlimited<br \/>\nopen files\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(-n) 1024<br \/>\npipe size\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(512 bytes, -p) 8<br \/>\nPOSIX message queues\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(bytes, -q) 819200<br \/>\nreal-time priority\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(-r) 0<br \/>\nstack size\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(kbytes, -s) 8192<br \/>\ncpu time\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(seconds, -t) unlimited<br \/>\nmax user processes\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(-u) unlimited<br \/>\nvirtual memory\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(kbytes, -v) unlimited<br \/>\nfile locks\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0(-x) unlimited<\/p>\n<p>ulimit -c 1000\u00a0<wbr \/>\u00a0\u6700\u5927\u5141\u8bb8core\u6587\u4ef6\u67091000\u5757 \uff1f<br \/>\nulimit -c unlimited\u00a0<wbr \/>\u00a0\u4e0d\u505a\u9650\u5236<\/p>\n<p>\u53e6\u6709\/proc\/sys\/kernel\/core_pattern\u00a0<wbr \/>\u00a0<wbr \/>\u00a0core_pipe_limit\u00a0<wbr \/>\u00a0core_uses_pid \u7b49\u6587\u4ef6\u53ef\u4ee5\u63a7\u5236core \u6587\u4ef6\u7684\u540d\u5b57\uff0c\u5177\u4f53\u53ef\u4ee5\u770b\u4e0a\u9762\u8bf4\u7684\u51fd\u6570\u7684\u5b9e\u73b0\u3002<br \/>\n\u6216\u8005\u5728\u5185\u6838\u91cc\u9762\u67e5\u627ecore_pattern\u53d8\u91cf\u3002<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n<strong>\u5982\u4f55\u4e3a\u81ea\u5df1\u7684\u8fdb\u7a0b\u4ea7\u751fcore \u6587\u4ef6\uff0c\u53c8\u4e0d\u60f3\u9000\u51fa\u8fd9\u4e2a\u8fdb\u7a0b\uff1f<\/strong><\/p>\n<p>\u7cfb\u7edf\u53ea\u5728\u7a0b\u5e8f\u5d29\u6e83\u9000\u51fa\u65f6\u81ea\u52a8\u4ea7\u751fcore file\u3002 \u6709\u7684\u4eba\u50cf\u81ea\u5df1\u5904\u7406\u5f02\u5e38\u4fe1\u53f7\uff0c\u7136\u540e\u81ea\u5df1\u4ea7\u751f\u4e00\u4e2acore file\uff0c\u7136\u540e\u7ee7\u7eed\u8fd0\u884c\u3002\u90a3\u8be5\u600e\u4e48\u529e\u5462\uff1f \u5982\u679c\u81ea\u5df1\u5728\u60f3\u4ea7\u751fcore file\u7684\u65f6\u5019\uff0c\u8c03\u7528abort \u51fd\u6570\u6765\u751f\u6210\u6587\u4ef6\uff0ccore\u6587\u4ef6\u662f\u751f\u6210\u4e86\uff0c\u4f46\u81ea\u5df1\u7684\u8fdb\u7a0b\u4e5f\u9000\u51fa\u4e86\u3002\u4e3a\u4e86\u8fdb\u7a0b\u9000\u51fa\uff0c\u5728\u7f51\u4e0a\u627e\u5230\u4e24\u4e2a\u529e\u6cd5\uff1a<\/p>\n<p>=============================================<br \/>\n<strong>\u65b9\u6cd5\u4e00\uff1a<\/strong>\u00a0<wbr \/>\u5148fork\u521b\u5efa\u4e00\u4e2a\u5b50\u8fdb\u7a0b\uff0c\u5b50\u8fdb\u7a0b\u62e5\u6709\u548c\u7236\u8fdb\u7a0b\u4e00\u6837\u7684<br \/>\n\u5185\u5b58\u7a7a\u95f4\u4e86\uff0c\u7136\u540e\u5728\u5b50\u8fdb\u7a0b\u89e6\u53d1abort\u4fe1\u53f7\uff0c\u8ba9\u5b50\u8fdb\u7a0b\u8fdb\u884ccore\u00a0<wbr \/><br \/>\ndump\u3002 \u8fd9\u4e2afork\u770b\u6765\u8fd8\u6bd4\u8f83\u6709\u610f\u601d\u7684\uff0c\u5b50\u8fdb\u7a0b\u62e5\u6709\u7236\u8fdb\u7a0b\u7684\u4e00\u6837<br \/>\n\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u4e0a\u6b21\u624d\u770b\u5230\u6709\u4eba\u60f3\u5b9a\u65f6\u5b58\u6863\u5907\u4efd\u8fdb\u7a0b\u6570\u636e\u65f6\uff0c\u4e5f\u662f\u60f3fork\u4e00\u4e2a<br \/>\n\u5b50\u8fdb\u7a0b\u51fa\u6765\uff0c\u8bf4\u662f\u8fd9\u6837\u7236\u8fdb\u7a0b\u5728\u5907\u4efd\u65f6\u4e5f\u4e0d\u7528\u540c\u6b65\u7b49\u5f85\u4e86\u3002\u5b50\u8fdb\u7a0b\u53ef\u4ee5<br \/>\n\u8bbf\u95ee\u7236\u8fdb\u7a0b\u7684\u5185\u5bb9\u5427\u3002<br \/>\n=============================================<br \/>\n\u65b9\u6cd5\u6765\u81ea<br \/>\nhttp:\/\/stackoverflow.com\/questions\/131439\/how-can-a-c-program-produce-a-core-dump-of-itself-without-terminating<\/p>\n<p>#include<br \/>\n#include<br \/>\n#include<br \/>\n#include<br \/>\n#include<br \/>\n#include<br \/>\n#include<br \/>\n#include<\/p>\n<p>#define mcrosec 1000000<\/p>\n<p>void create_dump(void)<br \/>\n{<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0int * invalid = NULL;<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0if(!fork()) {<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\/\/ Crash the app in your favorite way here<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0abort();\u00a0<wbr \/>\u00a0\/\/\u548c kill(getpid(), SIGABRT);\u5e94\u8be5\u4e00\u6837\u7684<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0*invalid = 42;\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\/\/\u5e94\u8be5\u4e0d\u4f1a\u5230\u8fd9\u91cc\u6765\u4e86\u5427\u3002<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0}<br \/>\n}<\/p>\n<p>int main(int argc,char **argv)<br \/>\n{<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0int i =0;<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0while(1){<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0usleep( 2*mcrosec);<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0i++;<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0printf(&#8220;ddd\\n&#8221;);<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0if( i==5)\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/><br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0create_dump();<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/><br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0}<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0return 0;<br \/>\n}<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p><strong>\u4f7f\u7528gdb\u5206\u6790\u4e00\u4e0b\u8fd9\u4e2acore\u6587\u4ef6\u54c8<\/strong><\/p>\n<p>widebright@:~\/\u684c\u9762$ gdb -core core\u00a0<wbr \/><br \/>\nGNU gdb (Ubuntu\/Linaro 7.2-1ubuntu11) 7.2<br \/>\nCopyright (C) 2010 Free Software Foundation, Inc.<br \/>\nLicense GPLv3+: GNU GPL version 3 or later<br \/>\nThis is free software: you are free to change and redistribute it.<br \/>\nThere is NO WARRANTY, to the extent permitted by law.\u00a0<wbr \/>\u00a0Type &#8220;show copying&#8221;<br \/>\nand &#8220;show warranty&#8221; for details.<br \/>\nThis GDB was configured as &#8220;i686-linux-gnu&#8221;.<br \/>\nFor bug reporting instructions, please see:<br \/>\n.<br \/>\n[New Thread 3320]<br \/>\nCore was generated by `.\/a.out&#8217;.<br \/>\nProgram terminated with signal 6, Aborted.<br \/>\n#0\u00a0<wbr \/>\u00a00x00982416 in __kernel_vsyscall ()<br \/>\n(gdb) file .\/a.out\u00a0<wbr \/><br \/>\nReading symbols from \/home\/widebright\/\u684c\u9762\/a.out&#8230;done.<br \/>\n(gdb) bt\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\/\/\/\u67e5\u51fa\u9519\u65f6\u5019\u7684\u5806\u6808<br \/>\n#0\u00a0<wbr \/>\u00a00x00982416 in __kernel_vsyscall ()<br \/>\n#1\u00a0<wbr \/>\u00a00x00ec6e71 in ?? ()<br \/>\n#2\u00a0<wbr \/>\u00a00x00ff8ff4 in ?? ()<br \/>\n#3\u00a0<wbr \/>\u00a00x00eca34e in ?? ()<br \/>\n#4\u00a0<wbr \/>\u00a00x00000006 in ?? ()<br \/>\n#5\u00a0<wbr \/>\u00a00xbfa5fd80 in ?? ()<br \/>\n#6\u00a0<wbr \/>\u00a00x0804845f in create_dump () at main.c:18<br \/>\n#7\u00a0<wbr \/>\u00a00x0804849c in main (argc=1, argv=0xbfa5ff04) at main.c:31<br \/>\n(gdb) frame 7\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\/\/\u5207\u6362\u7684\u8c03\u7528main\u7684\u8c03\u7528\u5806\u6808\u73af\u5883\u4e0a\u53bb<br \/>\n#7\u00a0<wbr \/>\u00a00x0804849c in main (argc=1, argv=0xbfa5ff04) at main.c:31<br \/>\n31\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0create_dump();<\/p>\n<p>(gdb) print i\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\/\/i \u7b49\u4e8e5\u7684\u65f6\u5019\u8c03\u7528\u7684dump \u5475\u5475<br \/>\n$1 = 5<\/p>\n<p>=========================================<br \/>\n<strong>\u65b9\u6cd5\u4e8c<\/strong>\uff1a\u8c03\u7528gcore\u547d\u4ee4\u4e3a\u6307\u5b9a\u7684\u8fdb\u7a0b\u751f\u6210core \u6587\u4ef6<br \/>\n=========================================<br \/>\nhttp:\/\/forums.freebsd.org\/archive\/index.php\/t-8268.html<\/p>\n<p>char cmd[50];<br \/>\nsprintf(cmd, &#8220;gcore %u&#8221;, getpid());<br \/>\nsystem(cmd);<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nwidebright@:~\/\u684c\u9762$ ps -ef |grep a.out\u00a0<wbr \/><br \/>\n1000\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a03665\u00a0<wbr \/>\u00a03546\u00a0<wbr \/>\u00a00 10:53 pts\/0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a000:00:00 .\/a.out<br \/>\n1000\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a03669\u00a0<wbr \/>\u00a03665\u00a0<wbr \/>\u00a00 10:53 pts\/0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a000:00:00 [a.out]<br \/>\n1000\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a03686\u00a0<wbr \/>\u00a02937\u00a0<wbr \/>\u00a00 10:53 pts\/2\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a000:00:00 grep &#8211;color=auto a.out<\/p>\n<p>widebright@:~\/\u684c\u9762$ sudo gcore 3665<br \/>\n[sudo] password for widebright:\u00a0<wbr \/><br \/>\n0x00c5b416 in __kernel_vsyscall ()<br \/>\nSaved corefile core.3665<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nwidebright@:~\/\u684c\u9762$ gdb -core core.3665\u00a0<wbr \/><br \/>\nGNU gdb (Ubuntu\/Linaro 7.2-1ubuntu11) 7.2<br \/>\nCopyright (C) 2010 Free Software Foundation, Inc.<br \/>\nLicense GPLv3+: GNU GPL version 3 or later<br \/>\nThis is free software: you are free to change and redistribute it.<br \/>\nThere is NO WARRANTY, to the extent permitted by law.\u00a0<wbr \/>\u00a0Type &#8220;show copying&#8221;<br \/>\nand &#8220;show warranty&#8221; for details.<br \/>\nThis GDB was configured as &#8220;i686-linux-gnu&#8221;.<br \/>\nFor bug reporting instructions, please see:<br \/>\n.<br \/>\n[New Thread 3665]<br \/>\nCore was generated by `\/home\/widebright\/\u684c\u9762\/a.out&#8217;.<br \/>\n#0\u00a0<wbr \/>\u00a00x00c5b416 in __kernel_vsyscall ()<br \/>\n(gdb) file a.out\u00a0<wbr \/><br \/>\nReading symbols from \/home\/widebright\/\u684c\u9762\/a.out&#8230;done.<br \/>\n(gdb) bt<br \/>\n#0\u00a0<wbr \/>\u00a00x00c5b416 in __kernel_vsyscall ()<br \/>\n#1\u00a0<wbr \/>\u00a00x00d2afc0 in ?? ()<br \/>\n#2\u00a0<wbr \/>\u00a00x00d5c1ac in ?? ()<br \/>\n#3\u00a0<wbr \/>\u00a00xbfed8b90 in ?? ()<br \/>\n#4\u00a0<wbr \/>\u00a00x08048481 in main (argc=1, argv=0xbfed8c74) at main.c:27<br \/>\n(gdb) p i<br \/>\nNo symbol &#8220;i&#8221; in current context.<br \/>\n(gdb) frame 4<br \/>\n#4\u00a0<wbr \/>\u00a00x08048481 in main (argc=1, argv=0xbfed8c74) at main.c:27<br \/>\n27\u00a0<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0usleep( 2*mcrosec);<br \/>\n(gdb) p i<br \/>\n$1 = 48<\/p>\n<p>=============================<br \/>\n\u5728\u6211\u673a\u5668\u4e0agcore\u547d\u4ee4\u5c31\u4e2ashell\u811a\u672c\uff0c\u81ea\u52a8\u751f\u6210\u4e00\u4e2agdb\u7684\u811a\u672c\uff0cattach \u6307\u5b9a\u7684\u8fdb\u7a0b\uff0c\u7136\u540e\u8c03\u7528gcore\u8fd9\u4e2agdb \u547d\u4ee4\u751f\u6210core\u6587\u4ef6\uff0c\u7136\u540edetach\u8ba9\u8fdb\u7a0b\u7ee7\u7eed\u8fdb\u884c\u3002<\/p>\n<p><strong>(gdb) help generate-core-file<\/strong><br \/>\nSave a core file with the current state of the debugged process.<br \/>\nArgument is optional filename.\u00a0<wbr \/>\u00a0Default filename is &#8216;core.&#8217;.<\/p>\n<p><strong>(gdb) help gcore<\/strong><br \/>\nSave a core file with the current state of the debugged process.<br \/>\nArgument is optional filename.\u00a0<wbr \/>\u00a0Default filename is &#8216;core.&#8217;.<\/p>\n<p>widebright@:~\/\u684c\u9762$ file \/usr\/bin\/gcore<br \/>\n\/usr\/bin\/gcore: POSIX shell script text executable<\/p>\n<p>=============================<\/p>\n<p>cat \/usr\/bin\/gcore<br \/>\n#!\/bin\/sh<\/p>\n<p>#\u00a0<wbr \/>\u00a0<wbr \/>\u00a0Copyright (C) 2003, 2005, 2007, 2008, 2009, 2010<br \/>\n#\u00a0<wbr \/>\u00a0<wbr \/>\u00a0Free Software Foundation, Inc.<\/p>\n<p># This program is free software; you can redistribute it and\/or modify<br \/>\n# it under the terms of the GNU General Public License as published by<br \/>\n# the Free Software Foundation; either version 3 of the License, or<br \/>\n# (at your option) any later version.<br \/>\n#<br \/>\n# This program is distributed in the hope that it will be useful,<br \/>\n# but WITHOUT ANY WARRANTY; without even the implied warranty of<br \/>\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\u00a0<wbr \/>\u00a0See the<br \/>\n# GNU General Public License for more details.<br \/>\n#<br \/>\n# You should have received a copy of the GNU General Public License<br \/>\n# along with this program.\u00a0<wbr \/>\u00a0If not, see .<\/p>\n<p>#<br \/>\n# gcore.sh<br \/>\n# Script to generate a core file of a running program.<br \/>\n# It starts up gdb, attaches to the given PID and invokes the gcore command.<br \/>\n#<\/p>\n<p>if [ &#8220;$#&#8221; -eq &#8220;0&#8221; ]<br \/>\nthen<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0echo &#8220;usage:\u00a0<wbr \/>\u00a0gcore [-o filename] pid&#8221;<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0exit 2<br \/>\nfi<\/p>\n<p># Need to check for -o option, but set default basename to &#8220;core&#8221;.<br \/>\nname=core<\/p>\n<p>if [ &#8220;$1&#8221; = &#8220;-o&#8221; ]<br \/>\nthen<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0if [ &#8220;$#&#8221; -lt &#8220;3&#8221; ]<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0then<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/># Not enough arguments.<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>echo &#8220;usage:\u00a0<wbr \/>\u00a0gcore [-o filename] pid&#8221;<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>exit 2<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0fi<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0name=$2<\/p>\n<p><wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0# Shift over to start of pid list<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0shift; shift<br \/>\nfi<\/p>\n<p># Create a temporary file.\u00a0<wbr \/>\u00a0Use mktemp if available, but cope if it is not.<br \/>\ntmpfile=`mktemp ${name}.XXXXXX 2&gt;\/dev\/null` || {<br \/>\n<wbr \/>\u00a0tmpfile=${name}.$$<br \/>\n<wbr \/>\u00a0if test -e $tmpfile; then<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0echo &#8220;Could not create temporary file $tmpfile&#8221;<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0exit 1<br \/>\n<wbr \/>\u00a0fi<br \/>\n<wbr \/>\u00a0touch $tmpfile<br \/>\n}<br \/>\ntrap &#8220;rm -f $tmpfile&#8221; EXIT<\/p>\n<p># Initialise return code.<br \/>\nrc=0<\/p>\n<p># Loop through pids<br \/>\nfor pid in $*<br \/>\ndo<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/># Write gdb script for pid $pid. \u00a0<wbr \/><br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>cat &gt;&gt;$tmpfile &lt;&lt;EOF<br \/>\nattach $pid<br \/>\ngcore $name.$pid<br \/>\ndetach<br \/>\nquit<br \/>\nEOF<\/p>\n<p><wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>gdb -x $tmpfile -batch<\/p>\n<p><wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>if [ -r $name.$pid ] ; then\u00a0<wbr \/><br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0rc=0<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>else<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0echo gcore: failed to create $name.$pid<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0rc=1<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0<wbr \/>\u00a0break<br \/>\n<wbr \/>\u00a0<wbr \/>\u00a0\u00a0<wbr \/>fi<\/p>\n<p>done<\/p>\n<p>exit $rc<br \/>\n========================================<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8f6c\u8f7d\u5730\u5740\uff1ahttp:\/\/hi.baidu<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-577","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=577"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/577\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}