Você pode usar o soltar do Eclipse para enquadrar comando inserir novamente o método atual a partir do topo. Mas ele não desenrola nenhuma alteração de estado que tenha ocorrido; portanto, pode não funcionar dependendo do tipo de método em que você está.
Outra ferramenta muito legal que realmente permite dar um passo à frente no tempo é o Omniscient Debugger . Ele funciona instrumentando as classes conforme elas são carregadas no carregador de classes, para que possa gravar tudo o que seu código faz. Pode fazer coisas muito legais, como responder "quando, onde e por que esse campo recebeu seu valor atual?". A interface do usuário é bastante desajeitada e pode ser difícil lidar com grandes bases de código, mas, em alguns casos, pode economizar muito tempo.
Atualização : o Chronon fornece um produto comercial que ele descreve como um "DVR para Java", que parece fazer as mesmas coisas que o ODB.
Além do que foi mencionado nas respostas anteriores - ou seja, o recurso de queda no quadro do Eclipse na exibição de depuração , que reinicia a depuração mais cedo no quadro da pilha (mas não reverte os dados globais / estáticos) e o depurador Omniscient , que é um pouco bruto e não muito evoluindo - existem algumas ferramentas baseadas no Eclipse que podem ser usadas para "voltar" no tempo (de execução):
O JIVE estende o depurador Java do Eclipse com a capacidade de registrar os estados do programa. A perspectiva JIVE fornece alguns diagramas UML úteis que são atualizados enquanto o programa está em execução. Esses diagramas fornecem uma visão geral do estado do aplicativo (diagrama de objetos) e do rastreamento de pilha (diagrama de sequência). Você pode consultar o rastreamento memorizado e voltar e avançar no tempo e ver os diagramas correspondentes.
O Diver grava apenas chamadas de método e realmente não registra estados de programa como o JIVE. Todo evento de chamada de método é armazenado para recuperação e análise posteriores. Ele estende as configurações de Java Run and Debug principalmente para especificar filtros. O rastreamento pode ser pausado / retomado / filtrado em tempo de execução. Uma vez gravada, a perspectiva do Diver pode exibi-la em um diagrama de seqüência interativo.
JIVE e Diver são projetos de código aberto emitidos a partir de pesquisas acadêmicas. Em novembro de 2012, os dois projetos estão ativos.
O Chronon é um produto comercial, mas eles têm licenças gratuitas para estudantes e projetos de código aberto. Pelo que está sendo reivindicado em seu site, é provavelmente o gravador mais abrangente, pois é capaz de reproduzir o histórico gravado, avançar e retroceder, permitindo, como dizem, a depuração de viagens no tempo. O Eclipse também não é necessário para a gravação.
Todos esses plugins são bastante ambiciosos em recursos, portanto, é melhor ter uma boa máquina de especificações e usar seu recurso de filtro. Um requisito definido para executá-los com êxito é estender o espaço de heap no eclipse.ini .
No meu caso, tentei usar o JIVE e o Diver para depurar um programa de análise XML, mas sempre acabava congelando o eclipse devido à falta de recursos. O Diver pode ser complicado para rodar no Linux de 64 bits , ele funciona no ubuntu 32bit e possivelmente em outras distribuições de 32 bits usando essas dicas . O Diver funciona no Windows, melhor ainda em uma JVM do Windows de 64 bits + 64 bits, caso contrário, você estará limitado a um espaço de heap máximo de 1,3 a 1,6 Gb em janelas de 32 bits . O JIVE funciona muito bem no meu Linux de 64 bits e parece funcionar bem em outras plataformas.
fonte
Sim , o Eclipse CDT oferece suporte ao recurso histórico do depurador.
Abra Configuração de depuração -> Depurador -> Ativar depuração reversa na inicialização .
Do que você pode pressionar
shift+F5
oushift+F6
para recuar comoF5
ouF6
para recuar .fonte
Sou tendencioso, mas Chronon faz exatamente o que você está procurando.
O Drop to Frame não está exatamente voltando atrás, pois se o método mudou alguma coisa no heap, ele não será revertido.
fonte
Eu também estava procurando esse recurso no eclipse. Eu sei que o estúdio visual pode fazer isso. Na verdade, você pode arrastar o marcador de linha atual e soltar em qualquer lugar no código. Não tenho certeza se as alterações nas variáveis podem ser desfeitas. Mas ainda assim é muito útil e economiza muito tempo. Eu tenho esperado por isso em eclipse por muito tempo.
fonte
A pergunta não especifica uma linguagem Eclipse, e muitas das respostas assumem Java.
Se você estiver usando C ++ e GCC com o depurador GDB, o Eclipse possui o
Run->Move to Line
que faz o trabalho e funciona como a instrução Definir próximo do Visual Studio . Nesse caso, o Eclipse está usando o recurso que está no GDB.Se estiver usando Java, não conheço uma maneira de fazê-lo com o Eclipse ou o Netbeans, embora outras respostas tenham sugerido plug-ins. O Eclipse possui o comando "drop to frame", que funciona para Java na minha versão (Juno SR1). Se eu modificar e salvar o código dentro de uma função no modo de depuração, a linha de execução se moverá automaticamente para o topo da função atual e eu posso continuar a partir daí. Não é o mesmo que especificar a linha, mas é alguma coisa.
fonte