Application error 0x7829332a

jmac13

Member
The other Thread a posted broke with the image so I'll try again.


(Open Edge 10.2b)
Users of our menu system have been getting the following message when exiting the menu:

Prowin32.exe - Application Error

The Instruction at "0x782932df" referenced memory at "0x0226145c". The memory could not be "read".

Has anyone seen this before? When I run it up on the server it seems fine when exiting i dont get that message.

Any ideas would be a great help
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
I have seen a similar message on a client system, although I don't know if they ever found the root cause. I believe it may be related to a hardware issue, e.g. a bad RAM stick.
 

Stefan

Well-Known Member
Have a look at the protrace file created by the crash. To me its gibberish, but someone else or progress tech support may be able to say aha, its module x's fault.
 

jmac13

Member
no protrace available.. seems to happen when i escape out a program which fires a "end-error" on the f-main it seems to come up that error. but if do a Exit via menu item and run the same exit procedure it seems to be fine
 

jmac13

Member
its come to light because our users have switched to using a program that uses treeview vb6 ocx and ListViewContainer ocx. Before they werent using this, it seems to only happen when I press the ESC F4 doesnt seem to have the same issue with its even stranger.
 

Cringer

ProgressTalk.com Moderator
Staff member
It sounds like one of the ocx's isn't being cleaned up properly then. Best thing to do is to try and narrow down what the difference is between ESC and F4, and work out at what point you get the crash. The debugger is your friend!! :) Maybe try removing one of the ocx's and see if you still get the error, then remove the other one and try again. What if you remove both of them. At some point the error will go away and you can debug where the issue is occurring.
 

jmac13

Member
Hi Cringer,

Well the strange this is seems to only effect XP machines/windows 2003 as doesnt seem to do it on my vista setup. I've changed the code so it runs the same Exit code as the exit menu item. But seems to still do it, I follow the code through on the debugger and follows through the code to it gets to a quit command which it does normaly. so only thing i can see is that it doesn't like do this code:

when doing an escape on treeView object.

Code:
    bell. 
    message "Do you really want to exit?" 
            view-as alert-box question 
            buttons yes-no 
            update w-ans. 
 
    if w-ans then 
    do: 
        if search("help/cdmhelp.hlp") <> ? then 
            system-help "help/cdmhelp.hlp" quit. 
 
        if search("help/cdms_help.chm") <> ? then 
            system-help "help/cdms_help.chm" quit. 
 
        apply "close" to this-procedure. 
    end.




Its tough to work out whats going on as it happens after the progress quit
 

Cringer

ProgressTalk.com Moderator
Staff member
In which case I'd be looking at which ocx is causing the problem and working out why. I suspect something is not being cleared up properly.

Unfortunately it's hard for us to help here as we can't see the code.
 

RealHeavyDude

Well-Known Member
You could also use the client log (-clientlog and -logentrytpes 4GLTrace ) to pin down the code that exactly causes the crash. Just be aware that this can produce tons of information. From there you can then go on.

Heavy Regards, RealHeavyDude.
 

jmac13

Member
well I've narrow it down how to recreate it but still dont understand why its doing it. On my Ocx there is a trigger "Key-down" which captures the key presses on the treemenu. so when i press "esc" i run something in there to apply "end-error" to f-main. It then runs the code as expected till to it gets to a quit command then I get that error. but if i do an F4 it doesnt go into this trigger and quits with no error. Now how do i get to do the same function on ESC so it doesnt need to drop into the ocx trigger. I want to detect the escape key has been pressed anywhere on the screen.


also RHD cant seem to get that -clientlog to work I've done the following but nothing happens:


Code:
C:\Progress\OpenEdge\bin\prowin32.exe -ini ..\gui\english-cV10.ini -pf L:\pffiles\cdmsAll.pf -p gui_sys\guimenus.p -inp 8192 -Wa –wpp –clientlog c:\temp-tables\log.txt -logentrytpes 4GLTrace
 

jmac13

Member
ah thanks... I did look at the help 2 but didnt see that mistake i'm dyslectic so sometimes though for me to stop things like that. Doesn't to work for me as startup params but ok if i do it via session settings.


any ideas on the capturing the "ESC"?
 

jmac13

Member
well the log doesnt show anything as it gets to where i do the quit command then i get the error...hmmm
 

RealHeavyDude

Well-Known Member
Do I understand this correct that you get the error when executing the QUIT command? If that's the case then I would speculate that the Progress run time can't cleanup the OCX automatically and you would need to check the state in which the OCX is in, clean it up properly and then execute the QUIT command.

As to the typos, I do intend to provide something for everybody ... just kidding. Unfortunately there is not syntax check in the Firefox IDE. So I hope you do accept my sincere apology.

Heavy Regards, RealHeavyDude.
 

jmac13

Member
tbh Im not sure what the correct thing is to clean up the ocxs?

heres how we instantiate the ocx:


