
å ã®èšäºã¯Bartlomiej Filipekã«ãã£ãŠæžããã圌ã®ããã°ã«å ¬éãããŸããã
ãšã€ãº
ãã¹ãŠã®ããã°ã©ããŒã¯ããããã¬ãŒã®èµ·åããã¬ãŒã¯ãã€ã³ãã®èšå®ãã³ãŒãå®è¡ã®åéãé¢æ°ã®éå§ãšçµäºïŒããŒããŒãã䜿çšïŒã®æ¹æ³ãç¥ã£ãŠããå¿ èŠããããŸãã åºæ¬çãªããªãã¯ã«åºã¥ããŠãããã°ããã»ã¹ãç°¡åã«ããããã®ç°¡åãªãã³ãã次ã«ç€ºããŸãã
1.ãšã©ãŒã®å Žææ å ±ããããã¬ãŒã¬ããŒãïŒLinePosïŒã«è¿œå ããŸã
ã¹ãã«ã¬ãã«ã«é¢ä¿ãªããããããäž»ãªãããã°æ¹æ³ã®1ã€ãåŒãç¶ã䜿çšããŸããé¢æ°ãšãã¯ãprintf ã TRACE ã outputDebugStringãªã©ã䜿çšããŠç¹å®ã®å€ã远跡ããŸãã ãããã¬ãŒã¬ããŒãã確èªããŸãã Visual Studioã§ã¯ãåºåãŠã£ã³ããŠããç¹å®ã®ã³ãŒãè¡ã«ãã°ãããžã£ã³ãã§ããèå³æ·±ãããªãã¯ã1ã€å®è¡ã§ããŸãã
ãããè¡ãã«ã¯ã次ã®åºå圢åŒãèšå®ããã ãã§ãã
"%s(%d): %s", file, line, message
ãã ãã fileããã³lineã®å€ã¯ãregisteré¢æ°ã§ã¯ãªãããœãŒã¹ãã¡ã€ã«å ã®å®éã®äœçœ®ã«åŸã£ãŠååŸããå¿ èŠãããããããããã次ã®ãããªãã¯ããå¿ èŠã§ããããšãå¿ããªãã§ãã ããã
#define MY_TRACE(msg, ...) MyTrace(__LINE__, __FILE__, msg, __VA_ARGS__) // usage: MY_TRACE("hello world %d", 5);
__LINE__ããã³__FILE__ã¯ãã³ã³ãã€ã©ãèªèã§ããæšæºã®ANSIäºæã®å®çŸ©æžã¿ããªããã»ããµãã¯ãã§ããããšã«æ³šæããŠãã ããã å®çŸ©æžã¿ãã¯ããMSDNãåç §ããŠãã ããã
ãŸãã OutputDebugStringé¢æ°ã䜿çšããŠãã³ã³ãœãŒã«ã§ã¯ãªãåºåãŠã£ã³ããŠã«ã¡ãã»ãŒãžã衚瀺ããããšãå¿ããªãã§ãã ããã
ããã§ãVSåºåãŠã£ã³ããŠã«ã¡ãã»ãŒãžã衚瀺ããããããããããã«ã¯ãªãã¯ããŠãæå®ãããã¡ã€ã«ãšè¡ã«ç§»åã§ããŸãã åæ§ã«ãã³ã³ãã€ã«æã«èŠåãŸãã¯ãšã©ãŒã¡ãã»ãŒãžãåŠçã§ããŸãã ãšã©ãŒã¡ãã»ãŒãžãåãåã£ãããã³ãŒãå ã®æ£ç¢ºãªå Žæãç¹å®ã§ããªãã£ããããå€ãã®æéã倱ããŸããã åœæãç§ã¯åŒŠãèŠã€ããªããã°ãªããŸããã§ããããããã¯é·ããŠé¢åãªããã»ã¹ã§ãã 説æãããŠããã³ãŒããžã®ããã«ã¯ãªãã¯é·ç§»ã«ããããããæ°ããªç§ã§å®è¡ã§ããŸãã
ãšããã§ãå¥ã®IDEïŒVisual Studioã§ã¯ãªãïŒãããå Žåããã®ãããªæ©äŒã¯ãããŸããïŒ ã³ã¡ã³ãã®è³Œèªãäžæ¢ããç¥ããããšæããŸãã
ãããŠãããã«èšèŒãããŠãããã¯ããã¯ãè©Šãããšãã§ããç°¡åãªã³ãŒãäŸïŒ github.com/fenbf/DebuggingTipsSamples ã
æŽæ°ïŒ jgalowiczãã³ã¡ã³ãã§ææããããã«ããã¡ã€ã«åãç瞮圢ã§è¡šç€ºãããå Žåã¯ã __ SHORT_FILE__ãã¯ããäœæããŸããå®è£ ã®è©³çŽ°ã«ã€ããŠã¯ããã°æçš¿ãåç §ããŠãã ããã ãã ããVisual Studio ã§ã¯ã/ FCã³ã³ãã€ã©ãªãã·ã§ã³ã¯ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠãããããéåžžãçç¥ããããã¡ã€ã«åïŒãœãªã¥ãŒã·ã§ã³ãã£ã¬ã¯ããªã®ã¿ã«é¢é£ããïŒãéåžžçºè¡ãããŸãã
2.åçŽãªéçå€æ°ãäœæããŠããã®ãªãã·ã§ã³ãŸãã¯ãã®ãªãã·ã§ã³ãå¶åŸ¡ããŸã
// change while debugging if needed static bool bEnableMyNewFeature = true;
Visual Studioã®ç·šéããã³ç¶è¡æ©èœã¯éåžžã«åŒ·åãªããŒã«ã§ãããç°¡ç¥åããããæåãããŒãžã§ã³ã§å¯Ÿå¿ã§ããŸãã 圌女ã¯ããã»ã©ãšã¬ã¬ã³ãã§ã¯ãããŸãããã圌女ã¯ä»äºãæãããŸãã ããã°ã©ã ã®1ã€ãŸãã¯å¥ã®ãªãã·ã§ã³ãå¶åŸ¡ããéçå€æ°ãååŸããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãéåžžã®ããŒã«ãã©ã°ãŸãã¯æŽæ°åå€æ°ã䜿çšã§ããŸãã ãããã°äžã«ããã®å€æ°ã®å€ãå€æŽã§ããŸããããã«ãããããã°ã©ã ãåèµ·åãŸãã¯åæ§ç¯ããã«ãªãã·ã§ã³ã®åäœã調ã¹ãããšãã§ããŸãã
ãããã°äžã«å€ãå€æŽããæ¹æ³ã¯ïŒ [ ãŠã©ãã]ãŠã£ã³ããŠã«ç§»åããããã«ãŒãœã«ãå€æ°ã®äžã«ç§»åããŸããç®çã®å€ãèšå®ã§ããç·šéããã¯ã¹ã衚瀺ãããŸãã
ãããŠãæçµçãªãã«ããšã³ãããã§ãã®æãããå€æ°ãç¡å¹å/åé€ããããšãå¿ããªãã§ãã ããïŒ
3.æ¡ä»¶ä»ããã¬ãŒã¯ãã€ã³ã
æ¡ä»¶ä»ãã³ã³ãããŒã«ãã€ã³ããæ¢ã«äœ¿çšããŠããããšãæã¿ãŸããããããã䜿çšããäž»ãªæ¹æ³ã«ã€ããŠç°¡åã«èª¬æããããšæããŸãã ååã瀺ãããã«ããããã®ãã€ã³ãã§ã®ãããã¬ãŒã®äœæ¥ã¯ãç¹å®ã®æ¡ä»¶ïŒéåžžã«åçŽïŒãæºãããããšäžæãããŸãã

