O projeto do Visual Studio 2015 não é mais executado no modo de depuração


95

Isso é o que eu obtenho mesmo quando executo a configuração de depuração:

A forma como fiz isso mostrar foi habilitando "Just My Code" e avisando se não há nenhum código de usuário na inicialização. Isso é algo que aconteceu recentemente com nosso projeto, e não tenho certeza do que fizemos para causar isso. Mas não fui capaz de consertar. Os pontos de interrupção não disparam e a observação rápida dá resultados estranhos.

Tentei pesquisar o problema no Google, mas nenhuma das soluções padrão de "pontos de interrupção não disparam" funcionou. Estou sem ideias.

Verifiquei o gerenciador de configuração e todos os projetos também estão definidos como Depurar.

Insira a descrição da imagem aqui

Desativei "Habilitar otimizações" e não recebo mais a caixa de diálogo "você está depurando uma versão de lançamento". Ele é executado e para em pontos de interrupção novamente! No entanto, a janela de saída exibe isso na inicialização:

Os símbolos do módulo 'Navigo.exe' não foram carregados.

  1. Use uma configuração de compilação de depuração ou desative a opção de depuração 'Ativar Just My Code'.
  2. Verifique as configurações de 'Símbolos' nas opções de depuração.

Portanto, isso resolve meu problema principal de não ser mais capaz de usar pontos de interrupção e pop-up. O que é estranho, já que pensei que você precisava carregar símbolos para que os pontos de interrupção funcionassem. Então, como os pontos de interrupção funcionam se os símbolos não são carregados? Talvez seja apenas uma mensagem ruim?


Então, em poucas palavras, você teve algum tipo de problema que não conhecemos. E você alterou as configurações globais do depurador e agora tem dois problemas. Coloque tudo do jeito que estava e descreva seu primeiro problema.
Hans Passant

@HansPassant, esse é o problema original. Parece que começou a acontecer assim que atualizamos para usar o VS2015. Eu tinha revertido qualquer uma das minhas alterações "isso funcionará" antes de postar. Desmarcar "Otimizar código" parece ter ajudado. Consulte a atualização 2 em questão para obter mais detalhes.
Sen

Você pode explicar qual é a sua solução? quais são os projetos, em que idiomas eles estão, qual é o alvo, qual é o projeto de inicialização?
Lucian Wischik

Habilite Just my Code novamente. Você está tentando depurar assemblies referenciados que você não tinha o código-fonte?
Igor Quirino de

Respostas:


95

Use o Configuration Manager para verificar quais são as configurações reais para a configuração de depuração - está no menu BuildConfiguration Manager ... - no caso de estarem configurados para usar Release :

Gerenciador de configuração

Além disso, certifique-se de que o projeto esteja definindo DEBUG corretamente e que "Otimizar Código" não esteja marcado:

Propriedades


2
Acabei de verificar lá e eles estão todos configurados para Depurar. Eu atualizei o post com uma captura de tela. Alguma outra ideia?
Sen

1
editou minha pergunta. O código do Optimize foi verificado, desmarcando parece ter ajudado. Mas veja a pergunta para detalhes.
Sen

1
@Sen Parece que alguém configurou incorretamente suas configurações de compilação de depuração. Uma compilação de depuração com código otimizado não faz sentido. Quanto ao problema dos símbolos: talvez alguém os tenha desativado para a compilação de depuração? Clique no botão "Avançado" nas configurações de compilação e verifique se "Informações de depuração" está definido como "completo" na compilação de depuração.
cremor de

6
Desmarcar o código do Optimize resolveu o problema. Não tenho certeza de como foi verificado no início, mas uma vez que foi desligado, tudo pareceu começar a funcionar novamente. Todas as outras configurações de depuração estavam corretas, esta era a única incorreta. Também não recebo mais a mensagem "Símbolos não carregados".
Sen

94

Isso também aconteceu comigo em alguns projetos. Revisei minhas configurações de construção, conforme sugerido por stuartd . No entanto, 'Otimizar código' não foi habilitado em minhas configurações de compilação. Então eu habilitei e salvei o projeto. Então eu desmarquei e salvei novamente. Problema resolvido.

Existe algum tipo de bug que faz com que o --optimize+sinalizador seja passado para o depurador. Ativá-lo e, em seguida, desativá-lo é uma solução fácil até que o bug seja corrigido.


1
Já vi isso no IDE do IntelliJ antes, mas nunca no Visual Studio até agora. Curiosamente, isso funcionou para mim também.
ZaneDarken

1
Atualização de 2017: ainda vejo esse problema no Visual Studio 2015 Atualização 3. A resposta aceita não corrigiu o problema; esta resposta sim.
Lews Therin

1
Essa resposta também corrigiu meu ambiente de depuração. Obrigado !
bob.mazzo

