SlideShare a Scribd company logo
Game Programming
Development Tools
Nick Prühs
Objectives
• To understand the importance of improved workflows
• To get an idea of which kinds of useful tools are out there
• To learn how to integrate tools into your daily workflow
2 / 43
Automated Builds
• Allow you to create nightly releases of your current game version
• Automate any pre- and post-build steps required for creating new
builds
• Track build successes and failures and their reasons
• Provide access to previous builds (history)
• Can parameterize build input and output
3 / 43
Automated Builds
4 / 43
Jenkins CI – Slash Games
Automated Builds
5 / 43
Jenkins CI – Project Page
Typical Build Steps
• Accessing source control
▪ Syncing working copy
▪ Creating tags
• Writing version numbers
• Performing the actual build
• Packaging the build result
• Publishing the game on a build page
• Running unit tests
• Sending email notifications
6 / 43
Automated Builds
7 / 43
Jenkins CI – Project Configuration
Automated Builds
8 / 43
Jenkins CI – Build Result
API Documentation
• Can be automatically generated from properly formatted source
code comments
• Output format may vary (usually HTML)
• Tools are available for all major object-oriented languages (Javadoc,
Sandcastle, Doxygen)
9 / 43
Javadoc
10 / 43
Javadoc Comments
Javadoc
11 / 43
Javadoc – Invoked From Command Line
javadoc -d api -sourcepath src -subpackages com.example.project
Javadoc
12 / 43
Javadoc API Documentation
Sandcastle
13 / 43
XML Documentation Comments
Sandcastle
14 / 43
Sandcastle Help File Builder GUI
Sandcastle
15 / 43
MSDN-Style API Documentation
Doxygen
16 / 43
Doxygen Comment Blocks
Doxygen
17 / 43
Doxygen GUI Frontend
Doxygen
18 / 43
Doxygen API Documentation
Analytics in Games
• Track the origin, device and operation system of your players
• Track user engagement
▪ Retention
▪ A/B testing
• Track monetization success
• Track performance
▪ Framerate
▪ Crashes
19 / 43
Analytics in Games
• Involve many key questions
▪ What to track
▪ How to track (who, what, where, when)
▪ How to analyze data
• Enough material for a whole different course
20 / 43
Analytics in Games
21 / 43
Game Analytics Website
Analytics in Games
22 / 43
Game Analytics API Call
private void OnVictory(Event e)
{
var victoryData = (VictoryEventData)e.EventData;
var eventKey = string.Format
("Level:Victory:{0}:{1}", this.currentLevel, victoryData.Type);
GA.API.Design.NewEvent(eventKey);
}
Analytics in Games
23 / 43
Game Analytics Metrics
Analytics in Games
24 / 43
Game Analytics Funnel
Consistent Code Style
• StyleCop analyzes C# source code to enforce a set of style and
consistency rules
• Helps developers avoid common pitfalls and mistakes
• Settings file can be checked in to version control
25 / 43
Consistent Code Style
StyleCop Settings Dialog in Visual Studio 2012
26 / 43
Consistent Code Style
Part of a StyleCop Settings File
<StyleCopSettings Version="105">
<GlobalSettings>
<StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
<CollectionProperty Name="RecognizedWords">
<Value>Bresenham</Value>
<Value>Dijkstra</Value>
<Value>Endre</Value>
<Value>Fredman</Value>
<Value>multigraph</Value>
<Value>Stee</Value>
<Value>Tarjan</Value>
<Value>Tarjan's</Value>
<Value>unweighted</Value>
</CollectionProperty>
</GlobalSettings>
<Analyzers>
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
<Rules>
<Rule Name="DocumentationTextMustContainWhitespace">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
27 / 43
Consistent Code Style
StyleCop Warnings in Visual Studio 2012
28 / 43
Static Code Analysis
• ReSharper provides static code analysis
• Many, many shortcuts and quick fixes
• Improved refactoring
• Improved search features
• Code templates
29 / 43
Static Code Analysis
R# Static Code Analysis in Visual Studio 2012
30 / 43
Static Code Analysis
R# Suggestions in Visual Studio 2012
31 / 43
Static Code Analysis
R# Suggestions in Visual Studio 2012
32 / 43
Static Code Analysis
R# Suggestions in Visual Studio 2012
33 / 43
Eclipse
Eclipse Java Code Style Clean Up Settings
34 / 43
Eclipse
Eclipse Java Code Style Clean Up Settings
35 / 43
Hint
Setting up tools will always take
the same time.
Thus, the earlier you set up your
tools, the greater your benefit!
36 / 43
Crash Dump Analaysis
• Sadly, even released games and tools will sometimes crash
• Windows can automatically generate a minidump whenever a
program throws an unhandled exception
▪ Loaded modules
▪ Thread information
▪ Current call stack
• These can be loaded and debugged in Visual Studio
37 / 43
Crash Dump Analaysis
38 / 43
C:Program FilesProcdump>procdump.exe -ma -i D:TempDumps
ProcDump v7.0 - Writes process dump files
Copyright (C) 2009-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
With contributions from Andrew Richards
Set to:
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionAeDebug
(REG_SZ) Auto = 1
(REG_SZ) Debugger = "C:Program FilesProcdumpprocdump.exe" -accepteula -ma
-j "D:TempDumps" %ld %ld %p
Set to:
HKLMSOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionAeDebug
(REG_SZ) Auto = 1
(REG_SZ) Debugger = "C:Program FilesProcdumpprocdump.exe" -accepteula -ma
-j "D:TempDumps" %ld %ld %p
ProcDump is now set as the Just-in-time (AeDebug) debugger.
Crash Dump Analaysis
39 / 43
C:Program FilesProcdump>procdump.exe -u
ProcDump v7.0 - Writes process dump files
Copyright (C) 2009-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
With contributions from Andrew Richards
Reset to:
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionAeDebug
(REG_SZ) Auto = <deleted>
(REG_SZ) Debugger = "C:WINDOWSsystem32vsjitdebugger.exe" -p %ld -e %ld
Reset to:
HKLMSOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionAeDebug
(REG_SZ) Auto = <deleted>
(REG_SZ) Debugger = "C:WINDOWSsystem32vsjitdebugger.exe" -p %ld -e %ld
ProcDump is no longer the Just-in-time (AeDebug) debugger.
Crash Dump Analaysis
40 / 43
Deferencing a nullptr that will cause a crash
Crash Dump Analaysis
41 / 43
Minidump File Summary in Visual Studio
Crash Dump Analaysis
42 / 43
Debugging a Minidump in Visual Studio
References
• Croy, Bayer, Kawaguchi. Jenkins CI. http://www.Jenkins.io, May 2017.
• Oracle. Javadoc. http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-
135444.html., May 2017 6.
• Woodruff. Sandcastle Help File Builder. https://github.com/EWSoftware/SHFB, May 2017.
• Dimitri. Doxygen. http://www.stack.nl/~dimitri/doxygen/, May 2017.
• GameAnalytics. GameAnalytics. http://www.gameanalytics.com/, May 2017.
• Microsoft. StyleCop. https://github.com/StyleCop/StyleCop, May 2017.
• JetBrains. Resharper. http://www.jetbrains.com/resharper/, May 2017.
• The Eclipse Foundation. Eclipse. https://www.eclipse.org/, May 2017.
• MSDN. Crash Dump Analysis. http://msdn.microsoft.com/en-
us/library/windows/desktop/ee416349(v=vs.85).aspx, May 2017.
• MSDN. Collecting User-Mode Dumps. http://msdn.microsoft.com/en-
us/library/bb787181(VS.85).aspx, May 2017.
• Russinovich. ProcDump. http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx,
November 18, 2016.
43 / 43
Thank you!
http://www.npruehs.de
https://github.com/npruehs
@npruehs
nick.pruehs@daedalic.com
5 Minute Review Session
• Which steps can be automated using a build server?
• How can API documentation be generated automatically?
• Which data can be tracked by analytics?
• How can you enforce a consistent code style within your team?
• Which tools can help you to detect code quality issues?
• How can you debug applications that crashed outside of Visual
Studio?