Code:
&IF "{&OPSYS}" = "WIN32":U AND "{&WINDOW-SYSTEM}" NE "TTY":U &THEN
DEFINE VARIABLE UIB_S    AS LOGICAL    NO-UNDO.
DEFINE VARIABLE OCXFile  AS CHARACTER  NO-UNDO.

OCXFile = SEARCH( "TreeMenu.wrx":U ).
IF OCXFile = ? THEN
  OCXFile = SEARCH(SUBSTRING(THIS-PROCEDURE:FILE-NAME, 1,
                     R-INDEX(THIS-PROCEDURE:FILE-NAME, ".":U), "CHARACTER":U) + "wrx":U).

IF OCXFile <> ? THEN
DO:
  ASSIGN
    chListViewContainer = ListViewContainer:COM-HANDLE
    UIB_S = chListViewContainer:LoadControls( OCXFile, "ListViewContainer":U)
    ListViewContainer:NAME = "ListViewContainer":U
    chListViewLargeIconContainer = ListViewLargeIconContainer:COM-HANDLE
    UIB_S = chListViewLargeIconContainer:LoadControls( OCXFile, "ListViewLargeIconContainer":U)
    ListViewLargeIconContainer:NAME = "ListViewLargeIconContainer":U
    chSmallIconContainer = SmallIconContainer:COM-HANDLE
    UIB_S = chSmallIconContainer:LoadControls( OCXFile, "SmallIconContainer":U)
    SmallIconContainer:NAME = "SmallIconContainer":U
    chToolbarGrayIconContainer = ToolbarGrayIconContainer:COM-HANDLE
    UIB_S = chToolbarGrayIconContainer:LoadControls( OCXFile, "ToolbarGrayIconContainer":U)
    ToolbarGrayIconContainer:NAME = "ToolbarGrayIconContainer":U
    chToolbarGrayIconContainer1 = ToolbarGrayIconContainer1:COM-HANDLE
    UIB_S = chToolbarGrayIconContainer1:LoadControls( OCXFile, "ToolbarGrayIconContainer1":U)
    ToolbarGrayIconContainer1:NAME = "ToolbarGrayIconContainer1":U
    chToolbarHotIconContainer = ToolbarHotIconContainer:COM-HANDLE
    UIB_S = chToolbarHotIconContainer:LoadControls( OCXFile, "ToolbarHotIconContainer":U)
    ToolbarHotIconContainer:NAME = "ToolbarHotIconContainer":U
    chToolbarHotIconContainer1 = ToolbarHotIconContainer1:COM-HANDLE
    UIB_S = chToolbarHotIconContainer1:LoadControls( OCXFile, "ToolbarHotIconContainer1":U)
    ToolbarHotIconContainer1:NAME = "ToolbarHotIconContainer1":U
    chTreeIcons = TreeIcons:COM-HANDLE
    UIB_S = chTreeIcons:LoadControls( OCXFile, "TreeIcons":U)
    TreeIcons:NAME = "TreeIcons":U
    chTreeViewContainer = TreeViewContainer:COM-HANDLE
    UIB_S = chTreeViewContainer:LoadControls( OCXFile, "TreeViewContainer":U)
    TreeViewContainer:NAME = "TreeViewContainer":U
  .
  RUN initialize-controls IN THIS-PROCEDURE NO-ERROR.
END.
ELSE MESSAGE "TreeMenu.wrx":U SKIP(1)
             "The binary control file could not be found. The controls cannot be loaded."
             VIEW-AS ALERT-BOX TITLE "Controls Not Loaded".

&ENDIF

and i do the following to get exit the program:

Code:
   if (chrCurrentControl = {&LISTVIEW} or chrCurrentControl = {&TREEVIEW}) and 
        tvwTreeView:SelectedItem:tag <> {&ROOT} then 
    do: 
        tvwTreeView:SelectedItem:parent:selected = true. 
        run pr-TreeViewNodeClick(tvwTreeView:SelectedItem:key). 
    end. 
    else 
    do: 
        message "Your are in the Root of the Menu System." skip 
                "Do you want to quit the program?" 
                view-as alert-box 
                question buttons yes-no 
                title "Quit Menu System..." 
                update w-logConfirm. 
        
        ASSIGN chTreeViewContainer = ?.

        if w-logConfirm then apply 'close' to this-procedure. 
    end. 
 
    return no-apply.
 

jmac13

Member
put a release at the end of the program but still get the error


Code:
release OBJECT tvwTreeView NO-ERROR.
RELEASE OBJECT lsvListView NO-ERROR.
RELEASE OBJECT stbStatusbar NO-ERROR.
RELEASE OBJECT pgbProgressbar NO-ERROR.
RELEASE OBJECT chListViewContainer NO-ERROR.
RELEASE OBJECT chListViewLargeIconContainer NO-ERROR.
RELEASE OBJECT chSmallIconContainer NO-ERROR.
RELEASE OBJECT chToolbarGrayIconContainer NO-ERROR.
RELEASE OBJECT chToolbarGrayIconContainer1 NO-ERROR.
RELEASE OBJECT chTreeIcons NO-ERROR.
RELEASE OBJECT chTreeViewContainer NO-ERROR.
 
Top