web-dev-qa-db-ja.com

Visual Studio 2017のデバッグエラー:関数* .toStringを評価する際の安全でないアボートを防ぐため、実行が許可されているすべてのスレッド

Visual Studio 2017をバージョン15.8.2に更新しました。

この更新後、デバッグ中にこれらのエラーが発生し始めました。

Error Image 1

Error Image 2

Error Image 3

エラーメッセージは次のとおりです。

Visual Studioのデバッグエラー:実行が許可されているすべてのスレッドの関数* .toStringを評価するときに、安全でないアボートを防ぐため。これにより、プロセスの状態が変更され、発生したブレークポイントはスキップされた可能性があります。

このエラーは頻繁に発生し、しばらくするとVisual Studioがクラッシュします。

Visual Studioを再度アンインストールしてインストールし、設定をリセットしようとしましたが、運がありませんでした。

「プロパティの評価とその他の暗黙的な関数呼び出しを有効にする」オプションを無効にすると、プロパティの上にマウスを移動して評価しようとすると同じエラーが発生します。それなしでデバッグすることは非常に難しく、このビルドの前に問題はありませんでした。

問題はC#とVisual Basic(.NET)でも同じです。

この問題の修正はありますか?私のチームはVisual Studio 2017バージョン15.7.4で同じプロジェクトで問題なく作業しています

12

同じエラーメッセージを追加しますが、関数名は異なります。

関数 'Microsoft.VisualStudio.Debugger.Runtime.Tracing.Refresh'を評価する際の安全でない中断を防ぐため、すべてのスレッドの実行が許可されました。これにより、プロセスの状態が変更され、発生したブレークポイントがスキップされた可能性があります。


これが、この厄介なバグを取り除く方法です。
Visual Studio 2017で
[ツール]→[オプション]→[デバッグ]→[全般]→[管理された互換モードを使用]をオンにします
この記事のおかげで:
https://www.codeart.dk/blog/2018/9/vs2017-debugger-timeout/

11
groch

Visual Studio 2017のデバッグエラー:関数* .toStringを評価する際の安全でないアボートを防ぐため、実行が許可されているすべてのスレッド

このドキュメント によると:

この問題の一般的な理由の1つは、デバッガーがプロパティを評価するときに、検査対象のスレッドの実行のみを許可することです。そのため、プロパティが他のスレッドでデバッグされたアプリケーション内で実行されるのを待っている場合、および.NETランタイムが中断できないように待機している場合、この問題が発生します。

この問題を解決するには、次の2つの解決策を試してください。

  • 解決策1:デバッガーがgetterプロパティを呼び出さないようにするか、
  • 解決策2:ターゲットコードからデバッガーに評価ToStringメソッドを中止するように依頼する

また、上記のエラーが解決しない場合は、以前の古いバージョンのVisual Studioをインストールして、動作するかどうかを確認することもできます。

https://docs.Microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017#top

お役に立てれば。

0
Leo Liu-MSFT