A computer-readable medium comprising computer-program instructions for debugging, the computer-program instructions being executable by a processor for: identifying a set of programming constructs representing interesting code by parsing an interesting code list generated via user input, whereby the set differentiates portions of source code compiled to an assembly that are interesting from those portions that are uninteresting; automatically inserting flags and debugging probes into respective programming constructs representing interesting code according to the identifying, the debugging probes being inserted during computer-program compiling operations to generate native code immediately after the prolog of at least one of class methods or static functions, wherein the debugging probes reference an associated flag; enabling at least two flags and thereby activating an associated debugging probe responsive to a JMC stepping command, wherein the JMC stepping command comprises one of a JMC step-in, or a JMC step-out command to be executed on source code by a debugger; executing (306, 308) the native code as a process, the process comprising one or more threads of execution that run-free and unhindered by encountered breakpoints through uninteresting code during a JMC step operation, wherein said debugging probes determine whether a particular thread of execution is performing a JMC step operation when said particular thread of execution has encountered an activated debugging probe by requesting a debugging service to evaluate whether the particular thread of execution that has encountered the activated debugging probe is performing a JMC step operation, wherein the determining includes filtering out threads that are not doing the JMC step operation by decoding the call stack to identify the instruction pointer (ip) and the frame-pointer (fp) of the method associated with the encountered debugging probe; a thread of the one or more threads only being halted in the interesting code when an active one of the debugging probes activated by an associated active flag is encountered by the thread while the thread is JMC stepping through the process, wherein if the JMC-stepping command is a JMC step-in, the debugging service activating all debugging probes and placing a breakpoint after the call to the class method being stepping into, and if the JMC-stepping command is a JMC-step-out, automatically inserting a breakpoint at the return address identified by the first stack frame with a return address to an interesting call method; continuing execution of the process so that the thread of execution will hit the breakpoint and stop in the interesting code; and responsive to completing of the JMC stepping command evidenced by the JMC stepping thread being halted, disabling all the debugging probes by the debugging service. identifying a set of programming constructs representing interesting code by parsing an interesting code list generated via user input, whereby the set differentiates portions of source code compiled to an assembly that are interesting from those portions that are uninteresting; automatically inserting flags and debugging probes into respective programming constructs representing interesting code according to the identifying, the debugging probes being inserted during computer-program compiling operations to generate native code immediately after the prolog of at least one of class methods or static functions, wherein the debugging probes reference an associated flag; enabling at least two flags and thereby activating an associated debugging probe responsive to a JMC stepping command, wherein the JMC stepping command comprises one of a JMC step-in, or a JMC step-out command to be executed on source code by a debugger; executing (306, 308) the native code as a process, the process comprising one or more threads of execution that run-free and unhindered by encountered breakpoints through uninteresting code during a JMC step operation, wherein said debugging probes determine whether a particular thread of execution is performing a JMC step operation when said particular thread of execution has encountered an activated debugging probe by requesting a debugging service to evaluate whether the particular thread of execution that has encountered the activated debugging probe is performing a JMC step operation, wherein the determining includes filtering out threads that are not doing the JMC step operation by decoding the call stack to identify the instruction pointer (ip) and the frame-pointer (fp) of the method associated with the encountered debugging probe; a thread of the one or more threads only being halted in the interesting code when an active one of the debugging probes activated by an associated active flag is encountered by the thread while the thread is JMC stepping through the process, wherein if the JMC-stepping command is a JMC step-in, the debugging service activating all debugging probes and placing a breakpoint after the call to the class method being stepping into, and if the JMC-stepping command is a JMC-step-out, automatically inserting a breakpoint at the return address identified by the first stack frame with a return address to an interesting call method; continuing execution of the process so that the thread of execution will hit the breakpoint and stop in the interesting code; and responsive to completing of the JMC stepping command evidenced by the JMC stepping thread being halted, disabling all the debugging probes by the debugging service.