none
Debugger não entra automaticamente RRS feed

  • Pergunta

  • Salve!

    Usando VS2013 Express.

    Ao fazer um testes de recursos com o VS2013 Express coloquei o seguinte código na action Index do meu HomeController:

       int firstVal = 10;
       int secondVal = 0;
       int result = firstVal / secondVal;
    

    O esperado é que o Debugger fosse acionado automaticamente na linha int result = firstVal / secondVal,  já que causa uma exceção de divisão por zero. Só que o Debugger não está entrando e o que acontece é dar aquela página amarela.

    As opções e ajustes para o Debugger estão conforme a imagem abaixo:

    Debugger - Opções e ajustes

    Esse comportamento é por tratar-se de versão Express? O que faço?

    Grato pela atenção de todos.

    Paulo Ricardo Ferreira

    terça-feira, 30 de setembro de 2014 18:01

Respostas

  • Caro Deric,

    Também não tenho essa opção no menu Debug.

    menu-debug

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    Paulo, tente utilizar outra versão do VS, a sua não vai ter esta funcionalidade.

    Marque com útil, se for de ajuda.

    quinta-feira, 16 de outubro de 2014 19:25

Todas as Respostas

  • O debugger está funcionando nas demais linhas? Conseguiu fazer o "attach to process?"
    quarta-feira, 15 de outubro de 2014 17:44
  • Caro Deric Ferreira,

    Se coloco um breakpoint o debugger entra normalmente, mas o comportamento padrão pelo que já vi em alguns livros é que ele seja acionado sempre que houver um erro não tratado. E é isso que não está acontecendo, conforme o que coloquei no primeiro post.

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    quarta-feira, 15 de outubro de 2014 19:18
  • Olá Paulo,

    A interceptação pela IDE só ocorre se ela estiver "monitando" o processo, o que acontece quando usamos o "play" (F5) ou fazemos um "attach to process". Do contrário, o seu ambiente de desenvolvimento nem "saberá" que a sua aplicação está no ar para interceptar o código e gerar o breakpoint, pois os binários nem estão carregados no VS!


    Marque como resposta.

    Abs.,

    • Sugerido como Resposta Deric Ferreira quarta-feira, 15 de outubro de 2014 19:37
    quarta-feira, 15 de outubro de 2014 19:37
  • Caro Deric,

    No exemplo que citei no primeiro post fiz exatamente assim: na IDE, pressionei F5 e o que recebi foi a página amarela de erro e não a entrada do Debugger.

    Como, então, verifico se a IDE está monitorando o processo? Ou, como "attacho" o processo?

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    quinta-feira, 16 de outubro de 2014 13:00
  • Verifique seu web.config e veja se a tag compilation tem o atributo debug=true.

    Segundo, no VS use o atalho CRTL + ALT + P e selecione o processo "WebServer".

    Marque como resposta.

    • Sugerido como Resposta Deric Ferreira quinta-feira, 16 de outubro de 2014 13:23
    quinta-feira, 16 de outubro de 2014 13:23
  • Caro Deric,

    Sim, o atributo debug = "true" está definido na tag compilation do web.config.

    Já com relação ao segundo passo, ao usar o atalho sugerido (CTRL + ALT + P) nada acontece. Nenhuma janela é aberta, nenhum menu é selecionado. Nada.

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    quinta-feira, 16 de outubro de 2014 13:48
  • Por favor, vá em Tools -> Attach to Process... -> Habilite o check "Show processes from all users" -> Selecione o processo WebServer.exe
    quinta-feira, 16 de outubro de 2014 14:38
  • Caro Deric,

    Conforme pode ser visto na imagem abaixo, não tenho essa opção no menu Tools.

    menu-tools

    Acho que tem mesmo a ver com o fato de o meu VS2013 ser Express!

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    quinta-feira, 16 de outubro de 2014 18:02
  • Caro Deric,

    Conforme pode ser visto na imagem abaixo, não tenho essa opção no menu Tools.

    menu-tools

    Acho que tem mesmo a ver com o fato de o meu VS2013 ser Express!

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    Verifique em  Debug->Attach to Process
    quinta-feira, 16 de outubro de 2014 18:08
  • Caro Deric,

    Também não tenho essa opção no menu Debug.

    menu-debug

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    quinta-feira, 16 de outubro de 2014 19:09
  • Caro Deric,

    Também não tenho essa opção no menu Debug.

    menu-debug

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    Paulo, tente utilizar outra versão do VS, a sua não vai ter esta funcionalidade.

    Marque com útil, se for de ajuda.

    quinta-feira, 16 de outubro de 2014 19:25
  • Caro Deric,

    Inviável. Não vou ter como.

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    sexta-feira, 17 de outubro de 2014 11:53
  • Não é por nada não mais tentou colocar seu código entre o bloco try...catch?

      int firstVal = 10;
       int secondVal = 0;
       int result =0;
    
    
    try
    {
      result = firstVal / secondVal;
    }
    catch(Exception ex)
    {
     throw new Exception("Ops Ocorreu um erro aqui "+ex.Message);
    }

    Tente assim e veja se acontece algo
    sexta-feira, 17 de outubro de 2014 12:20
  • Caro Mr. GMSOFT,

    Conforme descrito no 1º post, estava testando os recursos do VS 2013 Express a partir de exemplos lidos em alguns livros. E em um dos exemplos mostrava essa capacidade do Debugger de ser acionado automaticamente em situações como a que coloquei propositadamente no código.

    Ou seja, no código do exemplo não estou preocupado com a lógica de tratamento de erros. Porque é justamente esse o ponto: descobrir exceções ainda não tratadas. E estas deveriam causar uma intervenção do Debugger.

    As imagens a seguir ilustram o que queria ver funcionando no meu VS2013:

    Ambas imagens extraídas do e-book Pro ASP.NET MVC 5 (Adam Freeman).

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    sexta-feira, 17 de outubro de 2014 13:11
  • De fato PRicardo isto acontece em todo VS. Como já disse somente no seu isto não está funcionando...
    sexta-feira, 17 de outubro de 2014 13:22
  • Humm entendi, o meu só funcionou depois que eu ativei isso aqui no debug, veja se não é seu caso:


    sexta-feira, 17 de outubro de 2014 13:47
  • Caro Mr. GMSOFT,

    Essa opção também não está disponível no menu DEBUG da minha versão do VS2013.

    Grato pela sua atenção.

    Paulo Ricardo Ferreira

    sexta-feira, 17 de outubro de 2014 16:15
  • Hum entendo, então deve ser limitação da versão express., essa versão minha é a completa do VS2013.
    sexta-feira, 17 de outubro de 2014 16:42