abap new debugger

92
ABAP255: New ABAP Debugger and Memory Inspector

Upload: adavellys

Post on 06-Apr-2015

429 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Abap New Debugger

ABAP255: New ABAP Debugger and Memory Inspector

Page 2: Abap New Debugger

Christoph Stoeck, SAP AG

Page 3: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 3

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 4: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 4

Agenda, New Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 5: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 5

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 6: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 6

Motivation

“IT_13” is quite small.

Who wasted the memory ??

Page 7: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 7

Motivation

Short-lived online SAP transactions, i.e. short-lived internal modes.

Long-lived online transactions, i.e. long-lived internal modes.

Different kinds of transactions

Former (< 6.10) Present( >= 6.10)

T1 T2 T1T3 T4 cic0

A1 A2 A3 A4

Internal modeLegend:

Memory leaks will not take effect as all memory is freed during deletion of an internal mode.

Memory leaks will take effect by summing up as the internal mode will not be deleted.

Page 8: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 8

Motivation

Consequences

Overview of all memory consuming objects needed

Ability to easily identify the most memory consuming objects

Sorted by memory consumption

Analyze memory consumption from inside ABAP Debugger

Create a memory snapshot (and analyze it later)

Method for analyzing memory leaks needed

Compare memory consumption at sync points of transaction

Ability to easily identify added memory objects

Create memory snapshots

Show difference of memory snapshots

Page 9: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 9

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 10: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 10

Memory Objects

Kinds of “dynamically growing memory objects” in ABAP

Named objectsStrings and Internal Tables

Declared with statement: DATA <name> Manner-of-speaking: data object, variable

Accessible by <name>

Value semantics

Anonymous objectsInstances of classes

Created by the statement: CREATE OBJECTOO manner-of-speaking: object

Instances of data typesCreated by the statement: CREATE DATASAP manner-of-speaking: anonymous data object

Accessible only via references

Reference semantics

Page 11: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 11

Dynamic memory objects with value semantics

Internal tablesNamed objects

Value semantics with “Copy on write”, i.e. table sharing with reference counting

The table body is in fact the dynamic memory object

Debugger: Access also via {T:n}, where n is the id of the internal table header

StringsNamed objects

Value semantics with “Copy on write”, i.e. string sharing with reference counting

Debugger: Access also via {S:n}, where n is the string id

Memory Objects

Page 12: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 12

str1 0

Memory Objects

Example: Strings

DATA: str1 TYPE STRING,str2 TYPE STRING.

⇒str1 = ‘Hallo’.

str2 = str1.

str1 = ‘Hugo’.

str2 str1

Stringheader 2

Hallo

Page 13: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 13

str1 0

Memory Objects

Example: Strings

DATA: str1 TYPE STRING,str2 TYPE STRING.

str1 = ‘Hallo’.

⇒str2 = str1.

str1 = ‘Hugo’.

str2 0 str1

Stringheader 2

Hallo

str2

Page 14: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 14

str1 0

Memory Objects

Example: Strings

DATA: str1 TYPE STRING,str2 TYPE STRING.

str1 = ‘Hallo’.

str2 = str1.

⇒str1 = ‘Hugo’.

str2 0 str1

Stringheader 2

Hallo

str2

Stringheader 3

Hugo

Page 15: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 15

str1 2 str1

Memory Objects

Example: Strings

DATA: str1 TYPE STRING,str2 TYPE STRING.

str1 = ‘Hallo’.

str2 = str1.

⇒str1 = ‘Hugo’.

str2 0

Stringheader 2

Hallo

str2

Stringheader 3

Hugo

Page 16: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 16

Memory Objects

Dynamic memory objects with reference semantics

ObjectsAnonymous objectsReference semanticsNo reference countingDebugger: Access via {O:n}, where n is the object id

Anonymous data objects Anonymous objectsReference semanticsNo reference countingDebugger: Access via {A:n}, where n is the anonymous data id

Page 17: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 17

ref1 0

Memory Objects

Anonymous data objects

DATA: ref1 TYPE REF TO I,ref2 TYPE REF TO I.

⇒CREATE DATA ref1.

ref1->* = 10.

ref2 = ref1.

ref2->* = 20.

ref2

{A:1}= 0

ref1

Page 18: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 18

1{r}: 0{A:1}= 10

ref1 0

Memory Objects

DATA: ref1 TYPE REF TO I,ref2 TYPE REF TO I.

