-1

少なくとも 1 日に 2 ~ 3 回、Visual Studio が動かなくなり (私が推測するデッドロック状態で)、回転する便器のようなカーソルが表示され、恐ろしい " Microsoft Visual Studio is Busy " という通知が通知領域に表示されます。

ここに画像の説明を入力

以前は、これが発生したとき、タスク マネージャーで「プロセスの終了」を使用して縁石に追い出さない限り、Visual Studio は何時間も (そしておそらく時間自体の終わりまたは停電まで) そのままでした。

最近、この問題が発生するたびに、別のプロセスが常に潜んでいるように見えることに気付きました。Microsoft.PythonTools.Attacher.exeこれは、Python Tools for Visual Studio プロジェクトの一部です。

ここに画像の説明を入力

私がそのプロセスを強制終了すると、Visual Studio は自分自身が陥った致命的な抱擁から解放され、その道を進むことができます。これは、VS がこれを行うたびに私が注意していることです。

私は Visual Studio 1.0 用の Python ツールをインストールしていますが、私が取り組んでいるプロジェクトは、C# で記述された単純な古い ASP.NET MVC3 アプリです。私は Python コードやライブラリを使用しておらず、多くの場合、Visual Studio のインスタンスを 1 つしか実行していません。

また、このプロセスは開発セッション全体で常に開始/表示されるとは限らず、発生した場合、ランダムな時間に開始するように見えることも観察しています (つまり、最初の 1 時間か 2 時間はそこになく、その後魔法のように表示されます)。タスクマネージャーのプロセスリスト)、しかしそうなると、ある時点で問題が発生することがわかります.

このプロセスがランダムに開始されるように見える理由と、Visual Studio に劇的な方法で干渉している理由を知っている人はいますか?

Windows 7 Ultimate x64 SP1 で Visual Studio 2010 Premium SP1 を実行しています。

4

1 に答える 1

2

[デバッグ]->[プロセスにアタッチ]を実行すると、VSにプロセスのリストが表示され、それらのプロセスで実行されているデバッグ可能なコードの種類が表示されます。この情報を取得するために、VSはインストールされているさまざまなデバッグエンジンにクエリを実行します。したがって、クエリが実行されると、一連のプロセスを調べて、何が起こっているかを確認します。32ビットのプロセスライフであれば簡単です。さまざまなAPIを使用してモジュールを列挙し、プロセスにPythonインタープリターがあるかどうかを確認できます。64ビットプロセスの場合、VS内で実行されており、32ビットプロセスであるため、寿命は少し長くなります。32ビットから64ビットのプロセスのAPIを使用することはできないため、代わりにヘルパープロセスを生成して作業を行います。

このヘルパープロセスは、どういうわけかシステム上でゾンビになりつつあるようです。VSをそれに接続して、バグでスタックトレースを送り返すことができれば素晴らしいと思います。ただし、ヘルパープロセスが応答しない場合は、多層防御とタイムアウトも提供する必要があります。

最後に、それを強制終了することは一般的に安全であるはずです。ステートフルなことは何もしていません。必要なときに新しいものを開始します。

Debug-> Attach to Process for Pythonデバッグを使用したことがない場合は、.pkgdefファイルに簡単なファイル更新があり、追跡して投稿すると、この問題は完全に解消されます。

于 2012-05-26T05:59:07.610 に答える