1.如何使能/禁用 core dump 功能?
启用:需要2个条件确一不可。
是因为内存不够用了。推荐使用 strace 工具来跟踪此类问题。
busybox 默认的进程栈空间为 8 MB,从嵌入式应用的角度,这么大的进程栈空间有些太大了,在内存紧张的系统,很容易导致线程创建失败。
修改方法有二:
(1) 执行主进程前,执行命令 ulimit 来调整进程的栈空间大小:
ulimit -s
<栈空间大小,单位KB>
(2) 直接修改 busybox 的 init.c 文件。参考 info getrlimit,或者
info setrlimit。
3. 为什么 mount -t nfs 失败?
请确认在 mout 选项中已经使能了 NFS 支持
Location:
│
│
-> Linux System
Utilities
│
│
-> mount (MOUNT [=y])
[*] Support
mounting NFS file systems
启用:需要2个条件确一不可。
编译时通过 make menuconfig
指定在 init 选项下启用
CONFIG_FEATURE_INIT_COREDUMPS。
在根文件系统的根目录下创建名为 .init_enable_core 的空文件:touch /.init_enable_core。
重启系统后生效。
禁用在根文件系统的根目录下创建名为 .init_enable_core 的空文件:touch /.init_enable_core。
重启系统后生效。
删去 /.init_enable_core
文件即可。
重启系统后生效。
2.
pthread_create 失败,说 Cannot allocate memory 这是什么原因?重启系统后生效。
是因为内存不够用了。推荐使用 strace 工具来跟踪此类问题。
busybox 默认的进程栈空间为 8 MB,从嵌入式应用的角度,这么大的进程栈空间有些太大了,在内存紧张的系统,很容易导致线程创建失败。
修改方法有二:
(1)
ulimit -s
(2)
3. 为什么 mount -t nfs 失败?
请确认在 mout 选项中已经使能了 NFS 支持
Location: