1

Unix ボックスにコードとバイナリがあります。CGI によってロードされた Web パッケージ用のバイナリはほとんどありません。リモート デバッグ モードで gdb を使用して通常のバイナリをデバッグしていますが、バイナリが実行されるたびにプロセス ID が変更されるため、Web バイナリはデバッグが困難です。 Visual Studio には、タスク マネージャーに追加してデバッグするオプションがあると聞きました。しかし、Visual Studio をインストールすると、システムが遅くなるのではないかと心配しています。ウェブバイナリ

4

1 に答える 1

0

あなたができる最善のことは、コードをエファクタリングすることです。これにより、ユニットテストシステムまたは同様のものを使用して、CGI コンテキストの外部でコードの大部分をテストできます。

2 番目のステップは、CGI 通信を手動で再生することです。複雑ではありません - 必要な環境変数を設定し、最終的に gdb の下で実行中に POST データをパイプします。

それでも問題が解決しない場合は、Web サーバーをデバッグし、デバッガーに子プロセスを追跡するように依頼する必要があります。最良の方法は、オプションを使用して httpd を開始-Xし、単一のプロセス自体で実行されるようにすることです。次に、gdb をアタッチしてset follow-fork-mode childコマンドを設定します。http://sourceware.org/gdb/onlinedocs/gdb/Forks.htmlで gdb マニュアルを参照してください。

于 2013-01-13T19:59:47.967 に答える