1ã€ã®å°ããªã¢ããã€ã¹ïŒã³ãŒããã©ã®ããã«æ©èœãããã詳ãã調ã¹ãå¿ èŠãããå Žåã¯ãç¬èªã®ãã¬ãŒã¯ãã€ã³ããäœæããŸãã
æ¡ä»¶ã§äœ¿çšãããåŒã®ãªã¹ããåç §ããŠãã ãããmsdnïŒãããã¬ãŒã®åŒ
ããããããã ãã§ã¯ãããŸããã
ã¹ã¯ãªãŒã³ã·ã§ããã§ãæ°ã¥ãã®ã¯ãã§ããããã¬ãŒã¯ãã€ã³ãã«ã¯ããããã«ãŠã³ãããšããå¥ã®äŸ¿å©ãªæ¡ä»¶ããããŸãã ããã«ããããã§ãã¯ãã€ã³ããã¢ã¯ãã£ãã«ãªãã€ãã³ãã®æ°ãèšå®ã§ããŸãã ãã®ãªãã·ã§ã³ã¯ãäœããã®åçã€ãã³ããŸãã¯å€ãã®ãªããžã§ã¯ãã远跡ããå¿ èŠãããå Žåã«éåžžã«äŸ¿å©ã§ãã
4.å®è¡ããããªãæ©èœãå ¥åããªãã§ãã ãã
æåååã³ã³ã¹ãã©ã¯ã¿ããã°ããçµäºããããã«ãæåååã³ã³ã¹ãã©ã¯ã¿ã«äœåå ¥åããå¿ èŠããããŸããïŒ ãŸãã¯ãé©åãªã¡ãœããã«å°éããåã«ãå€ãã®å°ããª/ã©ã€ãã©ãªé¢æ°ã§ïŒ ã»ãšãã©ã®å Žåãããã¯æéã®ç¡é§ã§ãã
ãã®äŸãèŠãŠãã ããïŒ
void MyFunc(const string &one, const string &two) { auto res = one + two; std::cout << res << "\n"; } .... MyFunc("Hello ", "World");
Ctrl + F11ãæŒããŠMyFuncïŒïŒé¢æ°ã®åŒã³åºããå ¥åããŠã¿ãŠãã ããã ãããã¬ã¯ã©ãã«è¡ããŸããïŒ ç§ã«èµ·ããããšã¯æ¬¡ã®ãšããã§ãã

