2016-11-05 9 views
1

私は成功した(クロス)コンパイルとEclipseとの(リモート - )のデバッグCアプリケーションできるとEclipseの(リモート)デバッガを使用する方法。 のspawn-fcgiの(または同様のプロセスランチャー)

sudo -u www-data /usr/bin/spawn-fcgi -s/tmp/fcgiApp.socket -n /var/www/fcgiApp/fcgiApp.bin 

は、どのような方法があります:しかし、私のような、(彼らはすでに実行しているnginxのWebサーバこのように接続する必要があるため)のspawn-fcgiの使用を開始するときのみ動作FCGI-アプリケーションの束を持っていますEclipse GDBに最新のバイナリをサーバにコピーし、上で概説した特別な方法でアプリケーションを起動し、最後に生成されたfcgiプロセスにアタッチするよう指示します。

括弧内に "cross"と "remote"を入れていることに注意してください。実際の問題(生成されたプロセスのデバッグ)は、同じローカルマシン上でEclipseとWebサーバーを実行しても持続すると思います。

私は答え自分自身、fcgiの持つ特定の問題のためのより正確な回避策を発見した

答えて

0

このコードスニペットのように、アプリケーション自体の中で必要なソケット接続を作成することが可能です:

#if STANDALONE 
    int sockfd = FCGX_OpenSocket("/tmp/fcgiTest.socket", 1024); 
    char command[] = "chmod ag+rwx /tmp/fcgiTest.socket"; 
    system(command); 
#endif 
    FCGX_Request request; 
    FCGX_Init(); 

#if STANDALONE 
    FCGX_InitRequest(&request, sockfd, 0); 
#else 
    FCGX_InitRequest(&request, 0, 0); 
#endif 

デバッグに使用できるスタンドアロンアプリケーション(#define STANDALONE 1を使用)の場合、ソケットは通常のユーザーとして作成され、デバッグの目的で、すべてのユーザー、特にwww-dataに書き込みアクセスが許可されます。サーバ。

デプロイメントの場合、#define STANDALONE 0を使用し、ユーザーwww-dataとしてプロセスを通常通りに使用します(spawn-fcgi)。

関連する問題