• ベストアンサー

CGIプログラムのデバッグ

VisualC++5.0で、CGIのモジュールを作成してます。 これからで出来上がったプログラムのテストを行おうとして気づいた点があるのですが... この処理の中では、送信されてきたパラメータを解析しようと、 環境変数の"CONTENT_LENGTH"や"QUERY_STRING"を取得する処理をやっているのですが、 実際にVC++5.0のデバッガを動かしてみると、上の環境変数が設定されてない(当たり前ですが...) ために、null値しかこなくデバッグできずにいます。 VC++5.0のデバッグ機能で上の環境変数を設定しておきたいのですが、 何か良い方法はご存知ないでしょうか?

noname#149114
noname#149114

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

そのソースでローカルに getenv() を再定義してしまう。 例えば、 static char* getenv(const char* name) {   if (strcmp(name, "QUERY_STRING") == 0) {     return "a=aaa&b=bbb&c=ccc";   } else if (...) {     ...   } } ... 以下、実際に getenv() を呼び出している部分。 デバッグの最中に環境変数を変更する必要が無いのであれば、 手で環境変数を設定してから Developer Studio を起動する という手もありますが...

その他の回答 (1)

  • kenbo00
  • ベストアンサー率0% (0/4)
回答No.2

VC++5.0を使ったことがないのでよくわかりませんが、 プロジェクトの設定のデバックでプログラムの引数と いうのであるのでそこで環境変数の値を設定してあげるとできると思います。

