Is there asm nop equivalent in java?
debugging, java
Solution
In bytecode you have a `nop` instruction, but there's no `nop` statement in the Java language.
You can add an extra `;` on a line by itself and the code will still compile, but that's not much more meaningful than adding an empty line.
Another "does nothing" statement could be:
assert true;
which has no side-effects what so ever, and can be turned off when executing the program.
As it turns out, `assert true` does not seem to generate any bytecode instructions, which causes break-points on assert true to be skipped all together. Eclipse is however able to break on a statement such as
assert Boolean.TRUE;
which is quite similar.
Problem
When I program C/C++ with Visual Studio I often use `__asm nop;` command to insert a noop code in order to have something to break on. For instance: ``` if (someCondition()) { __asm nop; } ``` I have no idea what to do when the condition occurs, but I want to stop the execution and examine the current state. Sometimes `someCondition()` is simple enough to create a conditional breakpoint, but conditional breakpoints slow down the execution significantly, besides it is not always possible. Now, in C# I break into the debugger directly either by calling `System.Diagnostics.Debugger.Break()` or `System.Diagnostics.Debugger.Launch()`. Now I am forced to program Java and until now I have found no better alternative than just do `System.out.println("bla-bla")` and set a breakpoint there. Again, please consider the case when a conditional breakpoint is not feasible. So, I wonder - is there an `__asm nop` or `System.Diagnostics.Debugger.Break()` alternative in Java?