WCError details
Posted: Wed Nov 29, 2023 3:43 pm
Hi all,
we're in the debugging phase of our ported VO application so we're hitting a few sneaky bugs.
So I'm trying to understand how to get a maximum of information when a crash occurs.
for example our last culprit :
crashes with an Exception of type 'VO.WCError' was thrown.
But that's it.
I do have the stacktrace
So it's in the constructor but I don't really know where.
Is there a way to get more information as the sources are public, the pdb and debug dll are available ?
So I dug a bit more and as its an argument type error it should be around there :
I can see the WCError contains the name of the argument and the position.
Why don't I have this information in the Exception then ?
Best regards.
we're in the debugging phase of our ported VO application so we're hitting a few sneaky bugs.
So I'm trying to understand how to get a maximum of information when a crash occurs.
for example our last culprit :
Code: Select all
oDCFTRecherche := FixedText{SELF,ResourceID{RECHERCHE_DIALOG_FTRECHERCHE,_GetInst()}}
But that's it.
I do have the stacktrace
Code: Select all
Description : Invalid argument type.
Subsystem : GUI Classes
GenCode : EG_UNKNOWN Unknown GenCode
FuncSym : CONTROL:INIT
Severity : ES_ERROR
Can Default : True
Can Retry : False
Can Substitute : False
Tries : 1
Stack Trace :
CONTROL:.CTOR (Line: 0)
TEXTCONTROL:.CTOR (Line: 0)
FIXEDTEXT:.CTOR (Line: 0)
RECHERCHE_DIALOG:.CTOR (Line: 225)
RECHERCHEART:.CTOR (Line: 638)
LOCFORMDET:RECHERCHEARTICLE (Line: 14605)
LOCFORM:RECHERCHEARTICLE (Line: 6293)
RUNTIMEMETHODHANDLE:INVOKEMETHOD (Line: 0)
RUNTIMEMETHODINFO:UNSAFEINVOKEINTERNAL (Line: 0)
RUNTIMEMETHODINFO:INVOKE (Line: 0)
OOPHELPERS:SENDHELPER (Line: 0)
OOPHELPERS:SENDHELPER (Line: 0)
OOPHELPERS:DOSEND (Line: 0)
SEND (Line: 0)
WINDOW:__COMMANDFROMEVENT (Line: 0)
WINDOW:__PREMENUCOMMAND (Line: 0)
WINDOW:DISPATCH (Line: 0)
APPWINDOW:DISPATCH (Line: 0)
DATAWINDOW:DISPATCH (Line: 0)
PDATAWINDOW:DISPATCH (Line: 1081)
LOCFACFORM:DISPATCH (Line: 635)
LOCFORM:DISPATCH (Line: 2757)
__DOCAPP:DISPATCH (Line: 0)
__WCDOCAPPWNDPROC (Line: 0)
CALLWINDOWPROC (Line: 0)
__WCCONTROLPROC (Line: 0)
DISPATCHMESSAGE (Line: 0)
APP:EXEC (Line: 0)
XAPP:START (Line: 389)
START (Line: 64)
Is there a way to get more information as the sources are public, the pdb and debug dll are available ?
So I dug a bit more and as its an argument type error it should be around there :
Code: Select all
IF IsObject(oOwner)
oParent := oOwner
ELSEIF IsPtr(oOwner)
oParent := __ForeignWindow{oOwner}
ELSE
WCError{#Init,#Control,__WCSTypeError,oOwner,1}:Throw()
ENDIF
(...)
IF IsLong(xID)
IF IsString(oPoint) .AND. IsNil(oDimension)
xID := ResourceID{ xID }
ENDIF
ELSE
if !(xID is ResourceID)
WCError{#Init,#Control,__WCSTypeError,xID,2}:Throw()
ENDIF
ENDIF
Why don't I have this information in the Exception then ?
Best regards.