mac下的gdb生成core

lion下似乎没有/etc/sysctl.conf
如果是linux下设置的
kernel.core_pattern=/var/core/%t-%e-%p-%c.core
kernel.core_uses_pid=0
也没有用,

sysctl -a查看所有
比如看cpu信息就
sysctl -a|grep cpu
sh-3.2# sysctl -a|grep core
kern.corefile = /cores/core.%P
kern.coredump = 1
kern.sugid_coredump = 0
kern.corefile: /cores/core.%P
kern.coredump: 1
kern.sugid_coredump: 0
machdep.cpu.cores_per_package: 2
machdep.cpu.thermal.core_power_limits: 0
machdep.cpu.core_count: 2
sh-3.2# 

观察core文件存在了/cores/core.%P
定义和linux不同,因为是bsd嘛

su root
ulimit -c
如果是0
则ulimit -c unlimited

写错误程序测试
#include <stdio.h>
int main(void){
	int *a=NULL;	
	*a=0x1;
	return 0;
}


gcc -g test.c

./a.out就在/cores下生成core文件了

gdb -c /cores/core.1111 ./a.out
查看错误在哪行

你可能感兴趣的:(core,sysctl)