Upload
adavellys
View
409
Download
13
Embed Size (px)
Citation preview
ABAP255: New ABAP Debugger and Memory Inspector
Christoph Stoeck, SAP AG
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 6
Motivation
“IT_13” is quite small.
Who wasted the memory ??
© 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.
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 23
Motivation
Demo
© 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
© 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
© 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
© 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
© 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.
© 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
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 / 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.
© 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
…
© SAP AG 2004, SAP TechEd / ABAP255 / 33
Features in ABAP Debugger
Demo
© 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
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 38
Comparing Memory Snapshots
Difference of 2 snapshots
One instance of class “lcl” was added
© 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
© 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”
© 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”
© 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
© 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
© 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’.
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 46
Motivation
We have already a powerful
ABAP Debugger.
Why do we need a newone ??
© SAP AG 2004, SAP TechEd / ABAP255 / 47
Motivation
Demo
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 50
New ABAP Debugger – First Impression
© 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
© 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
© 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
© 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 !
© 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
© 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.
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 58
Motivation
Demo
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 60
New Debugger UI – Main Parts
Source line / SY-FieldsControl Area
Process Info
Desktops
Tools
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 62
New Debugger UI: Main Parts, Desktops
Demo
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 64
Customizing The New Debugger UI – Change Tool Size
© SAP AG 2004, SAP TechEd / ABAP255 / 65
Customizing The New Debugger UI – Number of Tools
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 67
UI – Desktops
Demo
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 71
Debugger Tools – Standard Tools
Standard tools:
Source displayStack BreakpointsVariables
Detail viewsStructureInternal tableObjectSimple types
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 75
Debugger Tools
Demo
© 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
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 80
Breakpoints
Demo
© 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
© 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
© 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
© 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
© SAP AG 2004, SAP TechEd / ABAP255 / 85
New ABAP Debugger – Outlook
© 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
…
© 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
© 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
© 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/
© SAP AG 2004, SAP TechEd / ABAP255 / 90
Q&A
Questions?
© 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 !
© 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