1
Uau! Eu tive esse mesmo problema e isso funcionou para mim também. VS 2015 U3. Inacreditável ...
AbeyMarquez

1
Comunidade VS2017, ainda com esse problema. obrigado por esta solução
William Borgo

20

Isso começou a acontecer comigo depois de aplicar a Atualização 1. Os projetos existentes começaram a mostrar isso, e posso replicar com um projeto totalmente novo. Todas as configurações são definidas como DEBUG e Optimize não é verificado.

O kicker é executar o projeto na primeira vez (ou depois de uma limpeza) funcionar bem, sem nenhuma mensagem. Parar e, em seguida, executar novamente o projeto (nota - o projeto não é reconstruído ) exibirá a caixa de diálogo.

A única solução é desligar a opção Just My Code - o que parece um hack, como acontecia antes da atualização 1 sem problemas.


6
Para valer a pena, o suporte da Microsoft reproduziu o problema e está investigando. Assim que eu ouvir, eu irei relatar / responder.
John T

2
A mesma situação e sintomas aqui, apareceram após a atualização 1 do VS2015. A execução de uma limpeza antes de cada sessão de depuração pode ser usada como uma solução alternativa porque, de fato, funciona corretamente na primeira vez depois disso. Apenas fazer uma Reconstrução não é suficiente, a Limpeza é necessária.
AronVanAmmers

