Skip to main content

We recently tried to upgrade from Visual Cobol 5 to 7 but were forced to roll back because our applications were crashing


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff66e149e in _mFgdlisize ()

This was found in two places that had extremely large initialize statements of several items (roughly 20 01-items of around 1k size each). Each time, I was able to comment out a single data item to cause the compiler to not produce the call to _mFgdlisize which allowed the program to run.

Spliting it into 20 smaller initalize statements did not fix the problem, it would error on the same data item each time still.

I was able to download Visual Cobol 6.0 personal edition for windows and use dependency walker to confirm that _mFgdlisize was in CBLRTSM.dll meaning that it was introduced in VC6.0 and not VC7

So my question is what is _mFgdlisize and why is it causing my programs to crash?

Thank you in advance for your time.

We recently tried to upgrade from Visual Cobol 5 to 7 but were forced to roll back because our applications were crashing


Program received signal SIGSEGV, Segmentation fault.
0x00007ffff66e149e in _mFgdlisize ()

This was found in two places that had extremely large initialize statements of several items (roughly 20 01-items of around 1k size each). Each time, I was able to comment out a single data item to cause the compiler to not produce the call to _mFgdlisize which allowed the program to run.

Spliting it into 20 smaller initalize statements did not fix the problem, it would error on the same data item each time still.

I was able to download Visual Cobol 6.0 personal edition for windows and use dependency walker to confirm that _mFgdlisize was in CBLRTSM.dll meaning that it was introduced in VC6.0 and not VC7

So my question is what is _mFgdlisize and why is it causing my programs to crash?

Thank you in advance for your time.

This sounds like a bug since you were able to compile fine back in VC 5.0. I suggest then to report the issue to your local Micro Focus support to validate and get the bug fixed.


This sounds like a bug since you were able to compile fine back in VC 5.0. I suggest then to report the issue to your local Micro Focus support to validate and get the bug fixed.

To get assistance with opening a Support Case, please call in to Micro Focus Support. If you are in North America, the number is 800-632-6265. For other locations, please see the following page for a list of numbers:

support.microfocus.com/.../supportline.html


To get assistance with opening a Support Case, please call in to Micro Focus Support. If you are in North America, the number is 800-632-6265. For other locations, please see the following page for a list of numbers:

support.microfocus.com/.../supportline.html

Yes I do have a support case open already but was hoping a friendly developer would pop on and say what the function does, under what conditions it is generated that sort of thing. I was looking at what conditions it gets generated (via the -C ASM tag). but I've already spent lots of time on what was supposed to be a simple upgrade.

My best guess is microFocus Global Data license Size and its doing a license check at runtime not sure why an INTIALIZE statement would cause it to be generated.

I should also mention that I wasn't able to reproduce it with a standalone; executable; only with my current setup of statically linking an archive file.

Here are the microfocus parts of the stack track

#0 0x00007ffff68f23fe in _mFgdlisize () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3
#6 0x00007ffff6966cac in mFt_xe_xcall () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3
#7 0x00007ffff6932f6d in cobol_main.isra.0 () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3
#8 0x00007ffff6932ec9 in _mFgmain () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3

Just trying to figure out what mFgdlisize means.


Yes I do have a support case open already but was hoping a friendly developer would pop on and say what the function does, under what conditions it is generated that sort of thing. I was looking at what conditions it gets generated (via the -C ASM tag). but I've already spent lots of time on what was supposed to be a simple upgrade.

My best guess is microFocus Global Data license Size and its doing a license check at runtime not sure why an INTIALIZE statement would cause it to be generated.

I should also mention that I wasn't able to reproduce it with a standalone; executable; only with my current setup of statically linking an archive file.

Here are the microfocus parts of the stack track

#0 0x00007ffff68f23fe in _mFgdlisize () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3
#6 0x00007ffff6966cac in mFt_xe_xcall () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3
#7 0x00007ffff6932f6d in cobol_main.isra.0 () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3
#8 0x00007ffff6932ec9 in _mFgmain () from /opt/microfocus/VisualCOBOL/lib/libcobrts64.so.3

Just trying to figure out what mFgdlisize means.

_mFgdlsize() is an internal function that should only fire when the new DYNAMIC LENGTH functionality is used.  if it's being called for any program that works in VC 5.0, that's a bug in itself.

We'll need a demo through the usual channels, to reproduce and fix the issue.


_mFgdlsize() is an internal function that should only fire when the new DYNAMIC LENGTH functionality is used.  if it's being called for any program that works in VC 5.0, that's a bug in itself.

We'll need a demo through the usual channels, to reproduce and fix the issue.

Yes this is exactly the information that I was looking for!

Thank you so much for responding