我遇到了一个问题,我不知道如何调试用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已成功构建,只需将一些字符串打印出来即可。

而我在nginx中的配置:

location / {
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
}


现在,我在index.cgi上工作,更改一些代码(可能是逻辑错误)。程序崩溃,浏览器返回了502 Bad Gateway。

我很难找出程序中的错误,因为fcgi progam充当nginx的回调函数。因此,我无法按“调试”按钮并正常调试程序。

那么如何正确,方便地调试程序?

最佳答案

是的,gdb附加正在运行的进程调试会很有帮助。

关于c++ - 如何调试快速通用网关接口(interface)(FCGI)程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30950094/

10-14 22:51
查看更多