Failed to evaluate breakpoint condition. Reason: Object has been collected

This happens when temporary objects created during the evaluation are collected before the end of the calculation. Usually it may happen when you suspend only one thread and other threads perform GC during this calculation. This will be better handled in 2018.2, sorry for inconvenience.

To avoid this you may add the condition to the code and set the breakpoint inside:

if (<condition>) {
   int a = 5; // set a breakpoint here
}

this is not very convenient but this way you will avoid the issue for sure.