I have a window program using methods of a class.
I want to see the exact flow and debug as well.
I wrote degugger:initiate(). & debugger:set-break(). in .w, now when stepping through the code application crashes at the point of referencing method of the class and I have an error 'connection reset'.
Am I doing anything wrong here?
A crash usually means that there is a bug in OpenEdge. If you're using Windows, copy the files from DLC\pdbfiles to DLC\bin (DLC is the directory where OpenEdge is installed) and then try to debug your program again. A file named protrace.* should be written in your working directory when OpenEdge crashes. You could post the protrace file here but you should also log a bug with Progress Technical Support.
Below is the protrace file, Could you please have a look and let me know if something is wrong
Also note: application runs alright, it crashes only when I try to debug and step into the code.
=====================================================
PROGRESS stack trace as of Tue Apr 21 12:22:17 2015
=====================================================
Startup parameters:
-pf C:\dlc102b\startup.pf,-cpinternal ISO8859-1,-cpstream ISO8859-1,-cpcoll Danish,-cpcase Basic,-d dmy,-numsep 46,-numdec 44,(end .pf), /* I removed content here */
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 102422B9 01:002412B9 C:\DLC102B\bin\prow32.dll
Registers:
EAX:0397C37C
EBX:0A5C7D3C
ECX:0A597A6C
EDX:00000000
ESI:0A5C7D2C
EDI:0A553B44
CS:EIP:001B:102422B9
SS:ESP:0023:0012F268 EBP:1075EFA0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00210212
Debugging dll C:\Windows\system32\DBGHELP.DLL
Symbol Path:
C:\DLC102B\bin;C:\dlc102b\pdbfiles
Call Stack:
Address Frame
102422B9 00000000 pam_get_item+13E79
10243EF8 00000000 pam_get_item+15AB8
** ABL Stack Trace **
/* I removed the content here */
** Persistent procedures/Classes **
Handle File Name
/* I removed the content here */
//=====================================================
PROGRESS stack trace as of Tue Apr 21 12:22:18 2015
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 102422B9 01:002412B9 C:\DLC102B\bin\prow32.dll
Registers:
EAX:0397C37C
EBX:0A5C7D3C
ECX:0A597A6C
EDX:00000000
ESI:0A5C7D2C
EDI:0A553B44
CS:EIP:001B:102422B9
SS:ESP:0023:0012F268 EBP:1075EFA0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00210212
Call Stack:
Address Frame
102422B9 0012F27C pam_get_item+13E79
10243EF8 0012F2A8 pam_get_item+15AB8
Below is the protrace file, Could you please have a look and let me know if something is wrong
=====================================================
PROGRESS stack trace as of Tue Apr 21 12:22:17 2015
=====================================================
Startup parameters:
-pf C:\dlc102b\startup.pf,-cpinternal ISO8859-1,-cpstream ISO8859-1,-cpcoll Danish,-cpcase Basic,-d dmy,-numsep 46,-numdec 44,(end .pf), /* I removed content here */
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 102422B9 01:002412B9 C:\DLC102B\bin\prow32.dll
Registers:
EAX:0397C37C
EBX:0A5C7D3C
ECX:0A597A6C
EDX:00000000
ESI:0A5C7D2C
EDI:0A553B44
CS:EIP:001B:102422B9
SS:ESP:0023:0012F268 EBP:1075EFA0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00210212
Debugging dll C:\Windows\system32\DBGHELP.DLL
Symbol Path:
C:\DLC102B\bin;C:\dlc102b\pdbfiles
Call Stack:
Address Frame
102422B9 00000000 pam_get_item+13E79
10243EF8 00000000 pam_get_item+15AB8
** ABL Stack Trace **
/* I removed the content here */
** Persistent procedures/Classes **
Handle File Name
/* I removed the content here */
//=====================================================
PROGRESS stack trace as of Tue Apr 21 12:22:18 2015
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 102422B9 01:002412B9 C:\DLC102B\bin\prow32.dll
Registers:
EAX:0397C37C
EBX:0A5C7D3C
ECX:0A597A6C
EDX:00000000
ESI:0A5C7D2C
EDI:0A553B44
CS:EIP:001B:102422B9
SS:ESP:0023:0012F268 EBP:1075EFA0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00210212
Call Stack:
Address Frame
102422B9 0012F27C pam_get_item+13E79
10243EF8 0012F2A8 pam_get_item+15AB8
Flag this post as spam/abuse.
I am using OE 102b07, where can I get pdb files?
I do not have access to tech support, I have tried using pdb files of SP08 but no use.
Thanks all for ur time:(
Below is the new protrace file
Also note: application runs alright, it crashes only when I try to debug and step into the code.
=====================================================
PROGRESS stack trace as of Tue Apr 21 14:27:03 2015
=====================================================
Startup parameters:
-pf C:\dlc102b\startup.pf,-cpinternal ISO8859-1,-cpstream ISO8859-1,-cpcoll Danish,-cpcase Basic,-d dmy,-numsep 46,-numdec 44,(end .pf),-pf c:\bcc-trunk\gui\oeide-bcc\klient.pf,-T C:\TEMP,-Bt 128,-mmax 65534,-Mm 16384,-p sysstart.p,-sslverify 0,-s 200,(end .pf),-basekey INI,-ininame C:\bcc-trunk\gui\oeide-bcc\ProgressInclDB.ini,-debugalert
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 102422B9 01:002412B9 C:\DLC102B\bin\prow32.dll
Registers:
EAX:0A7A75BC
EBX:059054A4
ECX:0A9A61EC
EDX:00000000
ESI:05905494
EDI:0A9461DC
CS:EIP:001B:102422B9
SS:ESP:0023:0012F268 EBP:1075EFA0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010212
Debugging dll C:\Windows\system32\DBGHELP.DLL
Symbol Path:
C:\DLC102B\bin;C:\dlc102b\pdbfiles
Call Stack:
Address Frame
102422B9 00000000 rnpdgparms+169
10243EF8 00000000 rnpdgproc+108
1024407D 00000000 rnpdgproc+28D
1024464F 00000000 rnpd_bgn+24F
10239CDD 00000000 pdEstablishStackFrame+1D
102A794C 00000000 rnproc_entry+1F8C
102F0656 00000000 rninterpret+26
102C7AB5 00000000 bfXlateField+135
102CA7EF 00000000 rnLoadStaticInst+AF
102CA958 00000000 rnLoadStaticInst+218
102CC004 00000000 rnReuseDBGone+6B4
102CCD3A 00000000 rnGetStaticUICFromOtm+10A
1005438D 00000000 fmeval+38D
1005412D 00000000 fmeval+12D
102DB9EE 00000000 rnrunvoidmethod+4E
102E82F5 00000000 rnexec_entry+305
102F0656 00000000 rninterpret+26
101591E2 00000000 umeDispatchEvent+EC2
10498BED 00000000 wwRunDispatcher+8D
10276EDE 00000000 iodispatch+BE
10276EF7 00000000 iodispatch+D7
1005EC3F 00000000 rnrq+DF
10025C11 00000000 drmain+4A1
1008A05B 00000000 ProStartup+5B
00401253 00000000 WinMain+183
00401467 00000000 __tmainCRTStartup+140
76E9EE1C 00000000 BaseThreadInitThunk+12
76F9399B 00000000 RtlInitializeExceptionChain+EF
76F9396E 00000000 RtlInitializeExceptionChain+C2
** ABL Stack Trace **
--> Dk.Cgi.Bcc.App.PrintOutstandingAnalysis.GetData (C:\bcc-trunk\oo\Dk\Cgi\Bcc\App\PrintOutstandingAnalysis\GetData.cls) at line 0
USER-INTERFACE-TRIGGER ltudest.w (C:\bcc-trunk\gui\src\ltudest.w) at line 4816
ltudest.w (C:\bcc-trunk\gui\src\ltudest.w) at line 5489
mnu-go logon1.w (C:\bcc-trunk\bd-iso-bcc\src\logon1.w) at line 1699
logon1.w (C:\bcc-trunk\bd-iso-bcc\src\logon1.w) at line 2970
sysstart.p (C:\bcc-trunk\bd-iso\src\sysstart.p) at line 855
** Persistent procedures/Classes **
Handle File Name
/* CONTENT REMOVED - let me know if this required */
//=====================================================
PROGRESS stack trace as of Tue Apr 21 14:27:04 2015
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 102422B9 01:002412B9 C:\DLC102B\bin\prow32.dll
Registers:
EAX:0A7A75BC
EBX:059054A4
ECX:0A9A61EC
EDX:00000000
ESI:05905494
EDI:0A9461DC
CS:EIP:001B:102422B9
SS:ESP:0023:0012F268 EBP:1075EFA0
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010212
Call Stack:
Address Frame
102422B9 0012F27C pam_get_item+13E79
10243EF8 0012F2A8 pam_get_item+15AB8
The crash is happening when the debugger is getting information about the method's parameters. Please copy and paste the method definition so we can see the parameters and their types. We don't need the method's body, just the parameters.
This is method definition method public void PrintOutstandingAnalysis (
input profl_kum_faelles_db as logical,
input lst-kod-sta as character,
input lst-txt-prior as character,
input lst-kod-prior as character,
input lst-txt-sta as character,
input lst-nr-prior as character,
input bd-operafd as character,
input bd-operafd-nvn as character,
input lst-txt-prvtager as character,
input profl_rkv_typ as character,
input lst-profl-vaerdi as character,
input lst-profl-divkode as character,
input profl_NPN as logical,
input bd-oprid as character,
input-output lst-opfolg as character,
input-output lst-dig as character,
input-output lst-kvant as character,
input-output wk-sogkrit as character,
input-output rekvirent-typ as character,
input-output rekvirent-grp as character,
input sfp-type as character,
input sfp-grp as character,
input cmb-frastat as character,
input-output frastat as character,
input-output lst-kod-rtp as character,
input-output lst-txt-rtp as character,
input cmb-tilstat as character,
input-output tilstat as character,
input cmb-prior as character,
input-output akt-prior as character,
input arblid as character,
input-output w-kvnkod-lst as character,
input-output w-kvnfrk-lst as character,
input opfolg as character,
input-output Valgt-prvtsted as character,
input Prvt-sted as character,
input tg-kunarkiver as logical,
input kvant as character,
input udskriftsniveau as character,
input medie as character,
input-output Vpe-dir as character,
input PrintTyper as character,
input totalantal as integer,
input tg-medarkiver as logical,
input datotype as character,
input fra-dato as date,
input til-dato as date,
input-output akt-stat as character,
input fra-klok as integer,
input til-klok as integer,
input datoblankchecked as logical,
input-output OK-prvtsted as logical,
input-output antal as integer,
input-output sumantal as integer,
input fradato as character,
input fraklk as character,
input tildato as character,
input tilklk as character,
input sortering as character,
input tgl-ejindsendte as logical,
input pre-download as logical,
input IndsendtProve-PrvtgSted-id as character,
input IndsendtProve-RekvType-id as character,
input datotype-2 as character,
input tgl-cprnavn as logical,
input tgl-barcode as logical,
input prvt-selv as character,
input sendeprove as character):
Also I have this code in constructor to set a support procedure persistant
supportProcedureFile = "Dk/Cgi/Bcc/App/PrintOutstandingAnalysis/VpePrint-support.p".
run VALUE (supportProcedureFile) persistent set supportProcedure.
let me add again:) this works alright when I run. There is a crash only when I try to debug. And crash is at the point of entry to class.
Have you considered putting all the parameters in a separate class and pass an object reference instead to the method? Might solve you debugger problem as well, but more important: this amount of parameters isn't considered "good practise"...
We are in process of moving from legacy to OO, this is a start. Now to your suggestion, my teammate is able to debug the same file. But I am not able to. why?
Ah, I didn't know that the crash was specific to your machine. Obviously it's a bug in 10.2B, did you consider the latest SP? (set aside the 10.2B07, install SP to see if that solves matters and then decide what to do with that knowledge).
I know of at least one debugger bug that is not addressed in 10.2B08, although that relates to buffers, and you don't have buffers in the signature. You'd have to get at least 11.1 for that fix. I have not taken the time to investigate other possible causes with such a method signature (maybe others might).
As to why it occurs on one machine and not another: could be a number of reasons. I would guess it is related to the particular OS version, and the way it allocates memory. The AVM is doing something wrong, but depending on what happens to be in memory where it is looking, sometimes it might crash, sometimes not. If you happen to have r-code that is being executed, you might want to try recompiling.
I know you said don't have access to Tech Support, but if you really want to get to the bottom of this, I suspect you would need to log a call with Tech Support.