我遇到了一个问题,我不知道如何调试用C ++编写并基于fastcgi的FCGI程序。
该程序由Lighttpd spawn-fcgi管理,并由nginx fastcgi模块调用。
我写了一个shell脚本来重启 spawn-cgi :
#! /bin/bash
cgi_default="index.cgi"
process_pid="pid"
param_ip="127.0.0.1"
param_port="9000"
if [ -f "$process_pid" ]; then
pid=`cat $process_pid`
kill -9 $pid &> /dev/null
rm $process_pid
fi
spawn_out=`/usr/local/bin/spawn-fcgi -a $param_ip -p $param_port $cgi_default`
# spawn-fcgi: child spawned successfully: PID: 6423
pid=`echo $spawn_out | cut -d " " -f6`
expr $pid + 0 &> /dev/null
[ $? -eq "0" ] && echo "$pid" > $process_pid
程序 index.cgi 已成功构建,只有 printf 一些字符串才能流出。
我的配置在 nginx :
location / {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
现在我正在使用 index.cgi ,改变一些代码(可能是错误的逻辑)。程序崩溃,我的浏览器返回 502 Bad Gateway 。
我很难找到程序中的错误,因为fcgi程序充当了nginx的回调函数。所以我无法按下Debug按钮并正常使用我的程序。
那么如何正确方便地调试程序呢?
答案 0 :(得分:0)
是的,gdb附加正在运行的进程调试会有很多帮助。