More Related Content

PDF
Game Programming 13 - Debugging & Performance Optimization
PDF
Scrum - but... Agile Game Development in Small Teams
PDF
Game Development Challenges
PDF
Eight Rules for Making Your First Great Game
PDF
Game Programming 12 - Shaders
PDF
Game Programming 07 - Procedural Content Generation
PDF
Game Programming 06 - Automated Testing
PDF
What Would Blizzard Do
Game Programming 13 - Debugging & Performance Optimization
Scrum - but... Agile Game Development in Small Teams
Game Development Challenges
Eight Rules for Making Your First Great Game
Game Programming 12 - Shaders
Game Programming 07 - Procedural Content Generation
Game Programming 06 - Automated Testing
What Would Blizzard Do

What's hot (19)

PDF
Component-Based Entity Systems (Demo)
PDF
School For Games 2015 - Unity Engine Basics
PDF
Game Programming 00 - Exams
PDF
Style & Design Principles 03 - Component-Based Entity Systems
PDF
Game Programming 08 - Tool Development
PDF
Game Programming 09 - AI
PDF
Game Programming 01 - Introduction
PDF
Game Programming - Cloud Development
PDF
Game Programming 04 - Style & Design Principles
PDF
Game Programming 10 - Localization
PPTX
ECS: Making the Entity Debugger - Unite LA
DOCX
Y1 gd engine_terminology ig2 game engines
DOCX
Y1 gd engine_terminology ig2 game engines
PPTX
Maximize Your Production Effort (English)
PDF
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
PDF
2014 land your-first_patch_neutron
PDF
Continuous Testing
PDF
Testing In Agile
DOC
Y1 gd engine_terminologY
Component-Based Entity Systems (Demo)
School For Games 2015 - Unity Engine Basics
Game Programming 00 - Exams
Style & Design Principles 03 - Component-Based Entity Systems
Game Programming 08 - Tool Development
Game Programming 09 - AI
Game Programming 01 - Introduction
Game Programming - Cloud Development
Game Programming 04 - Style & Design Principles
Game Programming 10 - Localization
ECS: Making the Entity Debugger - Unite LA
Y1 gd engine_terminology ig2 game engines
Y1 gd engine_terminology ig2 game engines
Maximize Your Production Effort (English)
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
2014 land your-first_patch_neutron
Continuous Testing
Testing In Agile
Y1 gd engine_terminologY
Ad

