各位,請教下,我的設備后臺運行的行程無法產生core檔案,但是前端運行產生了檔案。實在搞不懂。大家支支招。
在/etc/profile有加入以下三行
ulimit -c unlimited
echo "1" > /proc/sys/kernel/core_uses_pid
echo "/data/app/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
但仍舊是,后臺運行,程式崩潰后不產生core,前端運行,程式崩潰后產生core;
何解?
uj5u.com熱心網友回復:
解決了,要想讓后臺程式生成core,除了要滿足以上的設定,還必須在應用原始碼里面加上以下代碼:int iRes = RLIMIT_CORE;
struct rlimit stRlim;
/* 允許生成core檔案 */
stRlim.rlim_cur = stRlim.rlim_max = RLIM_INFINITY;
if (0 != setrlimit(iRes, &stRlim))
{
printf("Error: setrlimit failed, %s\n", strerror(errno));
return APP_RET_ERROR;
}
本人如此修改親測可行,有更好方法的也可以留言。
uj5u.com熱心網友回復:
學到了,還真沒研究過后臺程式生成core的方法uj5u.com熱心網友回復:
請問讓后臺生成core的代碼是加在main檔案里面嗎?還是放在其他地方,新手求解答uj5u.com熱心網友回復:
最好是放main里面,這樣行程在任意地方core掉都可以生成core出來
uj5u.com熱心網友回復:
參考:https://acuity.blog.csdn.net/article/details/106672319
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/16070.html
標籤:應用程序開發區
上一篇:Kill行程終止
