Unleash the power of Delphi debugger

Slides:



Advertisements
Similar presentations
DEV-13: You've Got a Problem, Here’s How to Find It
Advertisements

COE Computer Organization & Assembly Language Introduction HLL vs. Assembly Programming Languages.
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
Finding and Debugging Errors
Visual Basic Debugging Tools Appendix D 6/27/20151Dr. Monther Aldwairi.
JavaScript, Fourth Edition
CIT 590 Debugging. Find a laptop Please take a moment to open up your laptop and open up Eclipse. If you do not have a laptop, please find a friend. If.
DEBUGGERS For CS302 Data Structures Course Slides prepared by TALHA OZ (most of the text is from
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Gdb is the GNU debugger on our CS machines. gdb is most effective when it is debugging a program that has debugging symbols linked in to it. With gcc and.
1/2002JNM Edit, Assemble, Link & Debug. 1/2002JNM Files Created.
Debugging Cluster Programs using symbolic debuggers.
Memory & Storage Architecture Seoul National University GDB commands Hyeon-gyu School of Computer Science and Engineering.
Debugging applications, using properties Jim Warren – COMPSCI 280 S Enterprise Software Development.
Debugging Projects Using C++.NET Click with the mouse button to control the flow of the presentation.
DEV339 Best Practices for Debugging Visual Studio.NET Applications Keith Pleas Architect, Guided Design
Debugging Dwight Deugo Nesa Matic
Debugging. 2 © 2003, Espirity Inc. Module Road Map 1.Eclipse Debugging  Debug Perspective  Debug Session  Breakpoint  Debug Views  Breakpoint Types.
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.
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.
UBI >> Contents Chapter 2 Software Development tools Code Composer Essentials v3: Code Debugging Texas Instruments Incorporated University of Beira Interior.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse debugger.
Chapter 0 Overview. Why you are here? Where will you go? What is this course for?
Module 6: Debugging a Windows CE Image.  Overview Debug Zones IDE Debug Setup IDE Debug Commands Platform Builder Integrated Kernel Debugger Other Debugging.
Debugging Visual Basic.NET Programs ► ► Use debugging tools ► ► Set breakpoints and correct mistakes. ► ► Use a Watch and Local window to examine variables.
A Tutorial on Introduction to gdb By Sasanka Madiraju Graduate Assistant Center for Computation and Technology.
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.
Bit-DSP-MicrocontrollerTMS320F2812 Texas Instruments Incorporated European Customer Training Center University of Applied Sciences Zwickau (FH)
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 What we'll cover here l Using the debugger: Starting the debugger Setting.
Debugging 1/6/2016. Debugging 1/6/2016 Debugging  Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a program.
COP 3530 Spring2012 Data Structures & Algorithms Discussion Session Week 2.
Visual Basic Integrated Development Environment (IDE) 56:150 Information System Design.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary Copyright © 2009 Ericsson, Made available under the Eclipse Public License.
Copyright Ó Oracle Corporation, All rights reserved Debugging Triggers.
15 Copyright © 2004, Oracle. All rights reserved. Debugging Triggers.
1 Advanced.Net Debugging Using Visual Studio, R# and OzCode IT Week, Summer 2015.
HP-SEE Debugging with GDB Vladimir Slavnic Research Assistant SCL, Institute of Physics Belgrade The HP-SEE initiative.
Debugging using By: Samuel Ashby. What is debugging?  A bug is an error in either a program or the hardware itself.  Debugging is first locating and.
Improving Your Application with IntelliTrace #ITDevConnections.
1/21/2018 6:52 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Dynamic Analysis ddaa.
DEV-25: You've Got a Problem, Here’s How to Find It
CSE 374 Programming Concepts & Tools
Debugging Dwight Deugo
Debugging CMSC 202.
LESSON 20.
Testing Key Revision Points.
gdb gdb is the GNU debugger on our CS machines.
Barb Ericson Georgia Institute of Technology Dec 2009
Debugging Techniques.
Using Visual Studio with C#
Important terms Black-box testing White-box testing Regression testing
DEBUGGING.
Important terms Black-box testing White-box testing Regression testing
Advanced Debugging in Delphi
Parallel Programming Done Right with OTL and PPL
Super Charge Your Debugging in Visual Studio
DEBUGGING JAVA PROGRAMS USING ECLIPSE DEBUGGER
Microsoft Build /6/2018 4:22 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Debugging at Scale.
Debugging Taken from notes by Dr. Neil Moore
Testing, debugging, and using support libraries
Our Environment We will exercise on Microsoft Visual C++ v.6
Debugging Taken from notes by Dr. Neil Moore
Debugging Dwight Deugo
Windows Service Applications
How to debug a website using IE F12 tools
Chapter 1 Introduction.
Hello World Program In Visual Studio and Debugging
Presentation transcript:

Unleash the power of Delphi debugger Primož Gabrijelčič

About me Pascal programmer since 1984 (HiSoft pascal on ZX Spectrum) First contact with Borland: Turbo Pascal 3 (on CP/M) Programming highly responsive 24/7 applications since 1997 Writer: The Delphi Magazine, Blaise Pascal, Monitor (Slovenia) Blogger: http://thedelphigeek.com Contact me: http://primoz.gabrijelcic.org

Debugging

Basics F9 Run with debugging Shift+Ctrl+F9 Run without debugging Ctrl+F2 Program reset F4 Run to current position F8 Step over F7 Trace into Shift+F7 Trace to next source line Shift+F8 Run until return F5 Toggle breakpoint Shift+F5 Enable/disable breakpoint

Settings / Project Options Project, Options, Delphi Compiler, Compiling Optimization Debug information Use debug .dcu‘s Selective Debugging Expert by Uwe Raabe http://www.uweraabe.de/Blog/2015/05/08/selective-debugging/ Delphi Compiler, Linking Include Remote Debug symbols

Settings / IDE Options Tools, Options, Debugger Options F1! General Event log F1!

Breakpoints

Properties: Enabled Enabled Shift-F5

Properties: Condition slow code DebugBreak(condition) https://github.com/gabr42/GpDelphiUnits

Properties: Pass count slow Narrowing down reproducible problems

Side effects: Break Break

Side effects: Log message

Side effects: Eval expression OutputDebugString Loggers (CodeSite …) Log to console GpConsole

Side effects: Log call stack Full Partial

Groups Group Enable group Disable group manual toggle

Threads Properties, Thread Freeze all other threads Thaw all threads

Exceptions Tools, Options Ignore subsequent exceptions Debugger Options Embarcadero Debuggers Language Exceptions Ignore subsequent exceptions Handle subsequent exceptions ExceptionClass

Hardware breakpoints Address Data Limited number Code execution Can be set on read-only memory Data Data access Limited number DR0 … DR3 Disabled on program restart

Tips and tricks [1] Run until return Moving a breakpoint with mouse Options, Line number Moving execution point Set next statement “repeat last statement”

Tips and tricks [2] Call stack breakpoints DLL import breakpoints Disable/enable all

Debugging remotely

Remote debugger Platform Assistant [PAServer] Remote Debugger [rmtdbgXXX.exe] Firewall! Ubuntu demo

Evaluate & Watch

Evaluating expressions Ctrl+F5 Add watch Ctrl+F7 Evaluate/Modify Alt+F5, Ctrl+Shift+click Inspect

Evaluate / Watch Ctrl+F5 Add watch Ctrl+F7 Evaluate/Modify Alt+F5, Ctrl+Shift+click Inspect

Optimizer DontOptimize procedure DontOptimize(var data); begin // do nothing end; GpStuff A A,x A,r a.Signature a.Signature^ a.Signature^,20 PChar(a.Signature)^ PChar(a.Signature)^,20 string(a.Signature)

Q & A