Sie sind auf Seite 1von 92

ABAP255:

New ABAP Debugger


and Memory Inspector
Christoph Stoeck, SAP AG
Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 3


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

© SAP AG 2004, SAP TechEd / ABAP255 / 4


Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 5


Motivation

“IT_13” is quite small.


Who wasted the memory ??

© SAP AG 2004, SAP TechEd / ABAP255 / 6


Motivation

Different kinds of transactions

Former (< 6.10) Present( >= 6.10)


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

Memory leaks will not take effect Memory leaks will take effect by
as all memory is freed during summing up as the internal mode
deletion of an internal mode. will not be deleted.

T1 T2 T3 T1 T4 cic0

A1 A2 A3 A4

Legend: Internal mode

© SAP AG 2004, SAP TechEd / ABAP255 / 7


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

© SAP AG 2004, SAP TechEd / ABAP255 / 8


Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 9


Memory Objects

Kinds of “dynamically growing memory objects” in ABAP


Named objects
Strings and Internal Tables
Declared with statement: DATA <name>
Manner-of-speaking: data object, variable
Accessible by <name>
Value semantics

Anonymous objects
Instances of classes
Created by the statement: CREATE OBJECT
OO manner-of-speaking: object
Instances of data types
Created by the statement: CREATE DATA
SAP manner-of-speaking: anonymous data object
Accessible only via references
Reference semantics

© SAP AG 2004, SAP TechEd / ABAP255 / 10


Memory Objects

Dynamic memory objects with value semantics

Internal tables
Named 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

Strings
Named 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

© SAP AG 2004, SAP TechEd / ABAP255 / 11


Memory Objects

Example: Strings

DATA: str1 TYPE STRING, str1


str10 str2
str2 TYPE STRING.
⇒str1 = ‘Hallo’.
str2 = str1.
str1 = ‘Hugo’. Stringheader 2

Hallo

© SAP AG 2004, SAP TechEd / ABAP255 / 12


Memory Objects

Example: Strings

DATA: str1 TYPE STRING, str1


str10 str2
str20
str2 TYPE STRING.
str1 = ‘Hallo’.
⇒str2 = str1.
str1 = ‘Hugo’. Stringheader 2

Hallo

© SAP AG 2004, SAP TechEd / ABAP255 / 13


Memory Objects

Example: Strings

DATA: str1 TYPE STRING, str1


str10 str2
str20
str2 TYPE STRING.
str1 = ‘Hallo’.
str2 = str1.
⇒str1 = ‘Hugo’. Stringheader 3 Stringheader 2

Hugo Hallo

© SAP AG 2004, SAP TechEd / ABAP255 / 14


Memory Objects

Example: Strings

DATA: str1 TYPE STRING, str1


str12 str2
str20
str2 TYPE STRING.
str1 = ‘Hallo’.
str2 = str1.
⇒str1 = ‘Hugo’. Stringheader 3 Stringheader 2

Hugo Hallo

© SAP AG 2004, SAP TechEd / ABAP255 / 15


Memory Objects

Dynamic memory objects with reference semantics

Objects
Anonymous objects
Reference semantics
No reference counting
Debugger: Access via {O:n}, where n is the object id

Anonymous data objects


Anonymous objects
Reference semantics
No reference counting
Debugger: Access via {A:n}, where n is the anonymous data id

© SAP AG 2004, SAP TechEd / ABAP255 / 16


Memory Objects

Anonymous data objects

DATA: ref1 TYPE REF TO I,


ref1
ref10 ref2
ref2 TYPE REF TO I.
⇒CREATE DATA ref1.
ref1->* = 10.
ref2 = ref1. {A:1}= 0
ref2->* = 20.

© SAP AG 2004, SAP TechEd / ABAP255 / 17


Memory Objects

Anonymous data objects

DATA: ref1 TYPE REF TO I,


ref1
ref10 ref2
ref2 TYPE REF TO I.
CREATE DATA ref1.
⇒ref1->* = 10.
ref2 = ref1. {A:1}=
1{r}: 010
ref2->* = 20.

© SAP AG 2004, SAP TechEd / ABAP255 / 18


Memory Objects

Anonymous data objects

DATA: ref1 TYPE REF TO I,


ref1
ref10 ref2
ref20
ref2 TYPE REF TO I.
CREATE DATA ref1.
ref1->* = 10.
⇒ref2 = ref1. {A:1}= 10
ref2->* = 20.

