Cole Software LLC Presents An unusually powerful diagnostic facility for OS/390 and z/OS programmers www.colesoft.com.

Slides:



Advertisements
Similar presentations
FatMax Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 LicenseCreative Commons Attribution-NonCommercial-ShareAlike 2.5.
Advertisements

Legal Meetings: Extended Instructions on Movica and Screencast.
Introduction to Macro Introduction to Visual Basic for Application Recording a Macro Looking at the code of Recorded Macro.
Categories of I/O Devices
Trap Diagnostic Facility Todays Software Diagnostic Tool with innovative features for the z/OS software developer Arney Computer Systems.
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
Cole software ® Presents A powerful diagnostic tool for Assembler language programmers.
Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Chapter One The Essence of UNIX.
Lab6 – Debug Assembly Language Lab
Realtime Equipment Database F.R.E.D. stands for Fastline’s Realtime Equipment Database. F.R.E.D. will allow you to list all your inventory online. F.R.E.D.
Web based payroll No software installation Upgrades and maintenance provided for you Secure connection via 128 bit SSL encryption Available anywhere,
1: Operating Systems Overview
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Introduction to a Programming Environment
GMetrix SMS Testing Center Guide.
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
CICS-Dbg1 Testing and Debugging Programmers responsibility that program works correctly! Can write program incrementally You must test anything that the.
Guide To UNIX Using Linux Third Edition
Introduction to Unix (CA263) Introduction to Shell Script Programming By Tariq Ibn Aziz.
Administrator’s Guide
Administrator’s Guide
Microsoft ® Office Word 2007 Training Mail Merge II: Use the Ribbon and perform a complex mail merge [Your company name] presents:
Homework Reading –Finish K&R Chapter 1 (if not done yet) –Start K&R Chapter 2 for next time. Programming Assignments –DON’T USE and string library functions,
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
1 CSC 2405: Computer Systems II Spring 2012 Dr. Tom Way.
Background History Note 1 Refer to Soltis: Appendix.
CW-V1 SDD 0201 Principals of Software Design and Development Introduction to Programming Languages.
Homework Reading Programming Assignments
Introduction to Shell Script Programming
CICS – Mainframe (LC) 2 Copyright © 2005, Infosys Technologies Ltd ER/CORP/CRS/TP01/003 Version No: 1.0 Course Schedule Day1 - Introduction to CICS Day2.
Debugging a Program … Using the PC/370 Emulator Interactively !
Programming Translators.
CIS—100 Chapter 9—PowerPoint 1. The PowerPoint User Interface 2 There is a tall band across the screen that contains many, very visual commands arranged.
Microsoft ® Office Access ™ 2007 Training Choose between Access and Excel ICT Staff Development presents:
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
CICS-Int1 Introduction to On-Line BATCH – Transactions are accumulated into groups (batches) before processing. ON-LINE – Interactive Transactions entered.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Database What is a database? A database is a collection of information that is typically organized so that it can easily be storing, managing and retrieving.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Robert Crawford, MBA West Middle School.  Explain how the binary system is used by computers.  Describe how software is written and translated  Summarize.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Assembly Language CS 333 Sam Houston State University Dr. Tim McGuire.
Slide 1 Project 1 Task 2 T&N3311 PJ1 Information & Communications Technology HD in Telecommunications and Networking Task 2 Briefing The Design of a Computer.
1 Software. 2 What is software ► Software is the term that we use for all the programs and data on a computer system. ► Two types of software ► Program.
Application Software System Software.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Processes and Threads.
Introduction to Microsoft Excel Macros COE 201- Computer Proficiency.
1 Day 2 Logging in, Passwords, Man, talk, write. 2 Logging in Unix is a multi user system –Many people can be using it at the same time. –Connections.
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Assembly Language CS 333 Sam Houston State University Dr. Tim McGuire.
+ Publishing Your First Post USING WORDPRESS. + A CMS (content management system) is an application that allows you to publish, edit, modify, organize,
Sem 2v2 Chapter 5 Router Startup and Setup. A router initializes by loading the bootstrap, the operating system, and a configuration file. If the router.
Creating Data Sheets. When you see a Red circle or a next button, like this, that means we want you to click on something. These are the same steps you’ll.
Getting ready. Why C? Design Features – Efficiency (C programs tend to be compact and to run quickly.) – Portability (C programs written on one system.
Introduction to Computing Systems and Programming Programming.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Development Environment
Managing the Project Lifecycle
Lesson Objectives Aims You should be able to:
A451 Theory – 7 Programming 7A, B - Algorithms.
Order Processing and Requisition Accelerator
CSC235 - Visual Studio Tutorial
Using screens and adding two numbers - addda.cbl
Lecture 12 Input/Output (programmer view)
Presentation transcript:

Cole Software LLC Presents An unusually powerful diagnostic facility for OS/390 and z/OS programmers

What is z/XDC? z/XDC is the premier Assembler language debugging tool for Applications and Systems-level programmers. z/XDC is used by most of the world’s mainframe assembler developers and Fortune 500 companies to help them deliver quality applications that work in extremely complex environments. This short presentation will give you a brief overview of what z/XDC is, and what it can do. If you have ANY questions about z/XDC, please contact us at or callwww.colesoft.com Bob Shimizu at (800) XDC

How did z/XDC come to be? Dave wrote his debugger out of frustration with TSO TEST, which he found difficult to use. z/XDC, and the XDC family of debugging tools that preceded it are the work of one man: Dave Cole. So, Dave wrote something BETTER!

How does z/XDC work?  z/XDC is an ESTAI or ESTAE, a huge abend-handler.  All breakpoints and traces are done by inserting a X’00’ into the execution stream.  When executed, the resulting 0C1 abend is trapped by z/XDC.  z/XDC then shows you the code.  This is simple, and eminently transportable! This is just like forcing a dump, BUT z/XDC allows you to work interactively Without wasting time or paper!

z/XDC’s structure allows you to debug in some unusual programming environments. Your TSO programs Your ISPF Programs Your batch jobs Your Started tasks Your SVC routines Your PC routines Your IRB routines Your CICS, DB2 and IMS routines Your System exit routines (SMF, DADSM, VTAM, RACF, JES2) Your Vendor product exit routines z/XDC can go to places that no other tool can take you.

And in some unusual storage locations In your TSO address space In someone else’s TSO address space In a background address space (batch or started task) In common storage In MLPA, FLPA, DLPA In the PLPA z/XDC is a POWER TOOL!

You can use z/XDC as a “learning tool”. Un-documented interfaces; Applications that have poor documentation; Exit code that isn’t behaving as “advertised”; Anything the user needs to learn about in the system! You can start a z/XDC session and investigate: z/XDC makes it easy to find out what is REALLY happening in “black box” programs!

z/XDC is a training aid Teach yourself how a program REALLY works.  Trace execution starting anywhere you like.  Use DSECT maps to SEE storage fields and their values.  Create multiple Display windows to show memory addresses.  See them change as your program modifies them.  Trace your program and see what it does “in nature”. z/XDC brings CLARITY to the debugging process. It makes solving difficult problems FUN!

z/XDC’s philosophy Programmers spend a lot of mental “overhead” figuring out pointer chains, hex addresses, visualizing esoteric structures, decoding object code and doing hex math in their heads. You should not have to work hard to solve a problem. We don’t make you smarter. We DO make you more effective. Let z/XDC do this grunt work. It will free your mind of mental overhead, allowing you to think strategically about the problem.

How do we make it easy? Point-and-shoot disassembly; Point-and-shoot memory display; The ability to LIST key system structures; The ability to FIND hex or character data; Full source-statement support; Four kinds of breakpoints; Five kinds of traces; The ability to investigate other address spaces. z/XDC gives you: z/XDC saves effort. You save time!

Let’s start a z/XDC session We’ll select Option ‘2’, we’ll request APF-authorization and we’ll choose to debug “XDCSYMED”. Then, we press Enter…

And we get z/XDC! This is the “Working window”. This is where we’ll do the bulk of our debugging work. This is a “Display window”. It allows us to watch memory, registers or system structures change as the program executes. You can have as many Display windows as you like! You can create your own screen layouts, and recall them later!

Looking around z/XDC saves effort by showing useful information. Whenever it can, z/XDC does conversions for you! PSW fields, described in detail Register sets Individual registers and where they point to Control registers, described in detail We’re only showing a fraction of what z/XDC can list!

More interesting displays Here is the Task Control Block structure for this Address Space. Here is the Request Block structure for the current Task. Now let’s go disassemble some code…

Disassembled code z/XDC begins a session at a branch to the start of your program. We step one instruction. And the program will stop here. See the X’90EC’? That’s a Store Multiple instruction. We’ll put the cursor there, and press Enter…

Voila! This is an example of z/XDC’s Point-and-shoot disassembly. z/XDC performs point-and-shoot operations on memory, displacement addresses, and registers as well. Want to see the source statements for this program? It’s a SNAP!

Source statement support If you assemble your program with ADATA, then z/XDC can use it when displaying your code. This is much better than looking at pure object code, isn’t it? Now, let’s create a breakpoint…

Point-and-shoot breakpoints Type an “A” or a “T” next to any line of code, press Enter and you set a breakpoint! Then, type “GO” and the program stops there. Now we’re stopped at this point.

Breakpoints and Traces Permanent breakpoints Transient breakpoints Hooks Deferred breakpoints and hooks Single-step traces Trace to next branch statement Trace to successful branch Trace to unsuccessful branch Loop traces z/XDC’s breakpoints and traces support conditional statements. You can associate other z/XDC commands with any breakpoint or trace. You get power and flexibility!

Create a debugging session in another address space. In the next few slides, we’re going to “reach into” another address space and start a debugging session there. Here are the steps:  We’ll use Foreign Address Space Mode to “go” to another address space.  We’ll set a HOOK there.  We’ll use Cross Domain Facility to connect to the new debugging session. This is WAY COOL!

Foreign Address Space Mode We issue “SET ASID BOB2”, And we’re looking into BOB2’s Address Space! We issue “LIST TASKS”, put an “L” next to the WTOR task and press Enter. This action will issue LIST RBS for that task…

Looking at BOB2’s code We put an “F” next to the Request Block and disassemble the code that it points to. We TAKE CONTROL of that program by putting a “K” next to a line of code. This sets a HOOK. We’re going to HIJACK this program!

The HOOK is created z/XDC has just put it’s HOOK SVC into the code stream. When the HOOK is executed, z/XDC will create a debugging session at this place in the code (WTOR+CC). Now, lets get out of FASM…

We end our FASM session We issue “SET ASID HOME” to leave BOB2’s address space. We’re done with this debugging session.

Connecting to BOB2’s Debugging Session We enter Option “3” on the z/XDC Startup Panel. This will allow us to connect To the code we HOOKed in BOB2’s Address Space.

And here is our z/XDC session! You are now ready to debug this batch job!

z/XDC lets you debug any program – at any time! We’ve demonstrated how to start a debugging session on the fly whenever you like!  We used Foreign Address Space Mode to set a HOOK in another Address Space.  We then connected our terminal to that debugging session In that other address space.  We can now debug that other address space interactively. You can use this mechanism to take control of any address space whenever you need to debug it.

On security z/XDC allows the programmer to do some very powerful things. However, a careless or malicious user could use our product to harm a running system. That is why system security calls (SAF calls) are made throughout the product so that your security people can absolutely control access to the product, and the product’s access to the system. z/XDC will interface with all the major security products so that rules can be written to enforce installation security standards. Some people may need access to the full range of z/XDC’s capabilities. Others may not. You decide! You have absolute control of z/XDC’s capabilities.

Let’s Review  z/XDC can be used on very simple, or extremely complex applications.  z/XDC does the “grunt” work so that you can think about the problem strategically.  z/XDC can help you understand undocumented programs.  z/XDC handles APF-authorized code, SVCs and PC routines.  z/XDC works on started tasks, batch programs – nearly anything in Assembler!  z/XDC makes new AND experienced programmers MUCH MORE EFFECTIVE. Your organization will deliver quality code more quickly. That was a whirlwind tour! We’ve shown you only 5% of what z/XDC can do for you. Very briefly:

How is z/XDC priced?  A 60-day trial of z/XDC is FREE.  Your first on-site training class is FREE.  z/XDC is priced by the concurrent user session.  We offer annual leases based on the number of concurrent user sessions desired (subject to some minimums).  Maintenance and Support is included in the lease cost. This is usage-based pricing.

Additional business benefits  You may upgrade the processor – NO UPGRADE FEEs.  You may transfer the product – NO TRANSFER FEEs.  You can split your user sessions site-wide – just like a site license.  You may add user sessions whenever you like.  Your people will have access to the world’s most powerful debugging tool! Our pricing policy is very open-handed! What’s not to like?

And what is Cole Software?  We do only one thing: Diagnostic tools for mainframe programmers.  We support most of the world’s mainframe assembler developers and a great many Fortune 500 companies.  We emphasize methodical design and excellent customer support.  We enjoy wide market penetration and the fanatical loyalty of some very experienced programmers. We’d like you to join our user community. For more information please visit or call Bob Shimizu at (800) XDC

Now, go get some REAL work done! (800) XDC-5150