Resurfacing Debugger — For IBMi
A graphical debugger for RPG and COBOL programs running on IBM i (AS/400), built as a VS Code extension.
Features
Live Variable Panel
Displays all program variables and indicators in real time as you step through code. Variables are grouped into Program Variables and Indicators (*IN50, *IN99, etc.). Values flash orange whenever they change on a step.
Source Viewer
Shows ~10 lines of source around the current execution point (5 above, 5 below). Each row includes a line number, breakpoint marker, execution arrow, and syntax-highlighted RPG/COBOL code. The current line is highlighted with a yellow tint.
File Buffer Panel
Displays one box per open file (e.g. CUSTFILE, ORDFILE, DSPFILE). Each box shows the file name, the last operation (READ / WRITE / WORKSTN), and all field names and values from the current record buffer.
5250 Display File Viewer
When a display file is active, a green-screen style panel appears at the bottom showing the record format with field labels and values on a black background — similar to a real 5250 terminal.
Call Stack
A bar below the main panels lists each stack frame with program name and line number.
Step Over (F10), Step Into (F11), Continue (F5), Step Out (F12), and Stop controls at the top of the panel.
Requirements
- Code for IBM i — the extension uses your existing IBM i connection. Connect via Code for IBM i before starting a debug session.
- IBM i Debug Server running on port 8001 (configurable) on the target system.
Usage
- Connect to your IBM i system using Code for IBM i.
- Open an
.rpgle or .cblle source member.
- Run IBM i: Start RPG/COBOL Debug Session from the Command Palette (
Ctrl+Shift+P), or click the debug icon in the editor title bar.
- Enter the program name and library when prompted. Host and user are taken automatically from your active Code for IBM i connection.
- The Resurfacing Debugger panel opens beside your editor and updates live as you step through the program.
Alternatively, add a launch.json configuration:
{
"type": "rpgle",
"request": "launch",
"name": "Debug RPG Program",
"program": "MYPGM",
"library": "MYLIB",
"stopOnEntry": true
}
Settings
| Setting |
Default |
Description |
ibmi-rpg-debugger.debugServerPort |
8001 |
TCP port of the IBM i Debug Server |
ibmi-rpg-debugger.sourceEncoding |
utf8 |
Source encoding (utf8 or ebcdic) |
ibmi-rpg-debugger.panelLayout |
beside |
Open panel beside or in the active editor group |
Dependencies
VS Code Extension
| Extension |
Purpose |
| Code for IBM i |
Provides the active IBM i connection (host, user) used by this extension |
Runtime Packages
| Package |
Version |
@vscode/debugadapter |
^1.65.0 |
@vscode/debugprotocol |
^1.65.0 |
Development Packages
| Package |
Version |
typescript |
^5.x |
@types/vscode |
^1.85.0 |
@types/node |
^18.x |
@vscode/vsce |
^2.x |
Disclaimer
This extension is an independent tool and is not affiliated with or endorsed by IBM.