CREATE DATA ref1.

⇒ref1->* = 10.

ref2 = ref1.

ref2->* = 20.

ref2 ref1

Anonymous data objects

Page 19: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 19

ref1 0

Memory Objects

DATA: ref1 TYPE REF TO I,ref2 TYPE REF TO I.

CREATE DATA ref1.

ref1->* = 10.

⇒ref2 = ref1.

ref2->* = 20.

ref2 0

{A:1}= 10

ref1 ref2

Anonymous data objects

Page 20: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 20

1{r}: 10{A:1}= 20

ref1 0

Memory Objects

DATA: ref1 TYPE REF TO I,ref2 TYPE REF TO I.

CREATE DATA ref1.

ref1->* = 10.

ref2 = ref1.

⇒ref2->* = 20.

ref2 0 ref1 ref2

Anonymous data objects

Page 21: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 21

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 22: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 22

Starting the Memory Inspector

Life analysis from inside ABAP Debugger, using the MI part of the debugger

Debugger Menu: Goto -> Status Display -> Memory Use

Stand-alone Memory Inspector, analyzing memory snapshots

Transaction “S_MEMORY_INSPECTOR”

From inside the debugger, comparing memory snapshots

Debugger Menu: Development -> Memory Analysis -> Compare Memory Snapshots

Creating memory snapshots

From inside the debugger

Debugger Menu: Development -> Memory Analysis -> Create Memory Snapshot

Command /hmusa in the command field on any screen

Call the WRITE_MEMORY_CONSUMPTION_FILE method of the CL_ABAP_MEMORY_UTILITIES class in your code. Use this option carefully to avoid running out of disk space

Starting the Memory Inspector

Page 23: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 23

Motivation

Demo

Page 24: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 24

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 25: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 25

Analyzing a Memory Snapshot

Analyzing Memory:

Bound MemoryMemory of the object “itself”

Minimum of memory that will be freed, if object is deleted

itab

oreforef

obj3

obj1 obj2

Referenced MemoryMemory of the object “itself” and all referenced objects

Maximum of memory that can be freed, if object is deleted

Dynamic memory objects’ sizes

Bound MemoryMemory of the object “itself”

Minimum of memory that will be freed, if object is deleted

Page 26: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 26

Analyzing a Memory Snapshot

… Dynamic memory objects’ sizes

Consequently 4 values:

Bound used

Bound allocated

Referenced used

Referenced allocated

Table bodies (internal tables) and strings Used memory

Memory of a table body (internal table) or a string that contains data of an application

Allocated memoryMemory of a table body (internal table) or a string that is allocated by the system

Used memory <= allocated memory

Page 27: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 27

Analyzing a Memory Snapshot

Examples:s : {Anonymous objects} Bytes size of an object or an anonymous data objectsu : {Named objects} Bytes used size of a table body (internal table) or a

string sa : {Named objects} Bytes allocated size of a table body (internal table) or

a string

s(obj4)+su(str2)

s(obj4)+sa(str2)

s(obj4)s(obj4)

s(obj1)+s(obj2)

s(obj1)+s(obj2)

s(obj1)s(obj1)

Referenced used

Referenced allocated

Bound used

Bound allocated

Rule: The size of a string or a table body is added to its father’s size if and only if the reference count is one.

obj3 str1

obj4 str2

obj5

obj1 obj2

?

s(obj3)+su(str1)

s(obj3)+sa(str1)

s(obj3)+su(str1)

s(obj3)+sa(str1)

s(obj1)+s(obj2)

s(obj1)+s(obj2)

s(obj1)s(obj1)

Referenced used

Referenced allocated

Bound used

Bound allocated

s(obj1)+s(obj2)

s(obj1)+s(obj2)

s(obj1)s(obj1)

Referenced used

Referenced allocated

Boundused

Boundallocated

Page 28: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 28

Strongly Connected Components* can be treated as ONE object.

Analyzing a Memory Snapshot

*A strongly connected component of a directed graph is a subset S of the graph such that for any nodes A and B of S exists always a path from A to B and from B to A, and S is not a subset of any larger such set.

Page 29: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 29

Analyzing a Memory Snapshot

Strongly Connected Components* can be treated as ONE object.

To delete a SSC (garbage collector), simply delete all references to it.

*A strongly connected component of a directed graph is a subset S of the graph such that for any nodes A and B of S exists always a path from A to B and from B to A, and S is not a subset of any larger such set.

