Following debugger from a .w to .cls

Posted by Venky on 17-Apr-2015 04:05

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?

Posted by Brian K. Maher on 21-Apr-2015 06:59

Venky,
 
The PDB files are specific to the version installed.  Using 10.2B08 PDB files with anything other than 10.2B08 will not work.
 
Check your private email.
 
Brian

All Replies

Posted by Matt Gilarde on 17-Apr-2015 04:47

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.

Posted by Venky on 21-Apr-2015 05:34

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

Posted by Brian K. Maher on 21-Apr-2015 05:41

The stack trace is useless.  You need to obtain the *.PDB files for your version, copy them into the $DLC/pdbfiles directory then reproduce the error.  The new protrace files should then have useful stack information.
 
[collapse]
From: Venky [mailto:bounce-Venky@community.progress.com]
Sent: Tuesday, April 21, 2015 6:35 AM
To: TU.OE.Development@community.progress.com
Subject: RE: [Technical Users - OE Development] Following debugger from a .w to .cls
 
Reply by Venky

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

Stop receiving emails on this subject.

Flag this post as spam/abuse.

[/collapse]

Posted by Venky on 21-Apr-2015 05:48

I am using OE 102b07, where can I get pdb files?

Posted by Brian K. Maher on 21-Apr-2015 05:54

 
Venky,
 
Contact Tech Support.  We can provide the files.
 
Brian
 
 

Posted by Venky on 21-Apr-2015 06:55

I do not have access to tech support, I have tried using pdb files of SP08 but no use.

Thanks all for ur time:(

Posted by Brian K. Maher on 21-Apr-2015 06:59

Venky,
 
The PDB files are specific to the version installed.  Using 10.2B08 PDB files with anything other than 10.2B08 will not work.
 
Check your private email.
 
Brian

Posted by Venky on 21-Apr-2015 07:29

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

Posted by Matt Gilarde on 21-Apr-2015 08:00

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.

Posted by Venky on 21-Apr-2015 08:11

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.

Posted by Venky on 21-Apr-2015 08:21

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.

Posted by bronco on 21-Apr-2015 08:31

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"...

Posted by Venky on 21-Apr-2015 08:34

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?

Posted by bronco on 21-Apr-2015 08:57

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).

Posted by Garry Hall on 21-Apr-2015 09:14

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.

This thread is closed