You are on page 1of 37

IBM i Debugger

1
IBM i Debugger

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

2
Integrated Debugger - Overview
 RPG, COBOL, CL, C, and C++
 IBM i - ILE and non ILE, incl. free-form RPG
 DB2 and SQL stored procedures
 Source and Listing view
 Batch, interactive, and Multi-Threaded Applications
 Client/Server Applications
 Distributed Applications

3
Debugger Functions - Overview
 Manage program execution
– Step/Run commands
– Multiple breakpoint types

 Work with content of variables


– Display
– Modify

 Work with content of memory


– Display
– Modify for teraspace enabled programs

4
Start/Stop Debug Server
- From RSE, right click a subsystem (Objects, Commands, Jobs, or IFS Files).
- Select Remote Servers > Debug > Start to start and Stop to stop.

- Or, from 5250 session, issue command STRDBGSVR to start and ENDDBGSVR to
stop.
- Once per i system
- Default port 3825
- WRKSRVTBLE add or change the entry QDBGSVR2

5
Where does the Application run?

Debug As…
Batch Submitted to batch
Interactive 5250 emulation, STRRSESVR
Multi-threaded Creates BCI job
Job Specified job

6
Debug Perspective

Notebook with views for


Breakpoints, Variables,
Debug view Programs

Outline view

Editor – LPEX or Debug Editor

7
Debug perspective

Collection of editor and views


Users can customize the
perspective
Views can be re-sized and re-
positioned through drag and drop
Views can be closed
Views can be added
Use Save Perspective As… to save
customized perspective

8
Secure connection for debug session

 If you use SSL support for a


RSE connection, the
communication between debug
client and debug server will be
through SSH tunnel.

This feature is only available on


OS400 V6R1 and later version.

9
IBM i Debugger

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

10
Service Entry Points

 Service Entry Points for ILE on V5R2 or later


– You know the program you want to debug but the
program gets started in a server environment
– You know the userid the program will be running
under
– You don’t know the job name where the program will
be running

11
Service Entry Points (continued)

 Great for:
– WebFaced applications
– Web applications
– Toolbox calls
– Any ILE program you want to debug

12
Setting Service Entry Points

 From the Remote System Explorer


– In the Remote Systems view, select the program, service program,
module, or procedure
– In the pop-up menu, select Debug (Service Entry) > Set Service Entry
Point
– Run the application from anywhere, except RSE server job

 From the Service Entry Points view


– In the pop-up menu, select Set, or press the toolbar button
– Fill in the Set Service Entry Point dialog
– Run the application from anywhere

13
Service Entry Points view
Service Entry Points view is automatically displayed when Service Entry Point set.
Otherwise display from
Window > Show view > Other > IBM i > IBM i Service Entry Points
 List of all Service Entry Points set from the RSE
 Pop-up menu to work with Service Entry Points

– Set, Modify, Refresh, Remove, Enable/Disable


 Pull down menu to Clear all or selected Service Entry Points

14
Service Entry Points -Refresh

 Service entry points not valid after program is recompiled.


Use Refresh in IBM i Service Entry Points view to re-set the
service entry points.

15
Service Entry Points - Modify
 When Service Entry Point is
set, its user profile property
(user whose job is going to hit
the Service Entry Point) is set
to the user ID used to logon to
RSE connection.
 If you want to debug a job
running under user profile
other than this RSE logon ID,
you can modify the SEP to set
to the proper user profile.

16
IBM i Debugger

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

17
Debug Perspective
Resume, Suspend, Terminate, Step Into,
Step Over, Step Return

Variables
Breakpoints
Call Monitored variables
Stack Programs under debug

Current
Break Line
Point Outline

Add Properties:
Window ->
Show View ->
Other ->
General
18
Program Execution
 Step Into
– Debug the next call level
 Step Over
– Run the next call level and stop at the next statement
 Step Return (for ILE on V5R3 or higher)
– Run until you are back in the previous call level and stop at the next statement
 Resume
– Run until an event is encountered
 Run To Location
– Run and stop at the current cursor position or until an event is encountered
 Suspend
– Halt program at point of execution
 Terminate
– End the debug session

19
Setting Breakpoints
Ways to set a Line Breakpoint:

Double click in prefix area


In prefix area, select Add/Remove Breakpoint from pop-up menu
In Editor, select Add/Remove Breakpoint from pop-up menu
In Breakpoints view, select Add Breakpoint > Line from pop-up menu.
Editor breakpoints in bound service programs

Ways to set a Watch Breakpoint:

Double click variable and


In Editor, select Add Watch Breakpoint from pop-up menu
In Breakpoints view, select Add Breakpoint > Watch from pop-up
menu.

20
Conditional Line Breakpoint

Set Frequency
Value to start
Value to stop
Breaks to skip

Set Expression
Conditions must be true
for break to happen

21
Watch Breakpoint

Number of bytes
to watch set to 0 for
defined length of variable

Maximum length 128

Maximum of 256 watches


per system
Variable spanning a page
break uses 2 watches

Watches disabled when


restored

22
Monitors View

To monitor selected variables


independent of their scope:
1. Double click variable
2. Right-click
3. Monitor Expression
4. Variable listed in Monitors
view

23
Monitor Expression Dialog

1. Select variable
2. Click plus sign for dialog
3. Variable pre-filled
4. Can add dimension

•Data in Monitor view updated at each stop


•Changed data marked in red with triangle icon
•Double click on entry to open for edit, modify
value and press Enter

24
Variables view
 In V5R3 or later, local variables support is available for ILE RPG and ILE COBOL, for C
and C++ also in earlier releases.
 Variables view automatically displays all variables of current scope.

25
Display Memory Content

1. Select variable to display in


Memory view
2. Select Monitor Memory > Hex
and Character

• Memory displayed starting with


address of selected variable
• Edit for teraspace enabled
pgms

Press Toggle Split


Pane to display hex
and char

26
Programs view

Click plus to add a


Program or
Service Program

Pop-up menu to
remove programs
from debug

Expand program
entry and double
click to display
source

27
IBM i Debugger

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

28
Attach to an IBM i Job
Job subsystem

Interactive debugging requires 5250 session and


STRRSESVR command

29
Attach to an IBM i Job

You can add program to debug


here.

30
Attach to an IBM i Job

Click Step or Resume button, and then switch to emulation to start your application.
Note: Terminating the debug session does not terminate the interactive program
31
IBM i Debugger

Overview
Service Entry Points
Debugger Functions
Debugging interactive Applications
Launch Configurations and Settings

32
Launch Configuration – How to Start

Command to start
application required for
service programs

How to invoke your application


Default: Call (selected program)
Batch: SBMJOB (selected program)

33
Source Locator Scenario

Development system Production system

PGM A PGM A
source object

Debug
Debug source locator

34
Launch Configuration – source location

If source remains in the original library (compilation time),


debugger will find it

If source member has been moved since compile occurred,


use source locator (next slide)
Moved to a different library
Resides on a different system, RTC for Power, etc

If IFS source is moved, use Remote Folder source locator.


Moved to a different folder
Resides on a different IBM i

Source locator can be specified from Source tab of launch


configuration

35
Launch Configuration – Source tab

1. Click Add button


2. Select IBM i Source
File or Remote Folder
3. Select connection
4. Specify library if not in
library list
5. Select source physical
file
6. File is added to list in
Source Lookup Path

36
Debug Preferences

• Update production files


• Prompt when SEP is set
• Prompt when SEP is hit
• Include bound srvpgms
and exclude libraries
default: not checked

37

You might also like