Visual Studio 2017 Debug Error: To prevent an unsafe abort when evaluating the function *.toString all threads were allowed to run

I add the same error message but with a different function name :

To prevent an unsafe abort when evaluating the function 'Microsoft.VisualStudio.Debugger.Runtime.Tracing.Refresh' all threads were allowed to run. This may have changed the state of the process and any breakpoints encountered have been skipped.


This is how I got rid of this pesky bug :
In Visual Studio 2017 go to
Tools → Options → Debugging → General → Check 'Use Managed Compatibility Mode'
thanks to this article :
https://www.codeart.dk/blog/2018/9/vs2017-debugger-timeout/


Visual Studio 2017 Debug Error: To prevent an unsafe abort when evaluating the function *.toString all threads where allowed to run

According to this document:

One common reason for this problem is that when the debugger evaluates a property, it only allows the thread being inspected to execute. So if the property is waiting on other threads to run inside the debugged application, and if it is waiting in a way that the .NET Runtime isn't able to interrupt, this problem will happen.

And to resolve this issue, you can try following two possible solutions:

  • Solution #1: Prevent the debugger from calling the getter property or
  • Solution #2: Have the target code ask the debugger to abort the evaluation ToString method

Besides, if above not resolve that error, you can also install the previous old version Visual Studio to check if it works for you:

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

Hope this helps.