Page 30: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 30

Analyzing a Memory Snapshot

Strongly Connected Components* can be treated as ONE object.

To delete a SSC (garbage collector), simply delete all references to it.

*A strongly connected component of a directed graph is a subset S of the graph such that for any nodes A and B of S exists always a path from A to B and from B to A, and S is not a subset of any larger such set.

Page 31: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 31

TopN-Consumer-Lists

Filter memory objects

Sort according toBound memoryReferenced memory…

Aggregation of types (class / data type)

Find References

Identification as part of a SSC

Features in ABAP Debugger

Finding all “instances” of classes and data types with high memory consumption (e.g. trees, linear lists, etc…)

Finding “objects” with high

memory consumption:

Internal tables

Strings

Objects

Anonymous data objects

Finding references to internal tables, strings, objects and anonymous data objects, keeping them alive.

Page 32: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 32

Strongly Connected Component List

TopN-Consumer-List

Show all SSC objects

Show all references into the SSC

Features in ABAP Debugger

Finding all references to the SSC keeping it alive.

Memory consumption overview

Allocated / used

Memory areas (experts only )Heap

Roll

Page 33: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 33

Features in ABAP Debugger

Demo

Page 34: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 34

Viewing memory snapshots

Analysis in different views

Overview, sorted by kind of “objects”

TopN-Consumer-List

TopN-Consumer-List with aggregation

Strongly Connected Component List

Memory consumption overview (experts only)

Features in Stand-Alone TA

Page 35: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 35

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 36: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 36

Comparing memory snapshots

Growth of memory objects in different views

Overview, sorted by kind of “objects”

TopN-Consumer-List

TopN-Consumer-List with aggregation

Strongly Connected Component List

Memory consumption overview (experts only)

Newly loaded programs, classes or interfaces

Features in Stand-Alone TA

Page 37: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 37

Comparing Memory Snapshots

DATA oref TYPE REF TO lcl.

DATA itab TYPE STANDARD TABLE

OF REF TO lcl.

CREATE OBJECT oref.

APPEND oref TO itab.

CREATE OBJECT oref.

APPEND oref TO itab.

oref

itab

itab

oref obj1

oref

obj1

itab

oref

obj2

oref

oref

Page 38: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 38

Comparing Memory Snapshots

Difference of 2 snapshots

One instance of class “lcl” was added

Page 39: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 39

Comparing Memory Snapshots

There are two references to the new

instance of “lcl”

The added instance comes with 100 bytes

Page 40: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 40

Comparing Memory Snapshots

Internal Table “itab” changed

Bound memory of “itab” grew by 8 bytes,

i.e. new line “oref” in itab

One line was added to “itab”

Page 41: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 41

Comparing Memory Snapshots

Referenced Memory of “itab” grew by 108 bytes,

i.e. line “oref” in itab and “obj2”

Page 42: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 42

Agenda, Memory Inspector

Memory Inspector

Motivation

Basics

Starting the Memory Inspector

Analyzing a Memory Snapshot

Comparing Two Memory Snapshots

Summary

Page 43: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 43

In ABAP Debugger

TopN-Consumer-Lists

Aggregation of types (class/data)

Find references

List of Strongly Connected ComponentsShow all references into the SSC

Memory consumption overview

In Stand-Alone TA

Analyzing memory snapshots

Comparing memory snapshots

Growth of memory objects in different views

Available in Release 6.20 ( SP 29, Sept.2003 )

Memory Inspector: Features Summary

Page 44: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 44

Exercise 1

Run Program ZMI_DEMO

Try to find the memory leak in the source code

Use the Memory Inspector and the ABAP Debugger

Hint: To set a watchpoint on an internal table (e.g. ‘itab’) to be alarmed when its size changes, you can set a watchpointto the header of ‘itab’, i.e. ‘*itab’.

Page 45: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 45

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 46: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 46

Motivation

We have already a powerful

ABAP Debugger.

Why do we need a newone ??

Page 47: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 47

Motivation

Demo

Page 48: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 48

Classic Debugger

Technology

Debugger and debuggee run in the same (internal) session

Debugger dynpros placed “in-between”

ConsequencesNot all ABAP code can be debugged (no conversion / field exits)

Not free of side effects (F1, F4 help, list output)

Implementation of new features not always straight-forward

