Answered Chui Debugging

rzr

Member
Can I use ProSpy Plus to debug CHUI applications or is there an CHUI equivalent for ProSpy Plus?
I'm currently using LOG-MANAGER system handle to trace the program flow in CHUI application.
 

TomBascom

Curmudgeon
What version of Progress do you have? What platform is it running on?

As I recall "prospy" is a GUI tool that is part of the old v9 ADM. I never saw much point in using it so I'm not one to comment. But I doubt that it can be used with a ChUI session because it was put together at a time when ChUI was going to go away at any moment (strangely that fate never happened...)

On modern releases you can use the OE Debugger to remotely debug remote sessions. Including character and app-server sessions. That is a "real" debugger.

Or you can use log-manager etc.
 

rzr

Member
Progress Version is 10.2b, on AIX.

Thanks for the info. I've used Debugger on windows platform but never used it for debugging on unix.
Let me refer to the documentation to see how that works.
 

TomBascom

Curmudgeon
Back in the 80s, before "user conferences" Progress had "beta conferences" to announce beta versions of new releases....

At the v4 beta conference's equivalent of what would today be termed an "info exchange" someone requested a debugger... Chip Ziering's deadpan response was "why would you put bugs in your code?"
 

rzr

Member
:) :) ... at this point I'm more interested in tracing the program flow than debugging through the source codes. ProSyp Plus was good in a way that it gave me a "Tree" view look to easily view through program calls.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Another sort of poor-man's flow is using -yx. It doesn't give you a tree view like _psplus but you do get a list of callers and callees.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
To debug a CHUI client (say, on Linux), first run proDebugConfig <PID> to make the client process ready for debugging and get a port number to attach to. If you don't specify a PID you get a list of running processes to choose from. You may have to be root to run that; can't remember offhand.

Then in the debugger go to the debug menu and attach to remote process and specify the host name and port number.
 

rzr

Member
Found this today! I can use the EXECUTION-LOG attribute on SESSION handle to log execution of procedures, user-define functions, and the publish and subscribe statements. The below code creates a log file name proexec.log. The proexec.log file gets generated into the directory you specified with the -T parameter. If you don't use the -T parameter to start your client session, then the default is your current/working directory.

You can then open the proexec.log file using the Pro*Spy utility on windows to "tree view" of program trace.

Code:
SESSION:EXECUTION-LOG  = true.
RUN /home/rzr/program.p
SESSION:EXECUTION-LOG  = false.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Thanks rzr! The ABL has a seemingly endless supply of keywords. Just when you think you know them all...

Anyway, I don't think I know them all and execution-log was a new one on me. Or maybe I learned it once and forgot about it; that happens too.

From the docs:
EXECUTION-LOG attribute
Determines whether the AVM traces the execution of procedures, user-define functions, and the publish and subscribe statements in the execution log. Intended for internal use only.
(Emphasis mine.)

That's confusing. So it's documented but we shouldn't use it? Anyway, it seems to work well enough.
 
Top