Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

497
Visualizações
No se puede recorrer correctamente el código en el constructor estático (VS2019, C#, .NET 4.7.2)

Estoy tratando de recorrer el código de un constructor estático mientras estoy en modo de interrupción.

El proyecto es C#/.NET 4.7.2/64 bits/WinForms. La versión de Visual Studio es 2019 16.9.4 Community.

Visual Studio se interrumpe correctamente cuando llega al punto de interrupción establecido en el constructor estático. Luego puedo recorrer el código usando el comando "Pasar a" (F11). Como puede ver, el constructor estático llama a un método estático que hace el trabajo pesado.

El código contiene un bucle que debería repetirse 10 veces. Debería poder pasar por todas las iteraciones. En cambio, después de la primera iteración, la depuración salta repentinamente a, o "reanuda", en algún punto mucho más tarde, de regreso a la clase que llama (o más exactamente, la clase que activó el CLR para ejecutar el constructor estático). Por lo tanto, no puedo pasar por las 9 iteraciones restantes.

Estoy seguro de que todas las iteraciones se ejecutan, porque agregué un código de depuración para imprimir algo cada vez que se ejecuta el bloque finally . Pero, estoy frustrado porque no puedo recorrer el código. Parece un error de VS del tipo ridículo, ya que es algo bastante fundamental poder recorrer el código durante la depuración.

Debido a que el problema es tan difícil de describir bien, he creado un GIF animado para mostrar visualmente la sesión de depuración:

Ejemplo de sesión de depuración de Visual Studio 2019

He buscado en la web a lo largo y ancho y no puedo encontrar a nadie más que informe el tipo de problema que estoy aquí. Lo que me hace preguntarme si estoy haciendo algo mal (por ejemplo, ¿necesito ajustar algunas configuraciones del depurador o algo así?). Cualquier ayuda o idea es muy apreciada.

ACTUALIZAR

No puedo reproducir el problema en compilaciones de depuración de 32 bits. El problema (hasta ahora) solo está presente en las compilaciones de depuración de 64 bits.

COMO REPRODUCIR

Hice un pequeño proyecto de demostración. Siéntase libre de descargar y probar la depuración por sí mismo. Cuando se alcanza el punto de interrupción, use F11 para recorrer el código. A ver si puedes pasar por el bucle 10 veces ;-)

Proyecto de prueba de depuración (VS2019)

Por mi parte, el problema desaparece si cambio la configuración de compilación de x64 a Any CPU . Por lo tanto, puede ser un problema solo de 64 bits.

El bloque try/finally parece revelar el problema. No estoy seguro de qué otros patrones también podrían revelar el problema.

INFORME DE ERROR ARCHIVO

https://developercommunity.visualstudio.com/t/The-debugger-does-not-step-through-a-met/1407274

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Es un error en el tiempo de ejecución de .NET. Puedes rastrear el error aquí:

https://github.com/dotnet/runtime/issues/52328

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda