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
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.
Some tips about breakpoints • The debugger will suspend immediately prior to the line with the breakpoint. • Do not put a breakpoint on a “flow-control-only” 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 Enabling/Disabling Breakpoints Disabled Breakpoint
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 Configuring from the “Bug Button” dropdown Choose “Debug As” Choose your process type
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” Configuring from the Run menu Choose your process type
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 Viewing configurations from the “Bug Button” dropdown Choose “Debug Configurations…”
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
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 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 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.