ããã«ããã®ã³ã³ã¹ãã©ã¯ã¿ãŒãçµäºããåã³ãã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«å ¥ããšã2çªç®ã®ãã©ã¡ãŒã¿ãŒã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«ãªããŸãã 次ã«ããã®ãããªãã©ã¡ãŒã¿ãŒãããã€ãããå Žåã«äœãèµ·ããããæ³åããŠãã ããã æ£ããæ¹æ³ãèŠã€ãããŸã§å€¢äžã«ãªããŸãïŒ
ååãšããŠããã®ãããªäžèŠãªã¡ãœãããé€å€ããããšããå§ãããŸããåé¡ãstd :: string :)ã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«ããå¯èœæ§ã¯äœãã§ãã
ãããã®åºæ¬æ©èœãé€å€ããæ¹æ³ã¯ïŒ ããŒãžã§ã³2012以éãVSã§ã¯default.natstepfilterãã¡ã€ã«ãç·šéããã ãã§ååã§ãã
VSã®ä»¥åã®ããŒãžã§ã³ã§é¢æ°ããã£ã«ã¿ãŒåŠçããæ¹æ³ã«ã€ããŠã¯ãã Visual C ++ãããã¬ãŒã䜿çšããŠé¢æ°ã«ã¹ãããã€ã³ããªãæ¹æ³ããåç §ããŠãã ããã ããã§ã¬ãžã¹ããªå€ããããå¿ èŠããããŸãã
è¿œå ã®ã€ã³ã»ã³ãã£ããšããŠãVisual Assistã«ãåããªãã·ã§ã³ããããäœæ¥ãã¯ããã«ç°¡åã§ããããšããç¥ããããŸãã ãããã°ã¢ãŒãã§ã¯ã VAã¹ããããã£ã«ã¿ãŒãŠã£ã³ããŠã衚瀺ãããŸããæ€åºãããã¡ãœããã®ãªã¹ãããç®çã®ã¡ãœããã®æšªã«ããããã¯ã¹ããªã³ãŸãã¯ãªãã«ããŸãã ãããã®èšå®ã¯ãç¹å®ã®ãããžã§ã¯ãã«å¯ŸããŠã°ããŒãã«ã«ãããŒã«ã«ã«ãé©çšã§ããŸãã VAã®ãã£ã«ã¿ãªã³ã°èšå®ã¯ãŠãŒã¶ãŒå®çŸ©ã§ããã default.natstepfilterãã¡ã€ã«ã«è¿œå ã§ããŸããã
5.ãããã°ã¢ãŒãã§ãªããžã§ã¯ãã®ãã«ããŒå€æ°ãè¿œå ããŸã
ããŒã¿ãå€ãã»ã©è¯ãïŒ äžèŠãªã¡ãã»ãŒãžã¯ãã€ã§ãé€å€ã§ããŸãããäœããã§ãããŒã¿ãååŸããããšã¯ã§ããŸããã ç¹å®ã®ç®æšã«ãã£ãŠã¯ããªããžã§ã¯ãã«ããã€ãã®è£å©å€æ°ãäœæãããšäŸ¿å©ãªå ŽåããããŸãããããã°äžã«ããããã®å€æ°ã¯éåžžã«è²Žéãªæ å ±ãæäŸããããåã«äœæ¥ããã»ã¹ãä¿é²ãããã§ããŸãã
ããšãã°ãããªãŒæ§é ã§äœæ¥ããå Žåã pNextèŠçŽ ãšpPrevèŠçŽ ã確èªããå¿ èŠãããå ŽåããããŸã ã ãããã®ãã€ã³ã¿ãŒã¯ãéåžžTreeNodeãªã©ã®åºæ¬ã¯ã©ã¹ã«é 眮ãããŸããã¯ã©ã¹éå±€ã®3ã¬ãã«äžã«ããMyTreeNodeã«é¢å¿ãããå Žå ãæ¯åpNextããã§ãã¯ããã®ã¯éåžžã«é¢åã§ãã ãããã pNextããããŒã¿ãè¿œå ããŠMyTreeNodeãæŽæ°ãããšã©ããªããŸããïŒ ãã®å Žåããã®èŠçŽ ã確èªããããã«æ¯åéå±€ã®ãã¹ãŠã®ã¬ãã«ã確èªããå¿ èŠã¯ãããŸããã ãã ãã説æããæ¹æ³ã«ã¯1ã€ã®æ¬ ç¹ããããŸãããã®æŽæ°ãããç¶æ ãäœããã®æ¹æ³ã§ä¿®æ£ããå¿ èŠããããŸãã pNextã®å€ã¯ç°¡åã«å€æŽã§ããããããããã®å€æŽãåæããã«ã¯è¿œå ã®ããžãã¯ãå®è£ ããå¿ èŠããããŸãã ãã ããããã¯ã»ãšãã©ã®å Žåã«åœãŠã¯ãŸããŸãããã¿ã¹ã¯ã®ãããã°ã«ã¯ããŸãæŽç·ŽãããŠããªãå¹æçãªãœãªã¥ãŒã·ã§ã³ãæ©èœããŸãã
äŸãæããŸãããã
ããã¹ããªããžã§ã¯ããè¡šãããªãŒæ§é ã§äœæ¥ããªããã°ãªããªãããšããããããŸãã ããã¹ããªããžã§ã¯ãã«ã¯æååãå«ãŸããæååã«ã¯æåãå«ãŸããŸãã è¡ã®æåã®æåãè¿ãã pNextãã€ã³ã¿ãŒã䜿çšããŠ2çªç®ã®æåãèŠã€ããããã«åºã¥ããŠå€ã調ã¹ãå¿ èŠããããããçŸåšã®è¡ïŒã€ãŸããå«ãŸããŠããããã¹ãïŒãæ¯å確èªããã®ã¯éåžžã«é¢åã§ãããã2ã€ã®æåã䜿çšããŠãã©ã®ãããªæååãã確èªããŸãã ãã®ããã»ã¹ãç°¡çŽ åããæ¹æ³ã¯ïŒ strLineå€æ°ãéå§ãã Lineã«è¿œå ããŠå®æçã«æŽæ°ããŸããã ããã¯æ å ±ã®äžå®å šãªãœãŒã¹ã§ããããŸããïŒãããã¬ãŒã ã§ãã£ã©ã¯ã¿ãŒãè¿œå ãŸãã¯åé€ããããšããŒã¿ã¯å€±ãããŸããã次ã®ãã¬ãŒã ã§ã衚瀺ãããŸãïŒãå°ãªããšãçŸåšã©ã®è¡ã«ããããããã«èŠã€ããããšãã§ããŸãã ãšãŠãç°¡åïŒ ãããŠãå€ãã®æéãç¯çŽã§ããŸãã
6.ç¬èªã®ãããã°ããžã¥ã¢ã©ã€ã¶ãŒãäœæãã
ããã¯ãããã§ç°¡åã«çŽ¹ä»ããã ãã®åºç¯ãªãããã¯ã§ãã
ãããã¬ãŒã§ã®ãªããžã§ã¯ãã®è¡šç€ºæ¹æ³ãæ°ã«å ¥ããªãå Žåã¯ãç¬èªã®ããžã¥ã¢ã©ã€ã¶ãŒãäœæããŠã¿ãŠãã ããã
Visual C ++ 2015ã§ããžã¥ã¢ã©ã€ã¶ãŒããããã°ãã
VS2015ã§ã¯ã ãããžã§ã¯ãâæ°èŠã¢ã€ãã ã®è¿œå âVisual C ++âãŠãŒãã£ãªãã£âãããã¬ãŒããžã¥ã¢ã©ã€ãŒãŒã·ã§ã³ãã¡ã€ã«ïŒ.natvisïŒã«ããæ°ããçµã¿èŸŒã¿ãã³ãã¬ãŒããå°å ¥ããŸããã
ãããã°ææ³
åºæ¬çãªãããã°ææ³ã«åºã¥ããŠãããè€éãªææ³ãæ§ç¯ã§ããŸãã
7.å€ãã®ãªããžã§ã¯ãããã§ãã¯ããå¿ èŠããããŸããïŒ
ããã€ãã®ã³ãŒããå€ãã®ãªããžã§ã¯ãã«å¯ŸããŠåŒã³åºãããå Žåãããããã¹ãŠã®ãªããžã§ã¯ãã調ã¹ãŠãããããè¡ããšã«ãã§ãã¯ããããšã¯éåžžã«åé¡ã§ãã ãããããšã©ãŒãæ¢ãå Žæã«ã€ããŠã®ãã³ããšããŠãã£ãŒã«ãã®äžæã®å€ã䜿çšãããšã©ããªããŸããïŒ ãããè¡ãã«ã¯ããã®å€ãç¹å®ã®ç¯å²ãšæ¯èŒãããæ¡ä»¶ä»ãå¶åŸ¡ç¹ãäœæã§ããŸãã ãã®ç¯å²ãå°ããã»ã©åªããŠããŸãã
äŸïŒããã¥ã¡ã³ãå ã®ãã¹ãŠã®æåããœãŒãããã³ãŒãããããã°ããå¿ èŠããããããŸããã 1ã€ã®ïŒç¹æ®ãªïŒæåã«åé¡ããããŸããã ãã¹ãŠã®æåãåå¥ã«ãããã°ããããšã¯äžå¯èœã§ããããã®ç¹å®ã®æåã¯å¢çããã¯ã¹ã®ãµã€ãºãä»ã®æåãšç°ãªãããšãç¥ã£ãŠããããã å¹ ã®å€ããã§ãã¯ãããæ¡ä»¶ä»ãå¶åŸ¡ãã€ã³ããèšå®ããŠããã®æåã«ã¢ã¯ã»ã¹ã§ããããã«ããŸããïŒ å¹ >éåžžã®æåå¹ ã®æ¡ä»¶ ïŒ ãã®æ¡ä»¶ãæºããã®ã¯2ã€ãŸãã¯3ã€ã®èŠçŽ ã ããªã®ã§ãããã«ãšã©ãŒãèŠã€ããŸããã
äžè¬çã«èšãã°ãç¯å²ãçãã»ã©è¯ãïŒæ°åãŸãã¯æ°çŸã®å Žæããã§ãã¯ããå¿ èŠã¯ãããŸããã
8.ããŠã¹ã€ãã³ã
ãããã®ã€ãã³ãã®ã»ãšãã©ã¯ããããã¬ãŒãåæ¢ãããšæ¶ãããããããŠã¹ã€ãã³ãã®ãããã°ã¯ç¹ã«å°é£ã§ãã
éåžžãããŠã¹ã¯ãªãã¯ã®ãããã°ã¯ç°¡åã§ãã ããšãã°ããããªããžã§ã¯ããããŠã¹ã§ã¯ãªãã¯ããŠåŒã³åºãããã³ãŒãã確èªããå¿ èŠãããå Žåã¯ã OnClick / onMouseDownã¡ãœããã®å ¥ãå£ã«ã³ã³ãããŒã«ãã€ã³ããäœæããã ãã§ãã
ãªããžã§ã¯ãã®ãã©ãã°ã¢ã³ãããããã«ã€ããŠã¯ã©ãã§ããïŒ ãããã¬ãŒãåæ¢ãããšããã©ãã°ã¢ã³ãããããç¶æ ã倱ãããŸãã ãã®ãããªç¶æ³ã§ã¯ã次ã®ããªãã¯ãè©Šãããšãã§ããŸãã
- å€ãè¯ãtrace / printfã䜿çšããŠãã ããã ã³ãŒãã®å®è¡ãäžæããããšãªãäœãèµ·ãã£ãŠããããç解ããã®ã«åœ¹ç«ã€å€ãã®ã¡ãã»ãŒãžããã©ãã°ã¢ã³ããããããããšãã ãã®æ¹æ³ã¯ãçæéã®ãã©ãã°ã¢ã³ãããããæäœã«é©ããŠããŸããããããªããšãåºåã倧éã®ããŒã¿ã«ãªãããã§ãã ãã®æ
å ±ã䜿çšããŠãåé¡ãç¹å®ããåŸã§åé¡ã«æ»ãããšãã§ããŸãã
- æ€èšŒãå¿
èŠãªå Žæã«æ¡ä»¶ä»ãå¶åŸ¡ãã€ã³ãã確ç«ããŸãã ããšãã°ããªããžã§ã¯ããå転ããããšããªããžã§ã¯ãã®äœçœ®ãçªç¶å€åããå¯èœæ§ãããããã®çç±ãç解ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ããªããžã§ã¯ãã®äœçœ®ãæ
åœããã¡ã³ããŒã®å
¥ãå£ã«ã³ã³ãããŒã«ãã€ã³ããäœæããŸããããã«ãããã¡ã³ããŒãåŠç¿ããæ©äŒãäžããããŸãã ãããã¬ãŒãåæ¢ãããšãå転ç¶æ
ã¯å€±ãããŸããããããçºçããåã«ãã³ãŒãå
ã®åé¡ã®æœåšçãªå Žæãç¹å®ã§ããŸãã å¥ã®æ¹æ³ã¯ã obj_rot> some_meaningful_valueæ¡ä»¶ã䜿çšããããšã§ãã
- ãªããžã§ã¯ãã®ãã©ãã°ã¢ã³ãããããã¯ãã³ããŒäžã«é »ç¹ã«çºçããŸãã ãã®å Žåãã³ããŒæäœãå®äºãããšãå ã®ãªããžã§ã¯ãã«å¯Ÿå¿ããã¹ããŒã¿ã¹ãå²ãåœãŠãããŸãã å ã®ãªããžã§ã¯ãã®ã¿ãã¹ãã£ã³ããããã§ãã¯ãã€ã³ããèšå®ãããšã©ããªããŸããïŒ ãŸãã¯ã ãã©ãã°æäœãéç¥ããç¹å¥ãªç¶æ ãå®è£ ããŸããïŒ ãã®å Žåããããã¬ãŒã¯ãã®æäœãå®äºãããšåæ¢ããŸãã
9.ãããã°ããžã¥ã¢ã©ã€ã¶ãŒããã³ãã®ä»ã®ããŒã«ãäœæãã
ãã®ãã³ãã§ã¯ãåçŽãªè£å©å€æ°ãäœæããŠããã®ææ³ãããã«çºå±ãããããšãææ¡ããŠããŸãã è€éãªãªããžã§ã¯ããæ±ãå ŽåãããŒã¿ãããå¹æçã«è¿œè·¡ã§ããããŒã«ããããšäŸ¿å©ã§ãã ãã®ãããªããŒã«ã®åºæ¬ã»ããã¯Visual Studioããã³ãã®ä»ã®IDEãŸãã¯ãããã¬ãŒã«ãããŸããããã¹ãŠã®ãããžã§ã¯ããç°ãªããããç¬èªã®ãœãªã¥ãŒã·ã§ã³ãéçºããããšããå§ãããŸãã
ãã®ç¶æ³ã¯ãç§ã«ã¯æããŸãããã²ãŒã ã®å žåã§ãã ããšãã°ãã€ã³ã¿ãŒãã§ã€ã¹ã®è¿œå ã®ã¬ã€ã€ãŒãäœæããã²ãŒã äžã«ãªã³ã«ããŠãã²ãŒã ã®çµ±èšãããã©ãŒãã³ã¹ãããã³ã¡ã¢ãªæ¶è²»æ å ±ã確èªã§ããŸãã 衚瀺ãããæ å ±ã®éã¯ãããŒãºã«ãã£ãŠã®ã¿å¶éãããŸãã ãã®ãããæéããããŠãã®ãããªããŒã«ãäœæããããšã匷ããå§ãããŸãã
ãã®ä»
10.ãªãªãŒã¹ã¢ãŒãã§ã®ãããã°
ã»ãšãã©ãã¹ãŠã®ã³ãŒãæé©åããã§ã«å«ãŸããŠããããããªãªãŒã¹ãã«ãã¯é«éã§ãã ãã ãããã®å Žåããããã°ã劚ãããã®ã¯ãããŸããã ããã¯ã©ã®ãããæ£ç¢ºã«å®è£ ã§ããŸããïŒ ä»¥äžãè¡ãå¿ èŠããããŸãïŒVS 2013ãŸãã¯VS 2015ã®å ŽåïŒïŒ
- [ ãããã°æ å ±ã®åœ¢åŒ ]ãªãã·ã§ã³ã/ Z7ïŒC7äºæ圢åŒïŒãŸãã¯/ Zi ïŒããã°ã©ã ããŒã¿ããŒã¹åœ¢åŒïŒã«èšå®ããŸãã
- [ å¢åãªã³ã¯ãæå¹ã«ãã]ã[ããã]ã«èšå®ããŸã
- [ ãããã° æ å ±ã® çæ ]ãªãã·ã§ã³ã[ã¯ã]ã«èšå®ããŸãã
- Referencesãªãã·ã§ã³ã/ OPTïŒREFã«èšå®ãã COMDAT Foldingã/ OPTïŒICFã« æå¹ã«ããŸã
11.ãããã°ã¢ã»ã³ããªã®é«éåïŒ
- ãããã¬ãŒãé
ãå Žåã¯ããªãã·ã§ã³ããŒã«âãªãã·ã§ã³âãããã°âå
šè¬âãå
ã®ããŒãžã§ã³ãšå®å
šã«äžèŽãããœãŒã¹ãã¡ã€ã«ãå¿
èŠãã確èªããŠãã ããã ããã§åœŒå¥³ã«ã€ããŠç¥ããŸããã
- ãããã°ããŒãïŒ Debug Heap ïŒãç¡å¹ã«ããŸã-VS 2015ããåã®ããŒãžã§ã³ã«é¢é£ããŸãã以åã®èšäºã®ããããã§ã Visual Studioã®äœéãããã°ãš_NO_DEBUG_HEAPã«ã€ããŠèª¬æããŠããŸãã 幞ããªããšã«ãVS2015ã§ã¯ããããã°ããŒãã¯ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠããããããã®åé¡ã¯çºçããŸããã
- ãããã°ã·ã³ãã«ãã¡ã€ã«ã®ããŠã³ããŒããå¶éããŸãã ãã®ææ³ã¯ãããŠã³ããŒããããã·ã³ãã«ãã¡ã€ã«ã®æ°ãæžãããããã°ã©ã ã®èµ·åãé«éåããŸãã 詳现ã«ã€ããŠã¯ããã¡ããã芧ãã ããïŒ ã·ã³ãã«ãã¡ã€ã«ãšVisual Studioã®ã·ã³ãã«èšå®ã«ã€ããŠ
ãããã«
ãã®èšäºã§ã¯ããããã°ããã»ã¹ãé«éåããããã®11ã®ãã³ããæäŸããŸããã ã©ããæã䟡å€ããããŸããïŒ ããããããããã¯æ¡ä»¶ä»ãå¶åŸ¡ãã€ã³ãã«é¢ãããã€ã³ãã§ãããå€ãã®ãªããžã§ã¯ãããããã°ãããããã°ããŒãžã§ã³ãé«éåããŸãã ãã ããæ®ãã®ãã³ããéèŠãªã®ã§ãç¹å®ã®é åºã§äžŠã¹ãã®ã¯é£ãããšæããŸãã ãŸããç¹å®ã®ã¿ã¹ã¯ã«å¿ããŠãå€ãã®å ŽåãããŸããŸãªææ³ãåªå ããå¿ èŠããããŸãã
ããã«ããã®ãªã¹ãã¯æããã«å®å šã§ã¯ãããŸãã-ä»ã«ãå€ãã®ããªãã¯ããã©ã¯ãã£ã¹ããããŸãã ããããè¿œå ãããã®ããããŸããïŒ
- ã¢ããªã±ãŒã·ã§ã³ããããã°ãããšãã«ç¹å¥ãªããªãã¯ã䜿çšããŸããïŒ
- ã«ã¹ã¿ã ããŒã«ã䜿çšããŸããïŒ
è¿œå ã®ãªãœãŒã¹
- ãããã°ïŒæããšããã©ããã®ãªããœãããŠã§ã¢ãšãââãŒããŠã§ã¢ã®åé¡ãèŠã€ããããã®9ã€ã®äžå¯æ¬ ãªã«ãŒã«
- é«åºŠãªWindowsãããã°
- Debug It !:ã³ãŒãã®ãã°ãèŠã€ãã修埩ããé²æ¢ãã
- ãã¬ãŒã¯ãã€ã³ãã®äœ¿çšãMSDN
- ãããã¬ãŒãMSDNã䜿çšããã³ãŒãã®ããã²ãŒã
- ãã€ãã£ãéçºçšã®Visual Studioãããã°ã®10ã®ãã³ãã
ããªãŠã¹ã»ãã³ã·ã©ãCodeProject - VAã¹ããããã£ã«ã¿ãŒãããžã¥ã¢ã«ã¢ã·ã¹ã
- VCããŒã ããã°ïŒåŒè©äŸ¡è
- VCããŒã ããã°ïŒVisual Studioã§ãããã°ãé«éåãã