2
A informação da Microsoft é que este é um problema conhecido (originalmente foi enviado para a equipe do Debugger, mas foi determinado que era um problema de compilação e agora está nas mãos da equipe do sistema do projeto. Existem outros bugs abertos sobre esse problema, e é classificado como Prioridade 1, então deve estar no caminho certo para a próxima atualização. Embora como seria de se esperar, nenhuma promessa pode ser feita sobre quando será lançado (ou o que está realmente na atualização). Então, é conhecido e está sendo trabalhado ativado. Pelo menos desativar "Ativar apenas meu código" nas Opções gerais de depuração parece ser uma
John T

Existe um link para esse problema para que possamos acompanhar o andamento?
SkyrawrCode


13

Se nenhuma das soluções mencionadas ajudou, verifique o AssemblyInfo.cs do seu projeto para o aplicativo DebuggableAttribute explícito. Parece que substitui as opções de depuração / liberação do compilador.

Eu tinha essa linha no arquivo do meu caso (projeto legado, não tenho ideia de como foi parar lá). Excluí-lo resolveu o problema:

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

2
Obrigado por isso. Estou trabalhando em um projeto em que meu cliente perdeu o código-fonte original, então tive que gerá-lo usando um descompilador. Meu único palpite é que o descompilador colocou esta linha.
jebar8

Sim, pode ser o motivo no meu caso também. Obrigado por compartilhar.
Dmitry Rotay


9

Eu também encontrei esse problema. A correção que funcionou foi simplesmente limpar ( Build > Clean Solution) e reconstruir ( Build > Rebuild Solution) meus projetos.


Você pode elaborar? Por exemplo, como fazer isso (comandos de menu para invocar, etc.)?
Peter Mortensen

5

Nenhuma das respostas anteriores funcionou para mim. Reiniciar o IIS corrigiu isso.


3

Apenas adicionando uma nota lateral à resposta de stuartd :

Certifique-se de verificar todos os projetos dependentes para as mesmas configurações de construção. Você receberá o mesmo prompt de mensagem se seu projeto principal tiver as configurações adequadas, mas seus projetos dependentes não. Faz sentido óbvio em retrospectiva, mas não foi a primeira coisa que veio à mente.


3

No meu caso, o problema era que a URL do projeto IIS na guia da web de propriedades do projeto ASP.NET estava configurada para a URL errada.

Ele estava apontando para http: // localhost que eu estava usando com uma cópia diferente do projeto. O endereço da solução que abri foi realmente configurado no meu IIS local como http: // localhost: 90 .

Mudar para o endereço correto corrigiu o problema.

Insira a descrição da imagem aqui


2

Tentei praticamente tudo nesta lista, mas no final resolvi isso abrindo as propriedades da solução e alternando de "Vários projetos de inicialização" para "Um único projeto de inicialização" e vice-versa.

  1. Clique com o botão direito na solução e escolha "Propriedades"
  2. Em "Propriedades comuns", altere a seleção "Projetos de inicialização múltiplos" para "Projeto de inicialização único"
  3. Clique OK
  4. Execute a depuração
  5. Termine a depuração e repita as etapas 1-3, mas volte para "Vários projetos de inicialização"
  6. Execute a depuração novamente com vários projetos

2

Eu tive o mesmo problema ... Não importa o que eu fiz - nada funcionou.

Era um novo projeto vazio que era o problema. Acabei removendo o projeto e adicionando um novo projeto - o novo projeto precisava ter outro nome ; se eu usasse o mesmo nome, o erro simplesmente reaparecia - mesmo após uma reinicialização, limpe e reconstrua ... Deve ser um bug no Visual Studio 2015.


2

Para mim, era uma referência do NuGet de um servidor NuGet privado. Não sei como foi compilado, mas mudar a referência para uma referência de projeto me ajudou a superar o problema.


1

Abri meu projeto Visual Studio 2012 Pro no Visual Studio 2015 Express e tive o mesmo problema.

Eu verifiquei minhas propriedades da solução → Propriedades de configuração e descobri que um projeto foi definido como Release & x86.

Mudei de volta para Debug e Any CPU , e o prompt desapareceu.


1

No meu caso, eu estava desenvolvendo um plug-in VSTO para Outlook e o Outlook estava carregando acidentalmente a versão de lançamento do arquivo DLL que instalei recentemente ao testar meu instalador.

Parece que o Visual Studio estava tentando usar essa DLL em vez do Debug que eu esperava. Corrigir qual arquivo DLL está sendo carregado pelo Outlook corrigiu isso para mim.


0

Copiando minha outra resposta daqui .

Conforme mencionado por @romanoza, a Microsoft atualizou o relatório de bug com as seguintes informações:

Desmarque a configuração Depurar -> Opções -> Suprimir otimização JIT no carregamento do módulo (somente gerenciado)

Esta é a solução alternativa. Eles vão dizer mais tarde:

Recomendamos que as pessoas o deixem desmarcado, pois isso melhorará o desempenho e o comportamento apenas do meu código em cenários específicos.

Por fim, o reconhecimento:

É um bug que não funciona com essa configuração habilitada e estamos trabalhando em uma correção para essa situação, caso alguns clientes ainda desejem depurar com essa configuração ativada.




0

Etapas de resolução:

  • Vá para as configurações de Build da página Propriedades do projeto infrator .

  • Role para a direita até o botão "Avançado ..." .

  • Certifique-se de que “Informações de depuração:” não esteja  definido como “nenhum” .

    Eu recomendo que você use a opção completa .


Lembre-se de fazer isso para todos os assemblies que deseja depurar.
Igor Quirino

0

Depois de ver o link de Patrick como um comentário à pergunta , alguém notou uma solução alternativa que era interromper o site no IIS Express . Consegui evitar que esse mesmo problema surgisse fazendo exatamente isso depois de interromper o depurador no Visual Studio.

No entanto, eu estava investigando mais e acredito que também possa estar relacionado à configuração 'Editar e continuar' do depurador. Quando desativei isso no menu FerramentasOpções ... do Visual Studio, não tive mais o problema. Mas isso o impediria de usar o recurso Editar e continuar , então não tenho certeza se isso vale a pena para você.

Menu FerramentasOpçõesDepuradorEditar e continuar (vá até o final da lista Geral) → desmarque a caixa de seleção Editar e continuar .

Eu também experimentei isso repentinamente depois de instalar a Atualização 1, mas pode ser que eu tenha ativado essa configuração em primeiro lugar ... Não tenho certeza embora.


0

Caso você precise apenas continuar sem mais atrasos, selecione a última opção do pop-up e tudo será executado da mesma forma que antes.

Insira a descrição da imagem aqui


Imagens JPEG não são a melhor escolha para capturas de tela. Você pode substituí-lo por uma versão PNG (nítida) (ou mesmo GIF)?
Peter Mortensen

0

Este foi um alerta estranho.

Reconstruir a solução não limpará necessariamente todos os arquivos DLL (especialmente aqueles copiados de projetos dependentes).

No entanto, a reconstrução do projeto de dependência fez com que esse alerta desaparecesse.

Enfrentei isso com o Visual Studio 2015 Atualização 3.


0

Minha solução foi um pouco diferente de todas as outras e é um pouco única.

Estou trabalhando com um site que contém uma combinação de código gerenciado e ASP Classic , ambos fazendo referência ao mesmo assembly. O Visual Studio estava reclamando que meu arquivo DLL gerenciado era uma versão de lançamento.

O problema era uma exceção não detectada em minha montagem, mas estava sendo lançado por uma página ASP Classic via interoperabilidade. O Visual Studio não conseguiu lidar com a depuração e exibiu a mensagem de erro. A mesma exceção lançada do código gerenciado teria ativado o depurador conforme o esperado.

Corrigir o problema no construtor do meu assembly gerenciado consertou tudo.

Tudo faz sentido agora que olho para o quadro geral, mas na época, a mensagem de erro me levou por um caminho muito profundo, e tentei de tudo na resposta aqui até que tive aquele "Ah-ha!" momento.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.