2015-06-20 63 views
1

我遇到一個問題,我不知道如何調試它用C++編寫,並根據fastcgi一個FCGI程序。如何調試快速通用網關接口(FCGI)程序?

的程序由Lighttpd的spawn-fcgi管理和nginx的fastcgi的模塊調用。

我寫了一個shell腳本重啓產卵-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; 
} 

現在我wroking上的index.cgi,改變一些代碼(可能與錯誤的邏輯)。程序崩潰了,502 Bad Gateway已在我的瀏覽器中返回。

這是我很難找出什麼是錯在我的計劃,因爲FCGI編程'作爲Nginx的回調函數。所以我不能按調試按鈕,並正常地調用我的程序。

那麼,怎樣才能正確地我和方便地調試我的程序?

+0

使用GDB或添加記錄到程序,或兩者兼而有之。 –

回答

0

呀,GDB附加運行過程中調試將有很大的幫助。