« 【C++】 VisualStudio 2010 でのsnprintf関数 | トップページ | 【SystemC】 cannot have more than one driverエラー »

【Windows】 VisualStudio 2010 でコンソールアプリの実行中断ができない

いやはや、VisualStudioなんて随分ご無沙汰。Visual BasicやらVisual C++やら昔は色々と触ったもんやけどねぇ。

SystemCを使った回路シミュレーションをやろうとしたら、Windows環境ではVisual C++がサポートされていたみたい。Cygwinでも良いんやけど、この際なんでVisualStudio 2010 Express入れてみました。
SystemCのアプリは大抵コンソールアプリとして作るんやけど、ここで問題が発生。
デバッガでソースコードをトレースしている途中に、バグの原因が分かったのでコード修正するために実行中断をしたわけです。にも関わらず何故かコンソールウィンドウが残ってしまっている。
タスクマネージャから強制終了しようと思ったら、なんとプロセスリストにも出てこないのだ。

どうしたものかと調べてみた所、これはどうやらマイクロソフトのバグらしい。プロセスの特権が昇格されてしまうとの情報が。そうか、特権レベルで動いてしまうからユーザレベルからプロセスを止められないのか...。

Visual Studio では、Windows XP を実行しているコンピューター上でアプリケーションのデバッグを停止した後、アプリケーションのコンソール ウィンドウを閉じることはできません。

http://support.microsoft.com/kb/982551/

結局、978037のセキュリティ更新プログラムをインストールする事が対策のようです。

無事解決しました。

(2011/01/04追記)

訂正事項です。

完全に誤解を招く書き方をしていましたが、978037のセキュリティ更新プログラムをインストールする事は対策ではなく原因です。で、978037の情報ページに本件の対策パッチがリリースされているので、それを適用する事が解決方法になります。このパッチは正式なバージョンではないためダウンロードにはメールアドレス等の登録が必要です。

発生条件はWindows XP SP2 or SP3で978037のパッチをインストールしている事のようです。逆にこのセキュリティ更新プログラムをアンインストールしても良いのやけどね。

« 【C++】 VisualStudio 2010 でのsnprintf関数 | トップページ | 【SystemC】 cannot have more than one driverエラー »

SystemC」カテゴリの記事

Windows」カテゴリの記事