関連するQ&A

  • gdbを使ったデバッグの方法について

    Linux環境でC言語プログラムを開発している者です。 デバッグをgdbで行おうと思っているのですが、-gオプションを付けてgdb ./a.out でCの実行モジュールを使ったデバッグは行ったことはあるのですが、以下のようなshellスクリプト内で環境変数の設定を行い、設定した環境変数下で./a.out内にbreakポイントを設定するにはどうすればいいのでしょうか?ご教授お願いします。 Test.shの内容 #!/bin/sh export ftn22=’/home/test’ ./a.out Cの実行モジュール

  • CGIでXML解析したいです

    この質問はCGIで投稿したのですがこちらの方が適切ですかね? XML形式のクエリーを送信させてそれをPERLで解析したいのですがうまくいきません。 <LOGIN USERNAME="hanako" PASSWORD="875" /> 上記形式のXML(将来的には情報を付加)なんですがFLASHから生成させています。 環境変数など調べてみたのですがメソッドはPOST,CONTENT_LENGTHもしっかり入っています。 どこに送られてきたデータがあるのでしょうか、またXMLを解析するモジュールでもあるのでしょうか(XML::DOM,PARSER?使用方法が乏しいです)、よろしくお願いします。

  • VC++のデバッグ方法

    いつもお世話になっています。 今回はVC++6.0でのデバッグについてお聞きしたいです。 デバッグをする際、たとえば if (i > 1) { 処理 } という条件があったとして、環境が整っていないなどの理由で 条件を満たせないけど、処理の確認はしたい時、 デバッグであったらできるのでしょうか? 要するにデバッグのときだけ擬似的?(一時的?)にif文を無視することは できるのでしょうか? ご教授お願いします。

  • メモリリークのデバッグ

    プログラムの実行時にエラーで停止してしまいます。 数値計算系のプログラムで反復計算を行っています。 数万回反復させても大丈夫なのに100万回くらい反復 計算するとプログラムが停止します。 場合によりパソコンがフリーズします。 メモリ関連が原因であることは想像できるのですが デバッグの方法がわかりません。計算の途中にでてくる 関数等でつかわれている変数でmallocしたものは全て 解放しているつもりですがどこかおちがあるのかもしれません。オチがある場合どこを解放しわすれているのか 現在つかめていません。 VCをつかっているのですがデバッガを使って実行途中の メモリの状態を確認する方法など、この問題を解決する 為に有効であると思われる方法をご存じでしたら教えて ください。 windows2000 visualC++6.0professional メモリ256MB

  • JITデバッグ

    Windows8でWebカメラで作成したビデオファイル(wmvの拡張子)をWindowsXP に移し、トリミングをして保存したらJITデバッグのエラーが出ました。 ************** JIT デバッグ ************** Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、 またはコンピュータ (machine.config) の構成ファイルの jitDebugging 値を system.windows.forms セクションで設定しなければなりません。 アプリケーションはまた、デバッグを有効にしてコンパイルされなければ なりません。 例: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、 ハンドルされていない例外はすべてコンピュータに登録された JIT デバッガに設定されなければなりません。 どう処理したらよいですか?

  • Androidデバッグ実行時のエラーが解消できない

    Eclipse環境、Android-Studio環境ともに、 デバッグ時に以下のエラーが急に発生するようになりました。 Waiting for Debugger Application XXX is waiting for the debugger to Attach ※実機orエミュレータ上でダイアログにて起動時に一瞬表示されます。 以前までは問題なくずっとデバッグできたんですが。。 ネットで調べて再起動など試すも変わらず。 開発環境を入れなおしても変わらず。 デバッグポイントで止まって変数の中を見たりと、 デバッグ自体はできていそうなのですが、 このエラーの解消方法、 もしくはエラーの内容・影響範囲が分かる方がいれば教えていただけないでしょうか?

  • PHPEclipseを使ってデバッグするには?

    WindowsXP上でPHPの開発環境を作ろうと思っています。 開発ツールはEclipseのプラグインであるPHPeclipseが便利そうなのでこれで行こうと思います。 その為に以下の手順で開発環境を整えたのですが、PHPのデバッガがうまく動きません。 ブレークポイントを設定してもスルーしてしまいます。 設定手順 ・XAMPP for Windows 1.5.3aをインストール ・php-switch.batによりPHP4(PHP4.4.2-pl1)に変更 ・jdk-1_5_0_08-windows-i586をインストール ・All-In-One Eclipseをインストール(Eclipse 3.2.0) ・PHPeclipse 1.1.8をインストール ・php_db.dll-4.4.2をphp_db.dllに改名しphp.iniで設定されたextension_dirにコピー。 ・xampp\apach\bin\php.iniを変更。   implicit_flush = On   [debugger]   extension=php_dbg.dll   debugger.enabled= true   debugger.profiler_enabled= tru   debugger.profiler_enabled = true   debugger.JIT_host = clienthost   debugger.JIT_port = 7869 ・pnp.iniをxampp\php下にコピー。 ・httpd.confにaliasをワークスペース下が"http://localhost/alias/プロジェクト名/phpファイル名"で参照できるように設定。 ・Eclipseの「ウィンドウ」→「設定」より"PHP External Tools"の各項目を設定 これで一応プロジェクトが作成でき、Eclipseの「実行」→「構成およびデバッグ」で表示されるダイアログで該当プロジェクトを選択し「デバッグ」ボタンを押すとブレークポイントで、止まらずそのまま最後まで実行してしまいます。 ブレークポイントで実行を止めてステップ実行しながらデバッグするにはどうしたら良いのでしょうか? なにか解りましたらアドバイスよろしくお願いいたします。

    • 締切済み
    • PHP
  • メールソフトのデバッグ

    Vista上で、VC++2005を使って メールソフトを作っています。 POPサーバーからデータを取り込むとき データの一部が破壊されたりします。 こんなかんじです。 --MessBoundary-f2zN5hkcQEBzRoAAsioFS Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7BIT フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ Content-description: Mail message body デバッグしながら、 データを取り込むと上のようなことにはならず、 きちんと取り込めます。 なお、取り込んだデータはすぐに、SQLiteに入れています。 そこで、 どんなことに注意しながらデバッグしたら バグの原因を見つけられるでしょうか? アドバイスをお願いします。

  • eclipse、javaでデバッグするとき

    eclipse、javaでデバッグするとき visual studioのようにマウスでカーソルを任意の行へ移動して 処理を続行するような機能がないようです、あるとすごく便利 なのですが、仕方ないのでeclipse のときはたとえば if( func1() != null ) などどとあった場合 if がtrueの場合をデバッグしたい場合 func1の中ステップインしてreturn trueとなるように変数の書き換えで行います。 かなり骨の折れる作業なのですがこれがVSのようにマウスのドラッグでできると 助かります。ぜひ便利な方法がありましたらよろしくお願いします。 また、return func() などの場合 ここでfuncに入らずにreturn値を任意に設定 する方法はないでしょうか? 以上よろしくお願いします。

  • windowsプログラムのデバッグ

     最近VCでwin32API Applicationを作り始めたのですが イベントに対する挙動をチェックしたいのですが方法がわかりません。  今まではConsoleプログラムだけなのでプログラムが動かなかった場合、どこまで動いているのかprintfで チェックしていたのですがwindowsプログラムの場合どうすればそのような動作チェックができるのでしょうか。  プログラム自体はwaveIn、waveOut系を使った録音・再生するだけのプログラムです。 具体的なバグは録音終了を表すMM_WIM_DATAメッセージが 送られてきた場合に再生ボタンを使用可したいのですが 設定した録音時間の3秒をすぎても使用可能になりません。 デバッグ方法がわかればMM_WIM_DATAが本当に行われているのか、 行われていた場合どこでとまっているのか、がわかると思うので教えて頂きたいです。 【開発環境】 環境:VC++6.0ProffessionalEditon OS:Windows2000 【その他】 C言語の知識は入門書を一通り理解できる程度。 リソースファイルは使用しておりません。

専門家に質問してみよう