© SAP AG 2004, SAP TechEd / ABAP255 / 19


Memory Objects

Anonymous data objects

DATA: ref1 TYPE REF TO I,


ref1
ref10 ref2
ref20
ref2 TYPE REF TO I.
CREATE DATA ref1.
ref1->* = 10.
ref2 = ref1. {A:1}=
1{r}: 1020
⇒ref2->* = 20.

© SAP AG 2004, SAP TechEd / ABAP255 / 20


Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 21


Starting the Memory Inspector

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

© SAP AG 2004, SAP TechEd / ABAP255 / 22


Motivation

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 23


Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 24


Analyzing a Memory Snapshot

Analyzingmemory
Dynamic Memory:
objects’ sizes
Bound Memory
Bound Memory
Memoryof
Memory ofthe
theobject
object“itself”
“itself”
Minimumof
Minimum ofmemory
memorythat
thatwill
willbe
befreed,
freed,ififobject
objectisisdeleted
deleted

Referenced Memory
Memory of the object “itself” and all referenced objects
Maximum of memory that can be freed, if object is deleted

itab
oref obj1 obj2
oref
obj3

© SAP AG 2004, SAP TechEd / ABAP255 / 25


Analyzing a Memory Snapshot

… Dynamic memory objects’ sizes

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 memory
Memory of a table body (internal table) or a string that is allocated by the system
Used memory <= allocated memory

Consequently 4 values:
Bound used
Bound allocated
Referenced used
Referenced allocated

© SAP AG 2004, SAP TechEd / ABAP255 / 26


Analyzing a Memory Snapshot

Examples:
s : {Anonymous objects} € Bytes size of an object or an anonymous data object
su : {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

? Bound Bound Referenced Referenced


allocated used allocated used
obj1 obj2 s(obj1) s(obj1) s(obj1)+ s(obj1)+
s(obj2) s(obj2)

obj3 str1 s(obj3)+ s(obj3)+ s(obj3)+ s(obj3)+


sa(str1) su(str1) sa(str1) su(str1)

s(obj4) s(obj4) s(obj4)+ s(obj4)+


obj4 str2 sa(str2) su(str2)

obj5

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.

© SAP AG 2004, SAP TechEd / ABAP255 / 27


Analyzing a Memory Snapshot

Strongly Connected Components* can be treated as ONE object.

*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.

© SAP AG 2004, SAP TechEd / ABAP255 / 28


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.

© 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.

© SAP AG 2004, SAP TechEd / ABAP255 / 30


Features in ABAP Debugger

TopN-Consumer-Lists
Finding “objects” with high
Filter memory objects
memory consumption:
Sort according to Internal tables
Bound memory Strings
Objects
Referenced memory
Anonymous data objects

Aggregation of types (class / data type) Finding all “instances” of


classes and data types with
high memory consumption
(e.g. trees, linear lists, etc…)

Find References Finding references to internal


tables, strings, objects and
anonymous data objects,
keeping them alive.
Identification as part of a SSC

© SAP AG 2004, SAP TechEd / ABAP255 / 31


Features in ABAP Debugger

Strongly Connected Component List

TopN-Consumer-List
Show all SSC objects Finding all references to the
Show all references into the SSC SSC keeping it alive.

Memory consumption overview

Allocated / used
Memory areas (experts only )
Heap
Roll

© SAP AG 2004, SAP TechEd / ABAP255 / 32


Features in ABAP Debugger

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 33


Features in Stand-Alone TA

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)

© SAP AG 2004, SAP TechEd / ABAP255 / 34


Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 35


Features in Stand-Alone TA

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

© SAP AG 2004, SAP TechEd / ABAP255 / 36


Comparing Memory Snapshots

DATA oref TYPE REF TO lcl. oref

DATA itab itab


TYPE STANDARD TABLE
OF REF TO lcl.

CREATE OBJECT oref. oref obj1

APPEND oref TO itab. itab


oref

CREATE OBJECT oref. oref obj2

APPEND oref TO itab. itab


oref
oref obj1

© SAP AG 2004, SAP TechEd / ABAP255 / 37


Comparing Memory Snapshots

Difference of 2
snapshots

One instance of
class “lcl” was added

© SAP AG 2004, SAP TechEd / ABAP255 / 38


