使用調(diào)試器的attach功能調(diào)試多進(jìn)程架構(gòu)的程序

對于多進(jìn)程架構(gòu)的程序,如服務(wù)器程序nginx和php-fpm等,調(diào)試子進(jìn)程需要用到調(diào)試器的attach功能。

下面以Clion和php-fpm為例,調(diào)試步驟如下,其他編輯器/IDE和程序可以作為參考:

  1. 首先,需要將程序的worker子進(jìn)程數(shù)量調(diào)成固定的1個(gè),以便請求/任務(wù)被調(diào)度到固定的進(jìn)程,php-fpm的調(diào)整如下:
# File: etc/php-fpm.d/www.conf
pm = static
pm.max_children = 1
  1. 設(shè)置內(nèi)核參數(shù):
sudo sysctl kernel.yama.ptrace_scope=0

若不設(shè)置這個(gè)參數(shù)會有以下的報(bào)錯(cuò):

com.jetbrains.cidr.execution.debugger.backend.gdb.GDBDriver$GDBCommandException: ptrace: 不允許的操作.
Debugger detached

  1. 啟動程序,最好使用本用戶來啟動:
php-fpm啟動
  1. 點(diǎn)擊Clion的菜單"Run -> Attach to Process",或者使用快捷鍵Ctrl+Alt+5,來啟動Attach界面,篩選進(jìn)程名字,選擇子進(jìn)程:
Attach界面
  1. 在Clion上打上調(diào)試斷點(diǎn),然后用Postman等工具做請求,就可以看到調(diào)試器進(jìn)入到相應(yīng)的位置了:
調(diào)試
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容