Advanced Debugging With Visual Studio & OzCode

Slides:



Advertisements
Similar presentations
DEV-2: Getting Started with OpenEdge® Architect – Part I
Advertisements

The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
USABILITY AND EVALUATION Motivations and Methods.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
P51UST: Unix and Software Tools Unix and Software Tools (P51UST) Compilers, Interpreters and Debuggers Ruibin Bai (Room AB326) Division of Computer Science.
Introduction to C++ Programming Lab1 Estimated time : 35 min.
INDUSTRIAL PROJECT (234313) ULTRASOUND SCANNER EMBEDDED ONLINE PROFILER Students: Liat Peterfreund, Hagay Myr Supervisor: Mr. Tomer Gal (GE Healthcare)
Debugging in Java. Common Bugs Compilation or syntactical errors are the first that you will encounter and the easiest to debug They are usually the result.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
VB – Debugging Tools Appendix D. Why do we need debugging? Every program has errors, and the process of finding these errors is debugging Types of errors.
Visual Basic.NET BASICS Lesson 1 A First Look at Microsoft Visual Basic.NET.
A Tutorial on Introduction to gdb By Sasanka Madiraju Graduate Assistant Center for Computation and Technology.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
Debugging Xin Tong. GDB GNU Project debugger Allows you to see what is going on `inside' another program while it executes or crashed. (Faster than printing.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
Debuggers in Python. The Debugger Every programming IDE has a tool called a debugger. This application does NOT locate or fix your bugs for you! It slows.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 11 – gdb and Debugging.
Advanced Debugging with Visual Studio Ingo Rammer | thinktecture | Please note: this session is a „classic“
1 Advanced.Net Debugging Using Visual Studio, R# and OzCode IT Week, Summer 2015.
What's New in Visual Studio 2010 Debugging Brian Peek Senior Consultant, ASPSOFT, Inc. Microsoft MVP - C#
Debuggers. Errors in Computer Code Errors in computer programs are commonly known as bugs. Three types of errors in computer programs –Syntax errors –Runtime.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the use of the High-performance.
John Cunningham Development Manager Microsoft DTL323.
Improving Your Application with IntelliTrace #ITDevConnections.
Introduction ITEC 420.
1/21/2018 6:52 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Chapter 2: The Visual Studio .NET Development Environment
14 Compilers, Interpreters and Debuggers
Microsoft Ignite /10/2018 3:38 AM
Introduction to ASP.NET 2.0
Class 1: An Introduction to MCU Software Development
DEV-25: You've Got a Problem, Here’s How to Find It
CSE 374 Programming Concepts & Tools
LESSON 20.
1. Introduction to Visual Basic
Robotic Process Automation Training| RPA online Training at GoLogica
What’s New in Visual Studio 2017
Testing Key Revision Points.
Using Visual Studio with C#
Visual Studio 2005 “Personalized productivity”
DotnetConf 11/14/2018 8:22 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
VISUAL BASIC.
.NET Debugging for the Production Environment
Chapter 2 – Introduction to the Visual Studio .NET IDE
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל-Windows 8
Windows Helps Enable Reliable Projections of Aircraft’s Technical & Operational Performance “Windows has enabled us to adapt our back office software for.
Super Charge Your Debugging in Visual Studio
Microsoft Build /6/2018 4:22 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Tonga Institute of Higher Education
Software testing and configuration : Embedded software testing
Using a Debugger 1-Jan-19.
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Our Environment We will exercise on Microsoft Visual C++ v.6
ARCHITECTURE OVERVIEW
DEV354 Visual Studio 2005: New Enhancements For Debugging Applications
Debugging Taken from notes by Dr. Neil Moore
Move from Scripted Manual Testing to Scenario-Based Testing
Build /4/ Diagnosing issues with Windows Phone 8.1 JavaScript apps using Visual Studio Andy Sterland Senior Program
Visual Studio 2010 和 .NET Framework 4 培训研讨会
Working with events in the Edge dev tools
Introduction to Windbg
Introduction to ASP.NET Parts 1 & 2
Hello World Program In Visual Studio and Debugging
Introduction to Methods and Interfaces
SAP Enable Now Web Assistant content strategy
Presentation transcript:

Advanced Debugging With Visual Studio & OzCode Omer Raviv Co-founder & CTO omerr@codevalue.net http://www.magicaldebugging.com http://codevalue.net

Every minute spent in the debugger is a minute squandered. Period. Why are we here today? Every minute spent in the debugger is a minute squandered. Period. 4/27/2019 OzCode

About Me Omer Raviv: Co-founder and CTO of OzCode Senior Consultant @ CodeValue .NET Open-source enthusiast Passionate about developer productivity

A leading software company About CodeValue A leading software company ~100 employees: more than 90 technology experts Provides high quality software development solutions Turn-Key projects Software development and consultation Tailor-made courses and training Fields of expertise include: Desktop & LOB applications Cloud Computing Advanced Mobile & Web Technologies User Experience (UX) & User Interface (UI) Application Lifecycle Management (ALM) and DevOps Embedded & IoT

Agenda Introduction The psychology of debugging The debugging process Debugging in VS2015 OzCode

About OzCode An innovative debugging extension for Visual-Studio Simplify & visualize complex statements Compare objects and collections Search and filter collections Focus on relevant data http://oz-code.com

My Journey as a developer

The Psychology of Debugging

Debug like a Boss Tennis Pro! 12/1/2014

The Psychology of Debugging Elizabeth Spiegel 12/1/2014

The Debugging Process Overview The two most common ways of using a debugger: 1. Wasting time 2. Quality time

The Debugging Process Overview Wasting time: Not knowing what your hypothesis is at any given time Getting into a rot mindlessly hitting F10 Staring blankly at the screen Praying for a miracle

The Debugging Process Overview Quality time: Know exactly WHY you started the debugger Run it in your head first (rubber-ducking) Apply the Scientific Method, religiously Simplify the scenario, then write a test!

The Debugging Process Overview Separate facts from interpretation Wrong interpretation leads to a dead-end Divide and conquer Trap the bug in the corner Use the right tool for the bug & the context Isolate changes - do one change at a time See its effect (fact), draw a conclusion (interpretation)

Sherlock Holmes’ Advice on Debugging It is a capital mistake to theorise before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts. A Scandal in Bohemia, 1892 —

Use the right tools to decrease your Time-to-Aha factor The bottom line Debugging is HARD. Use the right tools to decrease your Time-to-Aha factor

.NET Debugger Options Visual Studio MDbg.exe - .Net Command line Debugger WinDbg + SOS.DLL|SOSEX.DLL|PSSCOR4.DLL

There are some moments in life… After which, life is no longer the same! The first kiss Your wedding The first child The first time you saw OzCode

Visual Studio 2015 – Lambda Evaluation in Immediate Window, Watch & OzCode Custom Expression

Controlling the Execution Context Using the debugger UI, you can switch between processes, threads, and stack locations Within the current context of the process and thread: Moving the instruction pointer to Skip code Re-run code Setting variable values that control the execution path Expressions in if, switch, loop conditions Using Edit & Continue – SO MUCH BETTER IN VS2015!

Setting New Breakpoints Setting Breakpoints with Visual Studio 2015

.NET Performance & Debugging Method Breakpoints If you type a method name (without class name) VS select all that matches .NET Performance & Debugging

Visual Studio 2015 – Profiling While Debugging In VS 2015 – Performance Data “in your face” Performance tips Performance graphs

Let the Magic Begin

Tracing with Tracepoints Can print out any expression by surrounding with {} property/field/method call Special code can be used: Tracepoint variable name Meaning $ADDRESS Current instruction address $CALLER Caller name of current method $CALLSTACK The call stack at the current location $FUNCTION Current function name $PID Current process ID $PNAME Current process name $TID Current thread ID $TNAME Current thread name

Visual Studio Parallel Task & Parallel Stacks View the logical call, the logical call stack and the task/thread state

Parallel Watch - View local variable in each thread’s context

Summary The debugging process .NET debuggers Controlling the debugger The debugging loop Make it fail Make a hypothesis Collect evidence Prove or refine the hypothesis Advanced techniques and tools What’s new in Visual Studio 2015 C# debugger

Thanks!