2017-07-08 3 views
0

Visual Studioデバッガ(VS 2015とVS 2017をチェックしました)は、コンストラクタと代入演算子をスキップしているようです。私は次のコードVSデバッガがベースクラスのctorsをスキップします

#include <iostream> 

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

struct S : B { }; 

int main() 
{ 
    S s1; 

    return 0; 
} 

で新しいC++のWin32コンソールアプリケーションプロジェクトを作成した場合、私はBにステップことはできません:: B()、「ctorのは、」印刷とデバッガがに移行する「戻り0;」ライン。解体には(「ソース利用できません」)任意のソースに起因されていないコードの一部が続いている「S :: S(01713D4h)コール」:

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) 

をどのように私はBに足を踏み入れることができます。 :B()(ブレークポイントを使用しない)?

+0

私は開発コミュニティサイトから電子メール警告を受け取りました。あなたのコメントを追加して、この問題について議論することもできます:) –

答えて

0

私は、あなたと同じ問題を持っデバッガツールに影響を与える可能性がVSの設定を見つけることができませんので、私はあなたがここに製品チームにこの問題を報告助ける:

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

可能であれば、コメントを追加してそのレポートに直接投票することもできます。製品チームから更新があった場合は、ここでそれを共有します。

関連する問題