Source:
<code>private void processNextQueuedCommand() { if (!fCommandQueue.isEmpty()) { final CommandHandle handle = fCommandQueue.remove(0); if (handle != null) { processCommandSent(handle); MICommand<MIInfo> command = handle.getCommand(); if (command instanceof MIThreadSelect || command instanceof MIStackSelectFrame) { return; <START> } <END> if (!fUseThreadAndFrameOptions || !command.supportsThreadAndFrameOptions()) { final IDMContext targetContext = command.getContext(); final String targetThread = handle.getThreadId(); final int targetFrame = handle.getStackFrameId(); IRunControl runControl = getServicesTracker().getService(IRunControl.class); IMIExecutionDMContext execDmc = DMContexts.getAncestorOfType(targetContext, IMIExecutionDMContext.class); if (runControl != null && execDmc != null && runControl.isSuspended(execDmc)) { if (targetThread != null && !targetThread.equals("0") && !targetThread.equals(fCurrentThreadId)) { fCurrentThreadId = targetThread; resetCurrentStackLevel(); CommandHandle cmdHandle = new CommandHandle( (MICommand<MIInfo>)getCommandFactory().createMIThreadSelect(targetContext, targetThread), null); cmdHandle.generateTokenId(); fTxCommands.add(cmdHandle); } if (targetFrame >= 0 && targetFrame != fCurrentStackLevel) { fCurrentStackLevel = targetFrame; CommandHandle cmdHandle = new CommandHandle( (MICommand<MIInfo>)getCommandFactory().createMIStackSelectFrame(targetContext, targetFrame), null); cmdHandle.generateTokenId(); fTxCommands.add(cmdHandle); } } } if (!(command instanceof RawCommand)) { handle.generateTokenId(); } fTxCommands.add(handle); } } }</code><technical_language>if below, includes check command.supportsThreadAndFrameOptions, this is place in CDT call this function, MIThreadSelect MIStackSelectFrame override default return false. correct thread frame selection nature. remove overriding</technical_language>

Target:
private void processNextQueuedCommand() { if (!fCommandQueue.isEmpty()) { final CommandHandle handle = fCommandQueue.remove(0); if (handle != null) { processCommandSent(handle); if (!fUseThreadAndFrameOptions || !handle.getCommand().supportsThreadAndFrameOptions()) { final IDMContext targetContext = handle.fCommand.getContext(); final String targetThread = handle.getThreadId(); final int targetFrame = handle.getStackFrameId(); IRunControl runControl = getServicesTracker().getService(IRunControl.class); IMIExecutionDMContext execDmc = DMContexts.getAncestorOfType(targetContext, IMIExecutionDMContext.class); if (runControl != null && execDmc != null && runControl.isSuspended(execDmc)) { if (targetThread != null && !targetThread.equals("0") && !targetThread.equals(fCurrentThreadId)) { fCurrentThreadId = targetThread; resetCurrentStackLevel(); CommandHandle cmdHandle = new CommandHandle( (MICommand<MIInfo>)getCommandFactory().createMIThreadSelect(targetContext, targetThread), null); cmdHandle.generateTokenId(); fTxCommands.add(cmdHandle); } if (targetFrame >= 0 && targetFrame != fCurrentStackLevel) { fCurrentStackLevel = targetFrame; CommandHandle cmdHandle = new CommandHandle( (MICommand<MIInfo>)getCommandFactory().createMIStackSelectFrame(targetContext, targetFrame), null); cmdHandle.generateTokenId(); fTxCommands.add(cmdHandle); } } } if (!(handle.getCommand() instanceof RawCommand)) { handle.generateTokenId(); } fTxCommands.add(handle); } } }