We have a Powerbuilder application, consisting of course of some number of PBLs that have some number of datawindows, that have some number of columns. At some point in the past somebody put together what I’m going to call a “utility tool”, which is just a window with some small number of supporting objects. The point to this “utility tool” is to
- Get the list of PBLs in the application via FindFirstFileA and FindNextFileA
- Iterate through each PBL to get its list of DataWindows and Controls via LibraryDirectoryEx
- Iterate through the columns in each DataWindow and Control and save its configuration off.
The end result is a “Data Dictionary” that someone can use to determine the table and column in the back end, given the window and column in the application, or vice versa.
The intent for this “utility tool” was for a developer to right click on it’s window in the PowerBuilder IDE and select Run/Preview. The tool would then run for however long it took to iterate through everything. This could take 2 to 3 minutes or so.
This evidentially worked for a while (years), but lately when we try to do this, the entire IDE will just go away – i.e. crash, but without any error message or anything else. It would just cease to be running. This happens randomly during the 2 to 3 minutes for the tool to complete. Sometimes it’s right away, sometimes it is more than a minute into the run. We tried adding some code to act as a log file – based on the results of this we know that the “crash” isn’t happening at the same point in code. It’s kind of all over the place.
Is there any way to debug why the PowerBuilder IDE is “crashing” or shutting down during a Run/Preview of a window?
I removed the calls to the ANSI methods and am now just hard coding my list of PBLs (for testing). I also made sure to include a Try Catch block as high up as I can get it. These changes have not made any difference on the behavior. The IDE and the Run/Preview'd window still blow off the screen at random times. The Catch block is not being run on the way out.
Thought: Have you tried optimizing your PBLs to see if "ghost" classes (logical deletes vs physical deletes) might be causing your issue?
Regards .. Chris