[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁...

21
김희준 / Ascan 디버깅, 어디까지 해봤니? 당신이 아마도 몰랐을 디버깅 꿀팁 공개

Transcript of [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁...

Page 1: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

김희준 / Ascan

디버깅, 어디까지 해봤니? 당신이 아마도 몰랐을 디버깅 꿀팁 공개

Page 2: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Agenda

• Visual Studio 2015의 새로운 디버깅 기능

• Visual Studio 활용 디버깅 (IntelliTrace)

• Visual Studio Debugging Tips

Page 3: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015의 새로운 디버깅 기능

• 새로운 플랫폼 – 안드로이드 지원

• 향상된 Exception, breakpoint UI, Edit and Continue

• 더 가까워진 퍼포먼스 측정과 분석 • Diagnostic Tools

• PerfTips

Page 4: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015의 새로운 디버깅 기능

• 프로파일링? 그게 뭔가요? • 돌아가기만 해도 감사할 뿐…

• 난 이미 틀렸어, 먼저 가…

• Diagnostics Tools Window • F5 = 디버깅 + 프로파일링!

• 통합된 정보 • Events – BP, Exception…

• Memory Usage – Private Bytes

• CPU Usage - Perftips

Page 5: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015의 새로운 디버깅 기능

• Stopwatch class, QueryPerformanceCounter, GetTickCount..

• 심볼 로딩한 시간? 디버거에서 멈추기라도 했다면?

• PerfTips • Community Edition에서도 가능!

• C#/VB/C++ • Python(PTVS) not supported

Page 6: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015

Diagnostics Tools

Page 7: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015의 새로운 디버깅 기능

VS 2013 VS 2015

Page 8: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

VS 2015 New Breakpoint

(Tracepoint 활용한 손쉬운 로그출력)

Page 9: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015의 새로운 디버깅 기능

VS 2013 VS 2015

Page 10: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 2015의 새로운 디버깅 기능

• Watch, Immediate window • Lambda 지원

VS 2013

VS 2015

Page 11: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Exception Window &

Watch/Immediate Window

Page 12: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio 활용 디버깅

• IntelliTrace

• 잡기 어려운 버그… • 어디서 깨진거야?

• 실행을 녹화한다면? • Historical debugging

• 과거 이벤트..

• 콜스택, 호출 정보

• 제약사항 • .NET Framework 2.0 above

https://flic.kr/p/75YJrP

Page 13: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

IntelliTrace

Page 14: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio Debugging Tips

• 원하는 위치로 빨리 디버깅 하기 • Run To Cursor, Step Over

• Step Into Specific

• Pseudo-variables • @err, $ReturnValue, $ReturnValuen (or Auto window…)

• @env

• Datatips + Expression Evaluation

• Native Visualizer(NatVis)

Page 15: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio Debugging Tips

• Native Visualizer(NatVis) • STL: stl.natvis

• Utility

Page 16: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Run To Cursor, Step Over

DataTips

Pseudo-vars

NatVis

Page 17: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Visual Studio Debugging Tips

• 멀티 스레드 디버깅 • Parallel Stacks

• Parallel Watch

Page 18: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

멀티스레드 디버깅

Page 19: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

Sample

• https://github.com/heejune/td2015

Page 20: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

감사합니다.

• MSDN Forum http://aka.ms/msdnforum

• TechNet Forum http://aka.ms/technetforum

Page 21: [Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)

http://aka.ms/td2015_again

TechDays Korea 2015에서 놓치신 세션은 Microsoft 기술 동영상 커뮤니티 Channel 9에서

추후에 다시 보실 수 있습니다.