Debugging with OpenEdge Architect An introduction to the IDE s integrated debugger

Similar documents
PDSOE Workspace Management and Organisation. Marko Rüterbories Senior Consultant

OpenEdge Architect Template Customization

Mike Fechner Director

Mike Fechner, Consultingwerk Ltd.

The OpenEdge Application Modernization Framework. Mike Fechner, Director, Consultingwerk Ltd.

The Backend of OE Mobile in OpenEdge Mike Fechner, Consultingwerk Ltd. PUG Challenge Americas, June 2013

Integrating the Progress Rollbase Portal into OpenEdge Applications. Mike Fechner, Director, Consultingwerk Ltd.

OpenEdge GUI for.net Adoption and Migration Strategies

The OpenEdge Application Modernization Framework. Mike Fechner, Director, Consultingwerk Ltd.

Integrating Progress Rollbase with OpenEdge the REST of the story. Mike Fechner, Director, Consultingwerk Ltd.

OpenEdge Legacy Application Modernization by Example. Mike Fechner, Consultingwerk Ltd.

Managing Data in an Object World. Mike Fechner, Director, Consultingwerk Ltd.

Progress Dynamics for OpenEdge Architect 10.1B Software Configuration Management

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

REST in Peace Mastering the JSDO with a Dynamic ABL backend. Mike Fechner, Consultingwerk Ltd.

USING APPSERVER SUPPORT IN OPENEDGE ARCHITECT

Leverage the Power of Progress Developer Studio for OpenEdge. 8 th Oct, 2013

Creating a new CDC policy using the Database Administration Console

REST API Documentation Using OpenAPI (Swagger)

ABL Unit Testing Part 1: Test Strategy. Mike Fechner Director

Consultingwerk Continuous Deployment of OpenEdge Applications. Daniël van Doorn Senior Consultant

OPENEDGE TRAINING SYNOPSES course synopses for OpenEdge Training.

Soar IDE. Keith Knudsen, Mike Quist, Dave Ray & Bob Wray May 24, 2007

Noopur Gupta Eclipse JDT/UI Committer IBM India

OE101b Architect OpenEdge Architect. John Kendall Solvepoint Corporation

A Tutorial for ECE 175

CodeWarrior Development Studio for Power Architecture Processors FAQ Guide

SpringSource Tool Suite 2.7.1

I m sorry, I haven t a clue. James Palmer Software Developer / Database Administrator

SpringSource Tool Suite M2

2 ABOUT VISUALDSP++ In This Chapter. Figure 2-0. Table 2-0. Listing 2-0.

Enterprise Architect. User Guide Series. Portals. Author: Sparx Systems. Date: 19/03/2018. Version: 1.0 CREATED WITH

Tools to Develop New Linux Applications

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang

Effective Team Collaboration with Simulink

Enterprise Architect. User Guide Series. Portals

REPORT MICROSOFT PATTERNS AND PRACTICES

The Eclipse Parallel Tools Platform Project

CSC207 Week 4. Larry Zhang

Documentation of Eclipse Applications with DITA

Embedded automotive applications are just a few clicks away. Philippe NOEL - STMicroelectronics

NetBeans Tutorial. For Introduction to Java Programming By Y. Daniel Liang. This tutorial applies to NetBeans 6, 7, or a higher version.

Supplement: Visual C++ Debugging

Before you start with this tutorial, you need to know basic Java programming.

An Introduction to e 2 studio

IBM i Debugger. Overview Service Entry Points Debugger Functions Attach to an IBM i Job Launch Configurations and Settings

Module Road Map. 7. Version Control with Subversion Introduction Terminology

P17 System Testing Monday, September 24, 2007

NSIGHT ECLIPSE EDITION

IBM WebSphere Development Studio for IBM iseries V5R1 and V5R2 Refreshed with New WebSphere Studio, V5.0 Workstation Tools

Resource 2 Embedded computer and development environment

JBoss IDE Quick Start Guide

NSIGHT ECLIPSE EDITION

Ch 1: The Architecture Business Cycle

J2EE Development Best Practices: Improving Code Quality

Your password is: firstpw

What is Software Architecture

Enterprise Architect. User Guide Series. Portals

STM32 Ecosystem Workshop. T.O.M.A.S Team

Visual Studio 2008 Load Symbols Manually

Software Architecture

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin

10 ways to reduce your tax bill. Amit Nithianandan Senior Search Engineer Zvents Inc.

Introduction to Eclipse

BASICS OF THE RENESAS SYNERGY PLATFORM

Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in

CodeWarrior Development Studio for Advanced Packet Processing FAQ Guide

DEV-4: Extending Progress Dynamics

Getting the Most from Eclipse

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

Lab 1: Space Invaders. The Introduction

NordiaSoft SCA Architect 2016