No chance to use modern UI techniques (no ABAP allowed in the debugger !)

Classic Debugger – Current Status

We need a new ABAP debugger technology

Page 49: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 49

Goals – New ABAP Debugger

Higher productivity for development & support using ABAP Debugger

More robust debugger architecture (no side effects)

Possibility to implement new features (e.g. a diff tool for

internal tables) faster and with less risks

More flexible & extensible state-of-the-art debugger UI

Use two separated sessions for the debugger and the application

Page 50: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 50

New ABAP Debugger – First Impression

Page 51: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 51

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 52: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 52

Two Process Architecture

Session 1 - Debugger

ABAP VM

Session 2 - Debugger

UI

Debugger Engine

The New Debugger is attached to an “external session”

/h

Page 53: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 53

Two Process Architecture - Consequences

The New Debugger is started in a separated external session, after prompting “/h”The debuggee is inactive while the debugger is active.Advantage: During debugging you still see your last screen input

/h

Page 54: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 54

Two Process Architecture - Consequences

When the program is finished, the debugger is still available but inactiveThe debugger is not closed as long as the debuggee (external) session is alive !You may detach the debugger by prompting “/hx” in the debuggee sessionAdvantage: The debugger with all your settings, variables, breakpoints,…is always available, when you continue debugging !

Page 55: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 55

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 56: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 56

Starting The New Debugger

The New Debugger can be started with same commands (/h, “Debugging” in se38 …) as the Classic Debugger.

Each user can specify his default debugger in the workbench settings.

Page 57: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 57

Switching Between New <-> Classic Debugger

Some techniques and features are still missing in the New Debugger-> Easy switch between the two debugger variants is provided

Page 58: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 58

Motivation

Demo

Page 59: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 59

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 60: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 60

New Debugger UI – Main Parts

Source line / SY-FieldsControl Area

Process Info

Desktops

Tools

Page 61: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 61

New Debugger UI – Desktops

The New Debugger provides:Three user specific desktops, which you can customize and save as your favorite debugger environmentSix standard desktops, which should cover most of the common working conditions in thedebugger:

Standard: Stepping through the code (Editor, Stack, Variable Fast Display)Structures: Compare structuresTables: Compare tablesObjects: Compare objectsDetailDispls: Compare strings , simple fields …Breakpoints: Maintain your breakpoints

Save current layout of the user specific desktops.The customizing of the standard desktops is NOT saved !

User specific desktops Standard desktops

Page 62: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 62

New Debugger UI: Main Parts, Desktops

Demo

Page 63: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 63

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 64: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 64

Customizing The New Debugger UI – Change Tool Size

Page 65: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 65

Customizing The New Debugger UI – Number of Tools

Page 66: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 66

Customizing The New Debugger UI – Toolbar

Close toolCreate new toolExchange toolFull screen modeMaximize horizontallySwap toolServices of the tool

Context menu

With the normal “Back” button (F3) you can “Undo” all your layout changes

Page 67: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 67

UI – Desktops

Demo

Page 68: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 68

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 69: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 69

Debugger Tools

Up to 4 parallel visible instances of a tool (e.g. compare 4 internal tables)

Tools are integrated in debugger framework and benefit from the providedservices to customize the UI. (Change size, position, close tool ,…)

Tools provide standard services

Page 70: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 70

Debugger Tools - Services

If a tool provides services then a toolicon is displayed in the toolbar.

The standard services areDownload of the tool content to a local fileSearch in specified columns (STRG+F)

Each tool can have its own additional services

Search standard service

Page 71: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 71

Debugger Tools – Standard Tools

Standard tools:

Source displayStack BreakpointsVariables

Detail viewsStructureInternal tableObjectSimple types

Page 72: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 72

Debugger Tools – Detail View Tools - Navigation

Navigation between ABAP data structuresDouble-click in the Editor fills appropriate detail display and fills/opens the Variable Fast Display

Page 73: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 73

Double-click in Variable Fast Display fills/opens appropriate detail display

Debugger Tools – Detail View Tools - Navigation

Navigation between ABAP data structuresDouble-click in the Editor fills appropriate Detail Display and fills/opens the Variable Fast Display

Page 74: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 74

Debugger Tools – Detail View Tools - Navigation

Double-click in Variable Fast Display fills/opens appropriate detail display

Navigation between ABAP data structuresDouble-click in the Editor fills appropriate Detail Display and fills/opens the Variable Fast Display