Comparing Memory Snapshots

The added
instance comes
with 100 bytes
There are two
references to the new
instance of “lcl”

© SAP AG 2004, SAP TechEd / ABAP255 / 39


Comparing Memory Snapshots

One line was


added to “itab”
Bound memory of “itab”
grew by 8 bytes,
Internal Table i.e. new line “oref” in itab
“itab” changed

© SAP AG 2004, SAP TechEd / ABAP255 / 40


Comparing Memory Snapshots

Referenced Memory of “itab”


grew by 108 bytes,
i.e. line “oref” in itab and
“obj2”

© SAP AG 2004, SAP TechEd / ABAP255 / 41


Agenda, Memory Inspector

Memory Inspector
Motivation
Basics
Starting the Memory Inspector
Analyzing a Memory Snapshot
Comparing Two Memory Snapshots
Summary

© SAP AG 2004, SAP TechEd / ABAP255 / 42


Memory Inspector: Features Summary

In ABAP Debugger
TopN-Consumer-Lists
Aggregation of types (class/data)
Find references
List of Strongly Connected Components
Show 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 )

© SAP AG 2004, SAP TechEd / ABAP255 / 43


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 watchpoint
to the header of ‘itab’, i.e. ‘*itab’.

© SAP AG 2004, SAP TechEd / ABAP255 / 44


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

© SAP AG 2004, SAP TechEd / ABAP255 / 45


Motivation

We have already a powerful


ABAP Debugger.

Why do we need a new


one ??

© SAP AG 2004, SAP TechEd / ABAP255 / 46


Motivation

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 47


Classic Debugger – Current Status

Classic Debugger

Technology
Debugger and debuggee run in the same (internal) session
Debugger dynpros placed “in-between”

Consequences
Not 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 !)

We need a new ABAP debugger technology

© SAP AG 2004, SAP TechEd / ABAP255 / 48


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

© SAP AG 2004, SAP TechEd / ABAP255 / 49


New ABAP Debugger – First Impression

© SAP AG 2004, SAP TechEd / ABAP255 / 50


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

© SAP AG 2004, SAP TechEd / ABAP255 / 51


Two Process Architecture

The New Debugger is attached to an “external session”

Session 1 - Debugger Session 2 - Debugger

ABAP VM
Debugger Engine
/h

UI

© SAP AG 2004, SAP TechEd / ABAP255 / 52


Two Process Architecture - Consequences

/h

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

© SAP AG 2004, SAP TechEd / ABAP255 / 53


Two Process Architecture - Consequences

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

© SAP AG 2004, SAP TechEd / ABAP255 / 54


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

© SAP AG 2004, SAP TechEd / ABAP255 / 55


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.

© SAP AG 2004, SAP TechEd / ABAP255 / 56


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

© SAP AG 2004, SAP TechEd / ABAP255 / 57


Motivation

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 58


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

© SAP AG 2004, SAP TechEd / ABAP255 / 59


New Debugger UI – Main Parts

Process Info
Control Area
Source line / SY-Fields
Desktops

Tools

© SAP AG 2004, SAP TechEd / ABAP255 / 60


New Debugger UI – Desktops

User specific desktops Standard desktops

The New Debugger provides:


Three user specific desktops, which you can customize and save as your favorite debugger
environment
Six standard desktops, which should cover most of the common working conditions in the
debugger:
Standard: Stepping through the code (Editor, Stack, Variable Fast Display)
Structures: Compare structures
Tables: Compare tables
Objects: Compare objects
DetailDispls: 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 !

© SAP AG 2004, SAP TechEd / ABAP255 / 61


New Debugger UI: Main Parts, Desktops

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 62


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

© SAP AG 2004, SAP TechEd / ABAP255 / 63


Customizing The New Debugger UI – Change Tool Size

© SAP AG 2004, SAP TechEd / ABAP255 / 64


Customizing The New Debugger UI – Number of Tools

© SAP AG 2004, SAP TechEd / ABAP255 / 65


Customizing The New Debugger UI – Toolbar

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

Close tool
Create new tool
Exchange tool
Full screen mode
Maximize horizontally
Swap tool
Services of the tool

Context menu

© SAP AG 2004, SAP TechEd / ABAP255 / 66


UI – Desktops

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 67


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

© SAP AG 2004, SAP TechEd / ABAP255 / 68


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 provided
services to customize the UI. (Change size, position, close tool ,…)

