2017-07-08 1 views
0

Il semble que le débogueur Visual Studio (j'ai vérifié VS 2015 et VS 2017) ignore les constructeurs et les opérateurs d'affectation dans la classe de base. Si je crée un nouveau projet d'application console Win32 C++ avec le code suivantLe débogueur VS ignore les cteurs dans la classe de base

#include <iostream> 

struct B 
{ 
    B() { std::cout << "ctor"; } 
}; 

struct S : B { }; 

int main() 
{ 
    S s1; 

    return 0; 
} 

Je ne peux pas entrer dans B :: B(), « cteur » est imprimé et le débogueur va à la « return 0; » ligne. Dans le démontage du « appel S :: S (01713D4h) » est suivi d'un morceau de code qui est pas attribué à une source (« Source non disponible »):

00E51DF0 push  ebp 
00E51DF1 mov   ebp,esp 
00E51DF3 sub   esp,0CCh 
00E51DF9 push  ebx 
00E51DFA push  esi 
00E51DFB push  edi 
00E51DFC push  ecx 
00E51DFD lea   edi,[ebp-0CCh] 
00E51E03 mov   ecx,33h 
00E51E08 mov   eax,0CCCCCCCCh 
00E51E0D rep stos dword ptr es:[edi] 
00E51E0F pop   ecx 
00E51E10 mov   dword ptr [this],ecx 
00E51E13 mov   ecx,dword ptr [this] 
00E51E16 call  B::B (0E51389h) 

Comment puis-je entrer dans B: : B() (sans utiliser un point d'arrêt)?

+0

J'ai reçu l'avertissement par courriel du site de développement de la communauté, et vous pouvez également ajouter votre commentaire et discuter de ce problème ici :) –

Répondre

0

j'ai eu le même problème que le vôtre, trouvez pas les paramètres VS qui pourraient avoir un impact sur l'outil de débogage, donc je vous aider à signaler ce problème à l'équipe produit ici:

https://developercommunity.visualstudio.com/content/problem/77978/vs-debugger-skips-ctors-in-base-class.html.

Si possible, vous pouvez également ajouter votre commentaire et voter directement pour ce rapport. Si je reçois une mise à jour de l'équipe produit, je la partagerai ici.