Double-click in detail display exchanges current tool by appropriate detail display

Page 75: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 75

Debugger Tools

Demo

Page 76: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 76

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 77: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 77

Breakpoints

Debugger context of Classic ABAP Debugger is the “internal session”

Debugger context of New ABAP Debugger is the “external session”, i.e.

the “SAP-GUI Window”

Classic Debugger breakpoints are lost, when a new internal session is created while debugging (SUBMIT, CALL TRANSACTION,…)

New Debugger breakpoints are never lost

Page 78: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 78

Breakpoints – Create A Breakpoint

Create/Deactivate/Delete a breakpoint in the Editor by double-clicking on a line

Create dynamic breakpoints

Page 79: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 79

Breakpoints – Maintain Breakpoints

Create/Delete/Activate/Deactivate breakpoints

Specify how often the breakpoint shall be skipped before stopping

Page 80: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 80

Breakpoints

Demo

Page 81: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 81

Exercise 2

Run Program ZDBG_DEMO

Use the New ABAP Debugger

Follow the exercise comments at the breakpoints of the program

Page 82: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 82

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 83: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 83

2 Process Architecture

Enables to debug all ABAP (incl. conversion exits)

State-of-the-art UI

All debugger settings remain unchanged during lifetime of external mode (debugger context)

New Debuger UIUp to 4 tools on one desktop

Arrange and size all your tools as you like

3 user specific and 6+ standard desktops

Each tool with standard services (save to local file, search ) and more individual services

Each tool with more features

Available in NW 04

New ABAP Debugger: Summary

Page 84: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 84

Agenda, New ABAP Debugger

New ABAP Debugger

Motivation & Goals

Two Process Architecture

Starting the New Debugger

Debugger UI – Main Parts

Customizing the New Debugger UI

Debugger Tools

Breakpoints

Summary

Open Points & Outlook

Page 85: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 85

New ABAP Debugger – Outlook

Page 86: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 86

New ABAP Debugger – Outlook

Match functionality of Classic Debugger

Watchpoints

RFC, HTTP, Update debugging

Variable Fast Display

Globals

Locals : incl. procedure interface

New Tools

New Edit Control : syntax highlighting, block folding, etc ..

Data Explorer : navigate through data object graphs

Diff-Tool : navigate through differences of internal tables, structures, etc …

Loaded Programs : displays all global data of loaded programs

Trace-Tool : run SQL trace, etc from inside debugger

Page 87: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 87

Further Information

Public Web:www.sap.com

SAP Developer Network: www.sdn.sap.comSearch for ABAP Knowledge Center

SAP Customer Services Network: www.sap.com/services/

Related SAP Education Training Opportunitieshttp://www.sap.com/education/

Related Workshops/Lectures at SAP TechEd 2004Best of ABAP

ABAP201, The Ultimate ABAP 6.40 Feature Show,2h Lecture

ABAP UNIT, CheckpointsABAP245, New Dynamic Test Tools for ABAP Developers , 4h Hands-on

Page 88: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 88

Further Information

Related Workshops/Lectures at SAP TechEd 2004Shared Objects

ABAP251, ABAP Shared Objects, Shared Memory ProgrammingMade Easy,4h Hands on

Simple Transformations

ABAP252, ABAP - XML Mapping,

4h Hands-on

Generic Programming

ABAP351, Advanced & Generic Programming in ABAP,4h Hands-on

ABAP Troubleshooting

ABAP253, ABAP Troubleshooting,4h Hands on

Page 89: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 89

SAP Developer Network

Look for SAP TechEd ’04 presentations and videos on the SAP Developer Network.

Coming in December.

http://www.sdn.sap.com/

Page 90: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 90

Q&A

Questions?

Page 91: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 91

Please complete your session evaluation.

Be courteous — deposit your trash, and do not take the handouts for the following session.

Feedback

Thank You !

Page 92: Abap New Debugger

© SAP AG 2004, SAP TechEd / ABAP255 / 92

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice.

Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.

Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.

IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, and Informix are trademarks or registered trademarks of IBM Corporation in the United States and/or other countries.

Oracle is a registered trademark of Oracle Corporation.

UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.

Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc.

HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.

Java is a registered trademark of Sun Microsystems, Inc.

JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.

MaxDB is a trademark of MySQL AB, Sweden.

SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

Copyright 2004 SAP AG. All Rights Reserved