GETTING STARTED WITH ECLIPSE Caitrin Armstrong

MQ Explorer for Power Users

Introducing HP NonStop Development Environment Version 2.0 for Eclipse (NSDEE 2.0)

Copyright Notice. 2 Copyright Notice

FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER

InfoSphere Data Architect Pluglets

Charles Guarino Central Park Data Systems, Inc. About The Speaker

JDB - QUICK GUIDE JDB - INTRODUCTION

Practical Model-Driven Development with the IBM Software Development Platform

A free continuous code review plug in for Eclipse

ECE QNX Real-time Lab

VISUAL CONFIGURATION EXPLORER

Composer Guide for JavaScript Development

The Road to CCSv4. Status Update

Introduction to Eclipse

HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS

Beginner s guide to continuous integration

EW The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually.

Software Engineering

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, March 2017

Using Virtual Platforms To Improve Software Verification and Validation Efficiency

Enterprise Architect. User Guide Series. Profiling. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH

What's New in CDT 7.0? dominique dot toupin at ericsson dot com

IBM C Rational Functional Tester for Java. Download Full Version :

Enterprise Architect. User Guide Series. Profiling

Code::Blocks Student Manual

Zend Studio 3.0. Quick Start Guide

Optimizing Emulator Utilization by Russ Klein, Program Director, Mentor Graphics

Transcription:

Debugging with OpenEdge Architect An introduction to the IDE s integrated debugger This talk is about debugging techniques Not about good coding practices! Mike Fechner, Consultingwerk Ltd. PUG Challenge, Friday, 13th 2009, Rotterdam

Consultingwerk Ltd. Independent IT consulting organisation Focussing on OpenEdge and.net Progress Consulting Partner, long running cooperation with PSC Located in Cologne, Germany Consulting, conception, coaching, development, training, mentoring, review Customers located in Germany, Europe (EU, CH), USA Vendor of tools and consulting packages Debugging with OpenEdge Architect 2

Consultingwerk Ltd. 20 years of Progress experience (V5 V10) Progress, OpenEdge, ADM2, Dynamics, OERA, Sonic MQ/ESB OpenEdge GUI for.net early adaptor (hands on since 10/2006) Debugging with OpenEdge Architect 3

Solutions for the OpenEdge GUI for.net WinKit SmartComponent Library Dynamics4.NET Tools can be used together or separately Share some common code base Debugging with OpenEdge Architect 4

Why do you need a debugger? You aren t putting bugs into your code in the first place! However, if someone else has been putting bugs into your code, you may have considered using the OpenEdge Architect debugger. Debugging with OpenEdge Architect 5

First computer bug (moth) The First "Computer Bug" Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September 1945. The operators affixed the moth to the computer log, with the entry: "First actual case of bug being found". (en.wikipedia.org) Debugging with OpenEdge Architect 6

Debugging (en.wikipedia.org) Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another. Technical aspect (tools) Organizational aspect (improving quality) Architectural aspect (loosely coupled easier to maintain) This talk focusses on the tools available in OEA 10.2A Debugging with OpenEdge Architect 7

Debugging with OpenEdge Architect Debugging features in OpenEdge Architect Test cases and run configurations Using the Integrated Debugger Debugging with OpenEdge Architect 8

Debugging features in OpenEdge Architect Preprocessor view Editor Macros Error Filters SCM Tools, Team provider Plugin-Infrastructure Tail, Logfile viewer Mylyn Debugging with OpenEdge Architect 9

Preprocessor view Creates preprocessed source code on the fly Right click, Editor, Show In -> Preprocessor Check the Link with Editor Button Customizable (Peter van Dam, PSDN Thread) http://communities.progress.com/pcom/message/71869#71869 Limitations: Works only for code that compiles Positioning works from source to preprocessor only, and only for compilable statements, no preprocessor, not include file references Debugging with OpenEdge Architect 10

Preprocessor view Debugging with OpenEdge Architect 11

Editor macros Editor macros provide an easy and straight forward way to insert reusable code blocks Ability to expand variables (date, time, text selection) Editor macros can be set up for comments containing default sections (who, what, when, why, project reference, customer reference) Can be exported and shared across team members for consistency Debugging with OpenEdge Architect 12

Error Filter By default OpenEdge Architect shows all compile errors and warnings in all opened projects Too many errors reduce visibility Can t see the forest because of those many trees Debugging with OpenEdge Architect 13

Error Filter Debugging with OpenEdge Architect 14

Error Filter Use item type to include or exclude case warning Use element selection to filter by ressource any element any element in selected project selected element only working set (can also be used for file search) Backend Frontend Product modules Debugging with OpenEdge Architect 15

SCM Tools / Team provider Common SCM tools integrate with Eclipse SVN, CVS, Roundtable, Perforce, MS TFS, Automatic or integrated check-in and check-out operations Debugging with OpenEdge Architect 16

