Quero forçar o depurador do Chrome a interromper uma linha via código ou usar algum tipo de tag de comentário, como algo parecido console.break()
.
Quero forçar o depurador do Chrome a interromper uma linha via código ou usar algum tipo de tag de comentário, como algo parecido console.break()
.
Respostas:
Você pode usar debugger;
dentro do seu código. Se o console do desenvolvedor estiver aberto, a execução será interrompida. Também funciona no firebug.
setTimeout(function(){debugger;}, 3000);
debugger;
é suportada em todos os principais navegadores. Para obter mais informações: w3schools.com/jsref/jsref_debugger.asp
Configure um botão, clique em listener e chame o debugger;
Exemplo
$("#myBtn").click(function() {
debugger;
});
Demo
Recursos sobre depuração em JavaScript
Você também pode usar debug(function)
, para interromper quando function
é chamado.
Como outros já disseram, debugger;
é o caminho a percorrer. Eu escrevi um pequeno script que você pode usar na linha de comando em um navegador para definir e remover o ponto de interrupção antes da chamada da função:
http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
Na guia "Scripts", vá para onde está o seu código. À esquerda do número da linha, clique em. Isso definirá um ponto de interrupção.
Captura de tela:
Você poderá acompanhar seus pontos de interrupção na guia direita (como mostrado na captura de tela).
debugger
é uma palavra-chave reservada do EcmaScript e recebe semântica opcional desde o ES5
Como resultado, ele pode ser não utilizado apenas no Chrome, mas também Firefox e Node.js vianode debug myscript.js
.
O padrão diz :
Sintaxe
DebuggerStatement : debugger ;
Semântica
A avaliação da produção DebuggerStatement pode permitir que uma implementação cause um ponto de interrupção quando executada em um depurador. Se um depurador não estiver presente ou ativo, esta instrução não terá efeito observável.
A produção DebuggerStatement: depurador; é avaliado da seguinte forma:
- Se um recurso de depuração definido pela implementação estiver disponível e ativado,
- Execute uma ação de depuração definida pela implementação.
- Permita que o resultado seja um valor de Conclusão definido pela implementação.
- Outro
- Seja o resultado (normal, vazio, vazio).
- Retornar resultado.
Nenhuma alteração no ES6.
É possível e há muitas razões pelas quais você pode querer fazer isso. Por exemplo, depurando um loop infinito de javascript próximo ao início do carregamento da página, que impede o carregamento correto do conjunto de ferramentas do desenvolvedor chrome (ou firebug).
Veja a seção 2 de
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
ou apenas adicione uma linha contendo a palavra depurador ao seu código no ponto de teste necessário.
Ponto de interrupção: -
O ponto de interrupção interromperá a execução e permitirá que você examine os valores JavaScript.
Após examinar os valores, você pode retomar a execução do código (normalmente com um botão de reprodução).
Depurador: -
O depurador; interrompe a execução do JavaScript e chama a função de depuração.
A instrução depurador suspende a execução, mas não fecha nenhum arquivo ou limpa nenhuma variável.
Example:-
function checkBuggyStuff() {
debugger; // do buggy stuff to examine.
};
Você também pode definir debug(functionName)
funções de depuração.
https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
Existem várias maneiras de depurar o código JavaScript. As duas abordagens a seguir são amplamente usadas para depurar JavaScript via código
Usando console.log()
para imprimir os valores no console do navegador. (Isso ajudará você a entender os valores em determinados pontos do seu código)
Palavra-chave do depurador. Adicione debugger;
aos locais que você deseja depurar e abra o console do desenvolvedor do navegador e navegue até a guia Fontes.
Para obter mais ferramentas e maneiras pelas quais você depura o Código JavaScript, são fornecidas neste link pelo W3School .
Eu não recomendaria debugger;
se você apenas deseja matar e interromper o código javascript, pois debugger;
irá congelar temporariamente o código javascript e não para permanentemente.
Se você deseja matar e interromper adequadamente o código javascript ao seu comando, use o seguinte:
throw new Error("This error message appears because I placed it");
debugger;
ou apenas usa pontos de interrupção regulares na barra de ferramentas do desenvolvedor?