Hi marc_256,
not easy to answer.
marc_256 wrote:Hi,
The compiler crashes without any massage at all ??
CRASH and quit the PB compiler ??
Marc
After the crash, was the exe file still created (big file because of the code added for debugging)?
If so, did you run it ?
If not created, the problem is for Fred (send him all the code).
If the exe file is created, put at the beginning of all procedures this :
Code: Select all
"debug Procedure " + #PB_Compiler_Procedure
to try to isolate the last procedure called and then investigate it or using Stopping point and try to compile (run it step by step)
I remember a crash I had with an MS structure badly declared by PB . In such crash, often the return procedure code is overwritten and the app crash.
For example, structure LVGROUP is badly declared by PB (most people here are using a MS version > VISTA
Code: Select all
PB: 64 bit
Structure LVGROUP
cbSize.l
mask.l
*pszHeader
cchHeader.l
*pszFooter
cchFooter.l
iGroupId.l
stateMask.l
state.l
uAlign.l
EndStructure
Code: Select all
MS:
typedef struct tagLVGROUP
{
UINT cbSize;
UINT mask;
LPWSTR pszHeader;
int cchHeader;
LPWSTR pszFooter;
int cchFooter;
int iGroupId;
UINT stateMask;
UINT state;
UINT uAlign;
#if (NTDDI_VERSION >= NTDDI_VISTA)
LPWSTR pszSubtitle;
UINT cchSubtitle;
LPWSTR pszTask;
UINT cchTask;
LPWSTR pszDescriptionTop;
UINT cchDescriptionTop;
LPWSTR pszDescriptionBottom;
UINT cchDescriptionBottom;
int iTitleImage;
int iExtendedImage;
int iFirstItem; // Read only
UINT cItems; // Read only
LPWSTR pszSubsetTitle; // NULL if group is not subset
UINT cchSubsetTitle;
If you use a lot of structures, it's better to use AllocateStructure instead of using global or local var.
May be, it could be a stack crash (overwriting ? --> compiler have to report it if purifier is activated), don't really know.
I always declare string with #Empty$