Ao percorrer o código JavaScript no depurador do Google Chrome, como encerro a execução do script se não quero continuar? A única maneira que encontrei é fechar a janela do navegador.
Pressionar "Recarregar esta página" executa o restante do código e até envia formulários como se estivesse pressionando F8 "Continuar".
ATUALIZAÇÃO :
Ao pressionar F5 (Atualizar) enquanto um script está em pausa:
- O Google Chrome (v22) executa o script. Se o script enviar uma solicitação HTTP, a resposta HTTP para essa solicitação será exibida. A página original não é atualizada.
- IE 9 apenas congela. No entanto, o IE tem uma opção "Stop Debugging" que, quando pressionada (desde que você não tenha pressionado F5 anteriormente), continua executando o script fora do depurador.
- O Firebug se comporta de maneira idêntica ao Chrome.
Fechar e abrir novamente a janela do navegador nem sempre é a próxima maneira mais fácil, pois isso mata o estado da sessão do navegador e isso pode ser importante. Todos os seus pontos de interrupção também são perdidos.
ATUALIZAÇÃO (jan de 2014) :
Atualizar durante a depuração:
- Chrome v31: permite que scripts sejam executados e interrompidos em outros pontos de interrupção (mas não envia solicitações de ajax) e, em seguida, é atualizado.
- IE 11: a atualização não faz nada, mas você pode pressionar F5 para continuar.
- Firefox v26: permite que scripts sejam executados, mas não para em mais pontos de interrupção, envia solicitações de ajax e atualiza.
Tipo de progresso!
Navegue para a mesma página durante a depuração:
- Chrome v31: o mesmo que Atualizar.
- IE 11: scripts são encerrados, nova sessão do navegador é iniciada (o mesmo que fechar e abrir novamente).
- Firefox v26: nada acontece.
A juacala também sugeriu uma solução alternativa eficaz. Por exemplo, se você estiver usando jQuery, executando delete $ do console interromperá a execução assim que qualquer método jQuery for encontrado. Eu testei em todos os navegadores acima e posso confirmar que está funcionando.
ATUALIZAÇÃO (mar de 2015) :
Finalmente, após mais de 2 anos e quase 10 mil visualizações, a resposta certa foi dada por Alexander K. O Google Chrome possui seu próprio Gerenciador de Tarefas, que pode interromper um processo de aba sem fechar a própria aba, mantendo todos os pontos de interrupção e outras coisas intactas.
Até fui ao BrowserStack.com para testá-lo no Chrome v22 e descobri que isso estava funcionando dessa maneira, mesmo naquele momento.
A solução alternativa de Juacala ainda é útil ao depurar no IE ou Firefox.
ATUALIZAÇÃO (Jan 2019) :
Finalmente, as Ferramentas de Desenvolvimento do Chrome adicionaram uma maneira adequada de interromper a execução de scripts, o que é bom (embora um pouco oculto). Consulte a resposta de James Gentes para obter detalhes.
debugger;
no console das ferramentas de desenvolvimento e ele imediatamente colocará as coisas no depurador e interromperá o script.Respostas:
No Chrome, existe o "Gerenciador de tarefas", acessível por Shift+ ESCou por
Você pode selecionar a tarefa da página e finalizá-la pressionando o botão "Finalizar processo".
fonte
chrome 48
isto só irá fechar a ferramenta Dev, e não terminá-lo, reabri-lo, você pode ver o programa ainda está em execução (tried setInterval()
)A partir de abril de 2018, você pode interromper loops infinitos no Chrome :
Observe também as teclas de atalho: F8e Ctrl+\
fonte
body
elemento aqui no SO, defina uma "quebra em -> modificações na subárvore" e cliquei em qualquer lugar. O botão aparece na captura de tela que eu publiquei.Uma maneira de fazer isso é pausar o script, observe o código a seguir onde você está atualmente parado, por exemplo:
No console, faça o seguinte:
Em seguida, toque o script: ele causará um erro fatal ao tentar acessar
somethingElse
e o script morrerá. Voila, você encerrou o script.EDIT: Originalmente, eu apaguei uma variável. Isso não é bom o suficiente. Você precisa excluir uma função ou objeto do qual o JavaScript tenta acessar uma propriedade.
fonte
you have to delete a function or an object
um corte tão desagradável! (na interface do usuário que caberia muito bem como matar todos botão)Atualização de abril de 2020
No Chrome 80, nenhuma das respostas atuais funciona. Não existe um botão "Pausar" visível - você precisa clicar com o botão "Play" para acessar o ícone Parar:
fonte
Se você encontrar isso enquanto usa a
debugger
instrução,... então acho que a página continuará sendo executada para sempre até o tempo de execução do js render, ou a próxima interrupção. Supondo que você esteja no modo de interrupção do erro (alternar entre o ícone de pausa), você pode garantir que uma interrupção aconteça ao fazer algo como:
ou talvez chame uma função inexistente:
(Claro que isso não ajuda se você está tentando passo através de funções, embora talvez você poderia adicionar dinamicamente em um
throw 1
ouz()
ou algo assim no painel de Fontes, ctrl-S para salvar, e depois ctrl-R para atualizar ... este no entanto, pode pular um ponto de interrupção, mas pode funcionar se você estiver em um loop.)Se você está executando um loop e espera acionar a
debugger
instrução novamente, basta digitarthrow 1
.Então, quando você pressionar ctrl-R, o próximo lançamento será atingido e a página será atualizada.
(testado com o Chrome v38, por volta de abril de 2017)
fonte
Boa pergunta aqui. Eu acho que você não pode terminar a execução do script. Embora eu nunca tenha procurado por isso, uso o depurador chrome há muito tempo no trabalho. Normalmente, defino pontos de interrupção no meu código javascript e, em seguida, depuro a parte do código em que estou interessado. Quando termino de depurar esse código, normalmente apenas executo o restante do programa ou atualizo o navegador.
Se você deseja impedir que o restante do script seja executado (por exemplo, devido a chamadas AJAX que serão feitas), a única coisa que você pode fazer é remover esse código no console imediatamente, impedindo essas chamadas de ser executado , você poderá executar o código restante sem problemas.
Eu espero que isso ajude!
PS: Tentei encontrar uma opção para encerrar a execução em alguns tutoriais / guias como os seguintes, mas não consegui encontrá-la. Como eu disse antes, provavelmente não existe essa opção.
http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-Script-Debugging-with-C
http://www.nsbasic.com/app/tutorials/TT10.htm
fonte
Referindo-se à resposta dada por @scottndecker à seguinte pergunta , o chrome agora fornece uma opção 'desativar JavaScript' em Ferramentas do desenvolvedor:
...
no canto superior direitoO bom é que você pode parar e executar novamente apenas marcando / desmarcando.
fonte
Você pode fazer isso, mas você deve preparar seu código primeiro.
Instruções para interromper a execução de scripts nas Ferramentas de Desenvolvimento do Google Chrome:
(1) Prepare seu código primeiro, criando uma variável global :
(2) Qualquer local onde você queira sair, teste o valor desta variável:
(3) Pausar a execução do script antes ou antes da (s) linha (s) de teste acima
(4) Alterne para o console
(5) Tipo:
(6) Continue a execução do script. O script será
return false
quando executar o teste da etapa (2) acimaNotas:
(A) Esse truque funciona com variáveis e objetos globais, mas não funciona com variáveis locais. Observe que isto:
newVar = 'never used before';
cria uma nova propriedade do objeto de janela (funciona com o truque acima), enquanto isso:
var newVar = 'never used before';
cria uma variável local (NÃO funciona com o truque acima!)
(B) Portanto, você ainda pode usar esse truque com código já em execução se tiver uma variável global ou um objeto que retornará falso se tiver um determinado valor.
(C) Em uma pitada, você pode usar o truque de juacala e excluir um elemento do DOM (na guia Elementos) que causará um erro de javascript. Por exemplo, suponha que você tenha código
var cartype = $('#cartype').val();
Se você excluir o elemento com ID =cartype
antes dessa linha de código, os js serão interrompidos nessa linha. No entanto, o elemento ainda estará ausente quando você tentar executar novamente o código. O truque descrito acima permite executar e executar novamente o código ad infinitum.Mais notas:
(a) Insira o ponto de interrupção no código: basta digitar
debugger;
uma linha sozinha. Se o DevTools estiver aberto, o script entrará no depurador nesse ponto. Se o DevTools não abrir, o código ignorará a instrução.(b) Deseja evitar pular para a biblioteca jQuery ao depurar código? Caixa preta. Consulte as instruções da caixa preta para o Chrome - ou - para o Firefox
Gratidão (visite e vote acima):
Depuração de Javascript linha por linha usando o Google Chrome
É possível alterar os valores das variáveis javascript durante a depuração no Google Chrome?
fonte
Any place where you may wish to quit, test the value of this variable
Isso é horrível! Quero parar onde quer que esteja pisando no momento, não sei de antemão onde isso pode estar!Você pode pausar em qualquer padrão XHR que eu acho muito útil durante a depuração desse tipo de cenário.
Por exemplo, eu dei um ponto de interrupção em um padrão de URL que contém "/"
fonte
Se você tiver um loop não autorizado, pause o código no depurador do Google Chrome (o pequeno
||
botão " " na guia Fontes).Volte ao Chrome, abra "Gerenciador de tarefas" ( Shift+ ESC), selecione sua guia, clique no botão "Finalizar processo".
Você receberá a mensagem Aww Snap e poderá recarregar ( F5).
Como outros observaram, recarregar a página no momento da pausa é o mesmo que reiniciar o loop não autorizado e pode causar bloqueios desagradáveis se o depurador também bloquear (em alguns casos, levando à reinicialização do chrome ou mesmo do PC). O depurador precisa de um botão "Stop". Nota: A resposta aceita está desatualizada, pois alguns aspectos dela estão aparentemente aparentemente errados. Se você me votar, pls explica :) .
fonte
Abra a guia fonte em 'Developer Tools', clique no número da linha em um script em execução, isso criará um ponto de interrupção e o depurador será interrompido por lá.
fonte
Há muitas soluções adequadas para esse problema, como mencionado acima neste post, mas eu encontrei um pequeno hack que pode ser inserido no script ou colado no console do Chromes (depurador) para alcançá-lo:
Isso fará com que a execução seja pausada quando você pressionar
F12
.fonte