Colleague Studio Debugger

Download Report

Transcript Colleague Studio Debugger

Colleague Studio Debugger
DUG 2012 IT-31440
Katie Morgan
Linfield College
About Linfield College
• 2200 FTE
• 3 “campuses”
• McMinnville “traditional” residential 4-year
comprehensive programs
• Portland nursing and health sciences
programs
• Continuing education/adult degree programs
(including online offerings)
More About Linfield College
• Colleague for recruitment, financial aid,
student records, accounting
• UniData
• Raisers Edge for fund-raising and
advancement
• ADP for human resources
What is the CS Debugger?
• Graphical tool to observe your code in
action
• Step through line by line
• Set breakpoints and jump from breakpoint to
breakpoint
• Combines Eclipse’s graphical interface
with UniData’s built-in debugging software
Poll!
What version of CS are people on?
• 2.6 – The most recent relatively stable and
reliable release
• 2.7 – Introduced a couple of features but
added some serious bugs
• 2.7.1 – Fixed some of the 2.7 bugs, but
introduced a few new ones
What can be debugged?
•
•
•
•
Web forms
Batch programs
Subroutines
UI forms
• CS 2.6 required
• UI 4.2+ required
What can’t be debugged?
• “Old-Style” Procedures
• The ones that used to use PGDF
Overview of steps
•
•
•
•
•
Generate
Compile
Set breakpoints
Configure
Launch
Generate and Compile
• Make sure your project is connected to the
environment.
• Generate the process you want to debug.
• Make sure there are no errors and that it
really generated.
• Activate the Generated Code tab
• For WebAdvisor, it’s the Generated Web
Code tab
• Click the “compile for debugging” button
Compile for Debugging
Set breakpoints
• Set some breakpoints (at least one, so it
will suspend when debugger launches).
• Make sure you’re on the Generated Code tab.
• In the margin to the left of the line number,
either double-click or right-click and choose
Toggle Breakpoint.
• To remove a misplaced breakpoint, just follow
the same steps on the existing blue dot, and it
will toggle off.
Add your breakpoints
Some tips about breakpoints
• The debugger will suspend immediately
prior to the line with the breakpoint.
• Do not put a breakpoint on a “flow-controlonly” type of statement.
• END, END CASE, NEXT, RETURN, internal
gosub labels
• However, IF’s are fine…
More tips about breakpoints
• This may be obvious, but… the debugger
will only suspend if it actually reaches the
line with the breakpoint.
• If you have complicated logic, beware of
where you’ve nestled your breakpoints,
because it might not break when you
want/expect it to.
Breakpoint limits
If you are UniData 7.2.3 or older:
You are limited to 6 active breakpoints.
How many breakpoints?
• This is a UniData limitation that is resolved with
7.2.5 and higher.
• One point per active breakpoint (duh!) …
plus
• One point per process
How many breakpoints?
• You can have more than 6 defined, and
toggle whether they’re active or not.
• In the development perspective, right-click the
breakpoint button and choose Disable/Enable
Breakpoint.
Enabled Breakpoint
Disabled Breakpoint
Enabling/Disabling Breakpoints
How many breakpoints?
• You can also add/remove breakpoints
altogether when in the debug perspective.
Configure
• Launch configurations provide settings
needed to run the process
• How to connect
• WebAdvisor: Ports
• UI: URL
•
•
•
•
Timeout settings
Credentials
Application Initialization
Arguments
Configure
• There are three ways to configure a
launch:
• from the “bug button” menu
• from the process explorer context menu
• from the Run menu
Click the down arrow
Choose “Debug As”
Choose your process type
Configuring from the “Bug Button” dropdown
Right-click your process name
Choose “Debug As”
Choose your process type
Configuring from the process explorer context menu
Click the Run menu
Choose “Debug As”
Choose your process type
Configuring from the Run menu
Initialize the application
Set argument values
Adjust the timeout
Subroutine and batch configuration
Initialize the application
Enter credentials
Subroutine and batch configuration
Adjust the timeout
UI form configuration
Enter URL
Enter UI credentials
Enter SOD password
UI form configuration
Adjust the timeout
WebAdvisor form configuration
Modify the ports
WebAdvisor form configuration
Viewing Existing Configurations
• Once you have your launch configuration
built, next time you use Debug as… for
that process, it will simply run the
debugger.
• To change arguments or other settings on a
future run, go into your launch configurations.
Viewing Existing Configurations
• There are three ways to view existing
configurations:
• from the “bug button” menu
• from the process explorer context menu
• from the Run menu
Click the down arrow
Choose “Debug
Configurations…”
Viewing configurations from the “Bug Button” dropdown
Right-click your process name
Choose “Debug As”
Choose “Debug Configurations…”
Viewing configurations from the process explorer context menu
Click the Run menu
Choose “Debug Configurations…”
Viewing configurations from the Run menu
Make sure it’s the right one!
Launch
• Now you’re ready to launch.
• Hit the green bug.
• It will either take you directly into the debug
perspective, or it will prompt you and ask.
• Once you’re in the debug perspective, you can still
switch between perspectives.
Debug Perspective
Debug view
Debug View
• Debug view is where you monitor and control
the overall flow of your process.
• Use buttons to start, stop and step through your
process.
• Monitor your stack—see what processes and line
numbers are running.
Use these buttons to steer
See where you are
Debugger controls
Control Buttons
• “Clear” clears the perspective of all
terminated launches.
• “Resume” runs the debugger until the next
breakpoint.
• runs to the end if there are no more breakpoints
• “Suspend” halts the debugger without ending
the debug session.
• but isn’t that what breakpoints are for?
• “Terminate” ends the debug session without
executing any further.
Control Buttons
• “Step Into” can be used if the process line
you’re on is about to call another process,
and you want to debug line-by-line in that
process.
• The called process must be in your project for
this to work. To debug it, it must be compiled for
debugging.
• If you already have breakpoints in that process,
you can just use the play button (rather than Step
Into), and it will suspend at the breakpoint
Control Buttons
• “Step Over” executes the line you’re
currently on and suspends again.
• This is for when you need to go line by line.
• Also for when you need to execute a called
process without bothering to debug it.
• “Step Return” is used when you’re inside a
routine called by another routine, and you
want to execute that inner routine until it
returns control to the calling process, and
then suspend again.
Control Buttons
• “Drop to Frame”: Never used it.
• “Use Step Filters”: ditto.
Variables and Breakpoints Views
Variables view
• Watch the values change as you step
through.
• If the process is suspended, you can alter
values here before resuming.
Variables view
Highlight an item here
Edit its value here
Variables view
Changed values are automatically highlighted
Variables view defaults
• Datatel has preset the variables view to
include only local variables defined by the
programmer, arguments and process
variables (like MSG, etc).
• Your v. and vl. variables will not show up.
Variables view defaults
1. Window menu -> Preferences
2. Run/Debug -> Variable Filters
Check this box
Breakpoints view
• View all of your breakpoints and their
statuses (enabled or disabled).
• Enable or disable breakpoints as needed.
• This works “on-the-fly”.
Breakpoints view
Check/uncheck to enable/disable breakpoints
Process editor
Process editor
• All of the process editor tabs are available
here. The generated code tab will be the
focus by default. This tab is where you
can
• see where you currently are in your code.
• view your breakpoints.
• You can add/remove and enable/disable here.
• change your code.
• You will probably need to terminate your debug session.
Process editor
Highlights the suspended line
Outline view
Outline view
• This is exactly like the outline tab in the
default Colleague perspective.
Console view
Console view
• The console displays system messages,
including errors and warnings.
Console view
UI Form Debugger
• Actually launches UI Web.
• You must go to the screen you’re
debugging (it doesn’t do this
automagically).
Web Form Debugger
• Actually launches WebAdvisor.
• You navigate the login and menus until
you arrive at the starting point for the form
you’re debugging.
• If the form is in a chain, you will need to fill
out the lead-in forms until it pulls up the
form you’re debugging.
Debugging in layers
• You may want to debug multiple “layers” of
processes. Examples:
• Your subroutine calls another subroutine
• Your batch process runs based on a front-end
UI screen
• Your web form writes data based on
subroutines
Debugging in layers
1. Import all “layers” into your project
2. Compile all the processes for debugging
3. You can set breakpoints in multiple layers
•
•
If you’re on UniData pre-7.2.5, watch your
total number of active breakpoints!
When you’re running the debugger, it will
continue through the outer process, enter the
nested process, and suspend at the first
breakpoint in it.
Debugging batch processes
• Batch processes that run based on select
statements can be an issue.
• Debug them via the front-end screen
(provided it uses procedure hook, and is not
an “old-style” procedure!), OR
• Build a wrapper to perform the selection and
run the “real” batch process.
• Sample in proceedings
Try it!
• Benefits
• Obviously, finding the logic errors
• Being able to test numerous scenarios rapidly by
just changing values (arguments on the launch
configuration or even variables in the variables
tab) on the fly
• Being able to choose between stepping one line
at a time or skipping around based on
breakpoints
• And rapidly changing those breakpoints as needed on
the fly
Questions?
Katie Morgan
Datatel Programmer/Analyst
Linfield College ITS
[email protected]
503.883.2714
Daily Gift Card Drawing
• Four (4) Amazon Gift Cards Awarded Daily for
My Session Evaluations Submitted by 8:00 pm
Daily
• Winners Announced Every Morning via Mobile
App “Daily News”
Submitting Session Evaluations
• DUG Mobile App
– Select “Survey Icon”
– Select “My Session Evaluations”
• If Session is not listed
• Select “+” button
• Enter Session ID 31440
• Web App - http://bit.ly/dug2012
– Select “My Session Evaluations”
• If Session is not listed
• Select “Add Session Survey” button
• Enter Session ID 31440