Viewers also liked (13)

PDF
Game Programming 03 - Git Flow
PDF
Game Programming 02 - Component-Based Entity Systems
PDF
Tool Development A - Git
PDF
Game Programming 11 - Game Physics
PDF
Game Models - A Different Approach
PDF
Entity System Architecture with Unity - Unite Europe 2015
PDF
Designing an actor model game architecture with Pony
PDF
ECS architecture with Unity by example - Unite Europe 2016
PDF
Clean, fast and simple with Entitas and Unity - Unite Melbourne 2016
PPT
AAA Automated Testing
DOCX
Well known magazine name analysis
PPTX
المعارض والمؤتمرات شهر يونيو
PPTX
Chemo senses
Game Programming 03 - Git Flow
Game Programming 02 - Component-Based Entity Systems
Tool Development A - Git
Game Programming 11 - Game Physics
Game Models - A Different Approach
Entity System Architecture with Unity - Unite Europe 2015
Designing an actor model game architecture with Pony
ECS architecture with Unity by example - Unite Europe 2016
Clean, fast and simple with Entitas and Unity - Unite Melbourne 2016
AAA Automated Testing
Well known magazine name analysis
المعارض والمؤتمرات شهر يونيو
Chemo senses
Ad

Similar to Game Programming 05 - Development Tools (20)