SCM Tools / Team provider Review what has changed in the context of a certain task Ability to review changes prior to submit no more left over MESSAGE statements (in theory ) Access to source code at the time that caused an issue or the last time it was o.k. Who is to blame information Historic information, review versions Debugging with OpenEdge Architect 17

Eclipse Plugins: NTail http://www.certiv.net/downloads/ntaildownload.html Unix tail style log file tracing Stores opened log files in workspace config and reopens them at next launch of OEA Debugging with OpenEdge Architect 18

Eclipse Plugins: Mylyn http://www.eclipse.org/mylyn Task focussed extensions to Eclipse UI Tested / developed at IBM Integrates common bug tracking systems as task providers Task based time tracking Ability to pass task context (i.e. opened files, views) to another developer / reviewer / QA staff Debugging with OpenEdge Architect 19

MyLyn Debugging with OpenEdge Architect 20

Debugging with OpenEdge Architect Debugging features in OpenEdge Architect Test cases and run configurations Using the Integrated Debugger Debugging with OpenEdge Architect 21

Test cases Testing loosely coupled systems easier Very often a procedure or a class can t be executed directly from the OpenEdge Architect set up preconditions login, clicking thru menu system time consuming parameters / parameter combinations / extremes normal UI might prevent them but you should test the service for reliability as well force error conditions (test error behavior) static methods Debugging with OpenEdge Architect 22

Test cases OpenEdge Architect does not support scratch files Make that a feature, not an issue! Store test cases in a dedicated location UnitTest folder UnitTest project Document where they are located (bugtracking) so that others can see how seriously YOU have tested your work usually they shouldn t get deployed to the user (but potentially to QA) Debugging with OpenEdge Architect 23

Test cases In theory a feature request should come with documented test cases anyway Test driven development (TDD) starts with the test case and an empty class / procedure and continues development from there Debugging with OpenEdge Architect 24

Demo Test cases VatCalculator test cases Log-File in NTail Debugging with OpenEdge Architect 25

Run configurations Run configurations define AVM configuration used to launch programs and classes from OpenEdge Architect Run configurations will be (can be) created automatically when you run a file from the editor Can share settings of OpenEdge project definition (compiler settings) Settings may vary from project definition Pre-defined test-environment(s) within OEA project / workspace Debugging with OpenEdge Architect 26

Run configurations AVM Type (version, UI, batch, project runtime) Program to launch (or selected resource) Startup parameter PROPATH LOG-MANAGER settings Culture (-E, -d, code pages) Performance relevant settings Environment variables Debugging with OpenEdge Architect 27

Run configurations Database connections small / personal test database large / shared database archived databases from previous releases customer database(s) no database at all, AppServer client Debugging with OpenEdge Architect 28

Run configurations Can be stored locally (workspace) Can be stored in a shared file (.launch) Can be distributed via (SCM tool) Project name must match on remote system can be annoying when passing run config to another system.launch file easy to read XML file, so project name can be tweaked if required Debugging with OpenEdge Architect 29

Run configurations Debugging with OpenEdge Architect 30

Debugging with OpenEdge Architect Debugging features in OpenEdge Architect Test cases and run configurations Using the Integrated Debugger Debugging with OpenEdge Architect 31

The Integrated Debugger See and change variables, parameters Runtime object inspection Pseudo-objects too Stack trace Break points Line Error Watchpoint (when variable changes value) Expression watches Debugging with OpenEdge Architect 32

The Integrated Debugger Leverages Eclipse Debug Framework Allows non-modal debugging Multiple concurrent debug sessions Persists breakpoints and settings Invoke using run configurations Needs r-code, but Compiler debug listings not required Can add missing source code Simplified inspection of complex objects Debugging with OpenEdge Architect 33

The Integrated Debugger Does not support remote debugging No invocation from MESSAGE box (unless already debugging the application) DEBUGGER System Handle DEBUGGER:SET-BREAK() good for conditional break point Need for source code can be disturbing when executing external code add external source code to workspace / project good practice anyway (i.e. ADM2 source code) Debugging with OpenEdge Architect 34

Debugger property evaluation Can be time intensive May lead to issues when property GETter contains logic May impact the order in which code is executed Debugging with OpenEdge Architect 35

Debugger perspective Designed for large screen resolution! Many views Debug Variables (ability to change values) Break points Expressions Dynamic objects Invoked automatically when debugging (A feature desirable for the other OEA perspectives as well) Debugging with OpenEdge Architect 36

Debugger: Demo VatManager Error break point Simple DO i loop Watchpoint, Change value Dynamic Query Memory Leak Tracing OO ABL Class, Property evaluation Debugging with OpenEdge Architect 37

Questions? Debugging with OpenEdge Architect 38

Dank U wel! Debugging with OpenEdge Architect 39