Tools provide standard services

© SAP AG 2004, SAP TechEd / ABAP255 / 69


Debugger Tools - Services

If a tool provides services then a tool


icon is displayed in the toolbar.

The standard services are


Download of the tool content to a local file
Search in specified columns (STRG+F)

Each tool can have its own additional services

Search standard service

© SAP AG 2004, SAP TechEd / ABAP255 / 70


Debugger Tools – Standard Tools

Standard tools:
Source display
Stack
Breakpoints
Variables

Detail views
Structure
Internal table
Object
Simple types

© SAP AG 2004, SAP TechEd / ABAP255 / 71


Debugger Tools – Detail View Tools - Navigation

Navigation between ABAP data structures


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

© SAP AG 2004, SAP TechEd / ABAP255 / 72


Debugger Tools – Detail View Tools - Navigation

Navigation between ABAP data structures


Double-click in the Editor fills appropriate Detail Display and fills/opens the Variable Fast Display
Double-click in Variable Fast Display fills/opens appropriate detail display

© SAP AG 2004, SAP TechEd / ABAP255 / 73


Debugger Tools – Detail View Tools - Navigation

Navigation between ABAP data structures


Double-click in the Editor fills appropriate Detail Display and fills/opens the Variable Fast Display
Double-click in Variable Fast Display fills/opens appropriate detail display
Double-click in detail display exchanges current tool by appropriate detail display

© SAP AG 2004, SAP TechEd / ABAP255 / 74


Debugger Tools

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 75


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

© SAP AG 2004, SAP TechEd / ABAP255 / 76


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

© SAP AG 2004, SAP TechEd / ABAP255 / 77


Breakpoints – Create A Breakpoint

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

Create dynamic breakpoints

© SAP AG 2004, SAP TechEd / ABAP255 / 78


Breakpoints – Maintain Breakpoints

Create/Delete/Activate/Deactivate breakpoints

Specify how often the breakpoint shall be skipped before stopping

© SAP AG 2004, SAP TechEd / ABAP255 / 79


Breakpoints

Demo

© SAP AG 2004, SAP TechEd / ABAP255 / 80


Exercise 2

Run Program ZDBG_DEMO

Use the New ABAP Debugger

Follow the exercise comments at the breakpoints of the program

© SAP AG 2004, SAP TechEd / ABAP255 / 81


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

© SAP AG 2004, SAP TechEd / ABAP255 / 82


New ABAP Debugger: Summary

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 UI
Up 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

© SAP AG 2004, SAP TechEd / ABAP255 / 83


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

© SAP AG 2004, SAP TechEd / ABAP255 / 84


New ABAP Debugger – Outlook

© SAP AG 2004, SAP TechEd / ABAP255 / 85


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

© SAP AG 2004, SAP TechEd / ABAP255 / 86


Further Information

Public Web:
www.sap.com
SAP Developer Network: www.sdn.sap.com
Search for ABAP Knowledge Center
SAP Customer Services Network: www.sap.com/services/

Related SAP Education Training Opportunities


http://www.sap.com/education/

Related Workshops/Lectures at SAP TechEd 2004


Best of ABAP
ABAP201, The Ultimate ABAP 6.40 Feature Show,
2h Lecture
ABAP UNIT, Checkpoints
ABAP245, New Dynamic Test Tools for ABAP Developers ,
4h Hands-on

© SAP AG 2004, SAP TechEd / ABAP255 / 87


Further Information

Related Workshops/Lectures at SAP TechEd 2004


Shared Objects
ABAP251, ABAP Shared Objects, Shared Memory Programming
Made 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

© SAP AG 2004, SAP TechEd / ABAP255 / 88


SAP Developer Network

Look for SAP TechEd ’04 presentations and videos on


the SAP Developer Network.

Coming in December.

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

© SAP AG 2004, SAP TechEd / ABAP255 / 89


Questions?

Q&A

© SAP AG 2004, SAP TechEd / ABAP255 / 90


Feedback
Please complete your session evaluation.

Be courteous — deposit your trash,


and do not take the handouts for the following session.

Thank You !

© SAP AG 2004, SAP TechEd / ABAP255 / 91


Copyright 2004 SAP AG. All Rights Reserved

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.

© SAP AG 2004, SAP TechEd / ABAP255 / 92