PDF
The Next Mainstream Programming Language: A Game Developer's Perspective
DOCX
Game Engine terminology
DOCX
Engine Terminology
PPTX
PPT
.NET Debugging Tips and Techniques
PPT
.Net Debugging Techniques
DOCX
Engine Terminology 1
DOCX
Y1 gd engine_terminology (1) (4)
DOCX
Y1 gd engine_terminology (1)
PPTX
PRESENTATION ON Game Engine
PDF
Crash dump analysis - experience sharing
PPT
Tim Popl
PPT
The Next Mainstream Programming Language: A Game Developer’s Perspective
ODP
Preventing Complexity in Game Programming
DOCX
Y1 gd engine_terminology (1)
PDF
[CCP Games] Versioning Everything with Perforce
DOCX
Anthony newman y1 gd engine_terminologyvvvvv
PDF
Open Source Tools and the Software Engineering Process
PPT
Handling Many Platforms with a Small Development Team
The Next Mainstream Programming Language: A Game Developer's Perspective
Game Engine terminology
Engine Terminology
.NET Debugging Tips and Techniques
.Net Debugging Techniques
Engine Terminology 1
Y1 gd engine_terminology (1) (4)
Y1 gd engine_terminology (1)
PRESENTATION ON Game Engine
Crash dump analysis - experience sharing
Tim Popl
The Next Mainstream Programming Language: A Game Developer’s Perspective
Preventing Complexity in Game Programming
Y1 gd engine_terminology (1)
[CCP Games] Versioning Everything with Perforce
Anthony newman y1 gd engine_terminologyvvvvv
Open Source Tools and the Software Engineering Process
Handling Many Platforms with a Small Development Team

More from Nick Pruehs (8)

