none
デバッグを実行中、停止するとコンソールが残り消すことができない。 RRS feed

  • 質問

  • Windows XP Proffessional

    VC2005 コンソールアプリケーションを作成しています。

    関係するか分かりませんが、プログラムからDLLを使用しています。

    このプログラムをデバッグ版で実行している最中にメニューからデバッグの停止を選択すると

    プログラムは終了するもののコンソールが残ってしまいます。

    タスクバーにプロセスが残っているわけでもなく、コンソールの×をクリックしても画面が消えません。

    しかも、スタートメニューでシャットダウンしてもPCが終了しなくなるため、スイッチによる強制終了が必要になってしまいます。

    色々調べたところ、アプリケーションのプロパティのデバッガの設定で、デバッガタイプを”ネイティブのみ”にしたところ、この現象が起きなくなりました。

    解決したかのように見えますが、なぜ、消えるようになるのか理由が分かりません。

    ご教授頂けますでしょうか。

    2010年12月9日 10:00

回答

  • 参考までに、Windows XP ではデバッグで停止するなどすると、コンソールウィンドウが閉じられなくなることがあります。
    http://support.microsoft.com/kb/982551/
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク rieko kume 2010年12月10日 1:34
    2010年12月9日 13:30
    モデレータ

すべての返信

  • 参考までに、Windows XP ではデバッグで停止するなどすると、コンソールウィンドウが閉じられなくなることがあります。
    http://support.microsoft.com/kb/982551/
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク rieko kume 2010年12月10日 1:34
    2010年12月9日 13:30
    モデレータ
  • 修正プログラムをダウンロードして、デバッガのタイプを元に戻し(自動)実行したところ、現象が起こらなくなりました。

    大変助かりました。ありがとうございます。

    ついでで申し訳ありませんが、このプロパティにあるデバッガタイプですが、プロパティのヘルプをみてもどの場合にどの項目を設定するのかが良く分かりませんでした。

    ”自動”は実行ファイルの状況に依存するということとして、ネイティブやマネージメントにすると何かどうなるのでしょうか。

    アプリケーションの種類によって適切な設定は変わってくるとは思いますが、自動以外にする場合、デバッグできる機能や範囲が制限されたりするということなのでしょうか。

    宜しくお願いいたします。

    2010年12月10日 1:34
  • ”自動”は実行ファイルの状況に依存するということとして、ネイティブやマネージメントにすると何かどうなるのでしょうか。

    Windows クライアントのデバッガには大きく分けて、マネージコードに対するデバッガとネイティブコードに対するデバッガがあります。
    前者は .NET Framework アプリケーションのデバッガで、C# や VB.NET、C++/CLI で書かれたコードのデバッグになり、後者は C++ ネイティブで書かれたコードのデバッグになります。

    デバッグの種類が「マネージ」の場合、.NET Framework アプリケーションの部分はデバッグできますが、それが利用するネイティブ DLL などのネイティブコードはデバッグできません。
    「ネイティブ」の場合はその逆で、マネージコードをデバッグするための機能が一部使えないと思われます。(このあたり不正確な表現を含むかもしれません)
    「自動」の場合は、デバッグ対象のプログラムがマネージかネイティブかを判別し、そのどちらかを自動的に選びます。
    「混合」の場合は、マネージコードとネイティブコードの両方のデバッガが有効になります。

    たとえば、ユーザインターフェース部分が C#、DLL 部分が C++ ネイティブで書いたようなプログラムをデバッグする場合は、「混合」に設定しないと、ネイティブ部分がデバッグできません。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年12月11日 14:02
    モデレータ
  • 大変よくわかりました。

    DLL部分のデバッグができず困っていました。

    これからデバッグで色々ためせそうです。

    ご教授ありがとうございました。

    2010年12月12日 12:02