PDF
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
PDF
Unreal Engine Basics 05 - User Interface
PDF
Unreal Engine Basics 04 - Behavior Trees
PDF
Unreal Engine Basics 03 - Gameplay
PDF
Unreal Engine Basics 02 - Unreal Editor
PDF
Unreal Engine Basics 01 - Game Framework
PDF
Game Programming - Git
PDF
Tool Development 10 - MVVM, Tool Chains
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 05 - User Interface
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 03 - Gameplay
Unreal Engine Basics 02 - Unreal Editor
Unreal Engine Basics 01 - Game Framework
Game Programming - Git
Tool Development 10 - MVVM, Tool Chains

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
sap open course for s4hana steps from ECC to s4
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation theory and applications.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Machine Learning_overview_presentation.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Machine learning based COVID-19 study performance prediction
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Advanced methodologies resolving dimensionality complications for autism neur...
Network Security Unit 5.pdf for BCA BBA.
Building Integrated photovoltaic BIPV_UPV.pdf
Programs and apps: productivity, graphics, security and other tools
sap open course for s4hana steps from ECC to s4
“AI and Expert System Decision Support & Business Intelligence Systems”
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation theory and applications.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Machine Learning_overview_presentation.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Big Data Technologies - Introduction.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine learning based COVID-19 study performance prediction
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Game Programming 05 - Development Tools

  • 2. Objectives • To understand the importance of improved workflows • To get an idea of which kinds of useful tools are out there • To learn how to integrate tools into your daily workflow 2 / 43
  • 3. Automated Builds • Allow you to create nightly releases of your current game version • Automate any pre- and post-build steps required for creating new builds • Track build successes and failures and their reasons • Provide access to previous builds (history) • Can parameterize build input and output 3 / 43
  • 4. Automated Builds 4 / 43 Jenkins CI – Slash Games
  • 5. Automated Builds 5 / 43 Jenkins CI – Project Page
  • 6. Typical Build Steps • Accessing source control ▪ Syncing working copy ▪ Creating tags • Writing version numbers • Performing the actual build • Packaging the build result • Publishing the game on a build page • Running unit tests • Sending email notifications 6 / 43
  • 7. Automated Builds 7 / 43 Jenkins CI – Project Configuration
  • 8. Automated Builds 8 / 43 Jenkins CI – Build Result
  • 9. API Documentation • Can be automatically generated from properly formatted source code comments • Output format may vary (usually HTML) • Tools are available for all major object-oriented languages (Javadoc, Sandcastle, Doxygen) 9 / 43
  • 11. Javadoc 11 / 43 Javadoc – Invoked From Command Line javadoc -d api -sourcepath src -subpackages com.example.project
  • 12. Javadoc 12 / 43 Javadoc API Documentation
  • 13. Sandcastle 13 / 43 XML Documentation Comments
  • 14. Sandcastle 14 / 43 Sandcastle Help File Builder GUI
  • 15. Sandcastle 15 / 43 MSDN-Style API Documentation
  • 16. Doxygen 16 / 43 Doxygen Comment Blocks
  • 17. Doxygen 17 / 43 Doxygen GUI Frontend
  • 18. Doxygen 18 / 43 Doxygen API Documentation
  • 19. Analytics in Games • Track the origin, device and operation system of your players • Track user engagement ▪ Retention ▪ A/B testing • Track monetization success • Track performance ▪ Framerate ▪ Crashes 19 / 43
  • 20. Analytics in Games • Involve many key questions ▪ What to track ▪ How to track (who, what, where, when) ▪ How to analyze data • Enough material for a whole different course 20 / 43
  • 21. Analytics in Games 21 / 43 Game Analytics Website
  • 22. Analytics in Games 22 / 43 Game Analytics API Call private void OnVictory(Event e) { var victoryData = (VictoryEventData)e.EventData; var eventKey = string.Format ("Level:Victory:{0}:{1}", this.currentLevel, victoryData.Type); GA.API.Design.NewEvent(eventKey); }
  • 23. Analytics in Games 23 / 43 Game Analytics Metrics
  • 24. Analytics in Games 24 / 43 Game Analytics Funnel
  • 25. Consistent Code Style • StyleCop analyzes C# source code to enforce a set of style and consistency rules • Helps developers avoid common pitfalls and mistakes • Settings file can be checked in to version control 25 / 43
  • 26. Consistent Code Style StyleCop Settings Dialog in Visual Studio 2012 26 / 43
  • 27. Consistent Code Style Part of a StyleCop Settings File <StyleCopSettings Version="105"> <GlobalSettings> <StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty> <CollectionProperty Name="RecognizedWords"> <Value>Bresenham</Value> <Value>Dijkstra</Value> <Value>Endre</Value> <Value>Fredman</Value> <Value>multigraph</Value> <Value>Stee</Value> <Value>Tarjan</Value> <Value>Tarjan's</Value> <Value>unweighted</Value> </CollectionProperty> </GlobalSettings> <Analyzers> <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules"> <Rules> <Rule Name="DocumentationTextMustContainWhitespace"> <RuleSettings> <BooleanProperty Name="Enabled">False</BooleanProperty> </RuleSettings> </Rule> <Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText"> <RuleSettings> <BooleanProperty Name="Enabled">False</BooleanProperty> </RuleSettings> </Rule> 27 / 43
  • 28. Consistent Code Style StyleCop Warnings in Visual Studio 2012 28 / 43
  • 29. Static Code Analysis • ReSharper provides static code analysis • Many, many shortcuts and quick fixes • Improved refactoring • Improved search features • Code templates 29 / 43
  • 30. Static Code Analysis R# Static Code Analysis in Visual Studio 2012 30 / 43
  • 31. Static Code Analysis R# Suggestions in Visual Studio 2012 31 / 43
  • 32. Static Code Analysis R# Suggestions in Visual Studio 2012 32 / 43
  • 33. Static Code Analysis R# Suggestions in Visual Studio 2012 33 / 43
  • 34. Eclipse Eclipse Java Code Style Clean Up Settings 34 / 43
  • 35. Eclipse Eclipse Java Code Style Clean Up Settings 35 / 43
  • 36. Hint Setting up tools will always take the same time. Thus, the earlier you set up your tools, the greater your benefit! 36 / 43
  • 37. Crash Dump Analaysis • Sadly, even released games and tools will sometimes crash • Windows can automatically generate a minidump whenever a program throws an unhandled exception ▪ Loaded modules ▪ Thread information ▪ Current call stack • These can be loaded and debugged in Visual Studio 37 / 43
  • 38. Crash Dump Analaysis 38 / 43 C:Program FilesProcdump>procdump.exe -ma -i D:TempDumps ProcDump v7.0 - Writes process dump files Copyright (C) 2009-2014 Mark Russinovich Sysinternals - www.sysinternals.com With contributions from Andrew Richards Set to: HKLMSOFTWAREMicrosoftWindows NTCurrentVersionAeDebug (REG_SZ) Auto = 1 (REG_SZ) Debugger = "C:Program FilesProcdumpprocdump.exe" -accepteula -ma -j "D:TempDumps" %ld %ld %p Set to: HKLMSOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionAeDebug (REG_SZ) Auto = 1 (REG_SZ) Debugger = "C:Program FilesProcdumpprocdump.exe" -accepteula -ma -j "D:TempDumps" %ld %ld %p ProcDump is now set as the Just-in-time (AeDebug) debugger.
  • 39. Crash Dump Analaysis 39 / 43 C:Program FilesProcdump>procdump.exe -u ProcDump v7.0 - Writes process dump files Copyright (C) 2009-2014 Mark Russinovich Sysinternals - www.sysinternals.com With contributions from Andrew Richards Reset to: HKLMSOFTWAREMicrosoftWindows NTCurrentVersionAeDebug (REG_SZ) Auto = <deleted> (REG_SZ) Debugger = "C:WINDOWSsystem32vsjitdebugger.exe" -p %ld -e %ld Reset to: HKLMSOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionAeDebug (REG_SZ) Auto = <deleted> (REG_SZ) Debugger = "C:WINDOWSsystem32vsjitdebugger.exe" -p %ld -e %ld ProcDump is no longer the Just-in-time (AeDebug) debugger.
  • 40. Crash Dump Analaysis 40 / 43 Deferencing a nullptr that will cause a crash
  • 41. Crash Dump Analaysis 41 / 43 Minidump File Summary in Visual Studio
  • 42. Crash Dump Analaysis 42 / 43 Debugging a Minidump in Visual Studio
  • 43. References • Croy, Bayer, Kawaguchi. Jenkins CI. http://www.Jenkins.io, May 2017. • Oracle. Javadoc. http://www.oracle.com/technetwork/java/javase/documentation/index-jsp- 135444.html., May 2017 6. • Woodruff. Sandcastle Help File Builder. https://github.com/EWSoftware/SHFB, May 2017. • Dimitri. Doxygen. http://www.stack.nl/~dimitri/doxygen/, May 2017. • GameAnalytics. GameAnalytics. http://www.gameanalytics.com/, May 2017. • Microsoft. StyleCop. https://github.com/StyleCop/StyleCop, May 2017. • JetBrains. Resharper. http://www.jetbrains.com/resharper/, May 2017. • The Eclipse Foundation. Eclipse. https://www.eclipse.org/, May 2017. • MSDN. Crash Dump Analysis. http://msdn.microsoft.com/en- us/library/windows/desktop/ee416349(v=vs.85).aspx, May 2017. • MSDN. Collecting User-Mode Dumps. http://msdn.microsoft.com/en- us/library/bb787181(VS.85).aspx, May 2017. • Russinovich. ProcDump. http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx, November 18, 2016. 43 / 43
  • 45. 5 Minute Review Session • Which steps can be automated using a build server? • How can API documentation be generated automatically? • Which data can be tracked by analytics? • How can you enforce a consistent code style within your team? • Which tools can help you to detect code quality issues? • How can you debug applications that crashed outside of Visual Studio?