[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::c_plus_plus

Title:C++
Notice:Read 1.* and use keywords (e.g. SHOW KEY/FULL KIT_CXX_VAX_VMS)
Moderator:DECCXX::AMARTIN
Created:Fri Nov 06 1987
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:3604
Total number of notes:18242

3543.0. "Compiler stack dump on map of a map of a map" by GAAS::TSUK (Michael Tsuk) Fri Apr 18 1997 18:27

We're getting a compiler stack dump when we try to instantiate a
map of a map of a map.

Here's the code:

#include <map>

template class map<int, double>;
template class map<int, map<int, double> >;
template class map<int, map<int, map<int, double> > >; // This breaks it.

This is on an AlphaServer 8400 Model 5/350, and CXX/VERSION gives 
DEC C++ T5.5-010 on OpenVMS Alpha V6.2-1H3.

Here are the compiler switches:

CXX /assume=noheader_type_default/exceptions=nocleanup/noopt/debug -
     /template_define bug.CXX

Here's the result:

%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=05616C61,
PC
=05616C60, PS=0000001B

  Improperly handled condition, image exit forced.
    Signal arguments:   Number = 00000005
                        Name   = 0000000C
                                 00010000
                                 05616C61
                                 05616C60
                                 0000001B

    Register dump:
    R0  = 00000000007D6A90  R1  = 0000000000000001  R2  = 633C726961703C72
    R3  = 746E692074736E6F  R4  = 6E693C70616D202C  R5  = 00000000005D3298
    R6  = 0000000000A6C118  R7  = 0000000000000000  R8  = 000000000138FD40
    R9  = 0000000000000000  R10 = 0000000000000000  R11 = 0000000000000000
    R12 = 0000000000BFA638  R13 = 0000000000074C68  R14 = 00000000000000EC
    R15 = 0000000000000000  R16 = 00000000007D7013  R17 = 0000000000000003
    R18 = 000000007E202926  R19 = 0000000000000000  R20 = 0000000000000008
    R21 = 00000000000665E0  R22 = 0000000000C20168  R23 = 0000000000000001
    R24 = 0000000000000561  R25 = 00000000000665E0  R26 = 6F74616305616C61
    R27 = 0000000000202926  R28 = 203E203E203E203E  R29 = 6C62756F64202C74
    SP  = 000000007ED6E150  PC  = 6F74616305616C60  PS  = 100000000000001B

Thanks!

				-Michael
T.RTitleUserPersonal
Name
DateLines
3543.1VAX crash of same codeGAAS::FISHERwhile (!asleep) sheep++;Fri Apr 18 1997 18:4214
On VAX VMS (same cluster) it gives the following error:

$CXX /assume=noheader_type_default/exceptions=nocleanup/noopt/debug -
     /template_define bug.CXX
%CLI-F-TEXT, Compiler abort - virtual memory limits exceeded.
%SYSTEM-F-ABORT, abort


Bye          --+--
Kay R. Fisher  |
---------------O---------------
################################################################################


3543.2DECCXL::ZEEBJeff ZeebMon Apr 21 1997 13:533
I have logged this problem in our tracking database.

Jeff
3543.3UpdateCMOS6::TSUKMichael TsukTue Apr 22 1997 19:1538
    With DEC C++ V5.5-017 on OpenVMS Alpha V6.2-1H3, we can compile the
    code in the base note.  However, trying to go one more level causes
    problems:
    
    #include <map>
    
    template class map<int, double>;
    template class map<int, map<int, double> >;
    template class map<int, map<int, map<int, double> > >;
    template class map<int, map<int, map<int, map<int, double> > > >;
    
    $ CXX /assume=noheader_type_default/exceptions=nocleanup/noopt/debug -
         /template_define bug.CXX
    
    %SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual
    address=6C61202C, PC=6C61202C, PS=0000001B
    
      Improperly handled condition, image exit forced.
        Signal arguments:   Number = 00000005
                            Name   = 0000000C
                                     00010000
                                     6C61202C
                                     6C61202C
                                     0000001B
    
        Register dump:
    R0  = 0000000000A96A60  R1  = 000000007ED6FBE9  R2  = 726961703C726F74
    R3  = 692074736E6F633C  R4  = 62756F64202C746E  R5  = 3E203E203E20656C
    R6  = 693C7373656C202C  R7  = 6C61202C3E20746E  R8  = 3C726F7461636F6C
    R9  = 6E6F633C72696170  R10 = 202C746E69207473  R11 = 2C746E693C70616D
    R12 = 0000000001674BF0  R13 = 0000000000000000  R14 = 0000000000491ED4
    R15 = 000000007EE91DA0  R16 = 0000000000A98280  R17 = 00000000000000F7
    R18 = 000000000000000F  R19 = 0000000000000000  R20 = FFFFFFFFFFFFFFFB
    R21 = 0000000000202926  R22 = 000000007F3608D0  R23 = 000000007ED6E3D0
    R24 = 000000007ED6FBEB  R25 = 0000000000000002  R26 = 61636F6C6C61202C
    R27 = 0000000000202926  R28 = 0000000000000000  R29 = 2C656C62756F6420
    SP  = 000000007ED6F430  PC  = 61636F6C6C61202C  PS  = 300000000000001B
    
3543.4Any update?GAAS::TSUKMichael TsukWed May 28 1997 14:0633
Re: .2 from Jeff Zeeb:

> I have logged this problem in our tracking database.

Any update?  We're still getting the message:

%CLI-F-TEXT, Compiler abort - virtual memory limits exceeded.
%SYSTEM-F-ABORT, abort

on our VAX system (DEC C++ V5.5-017 on OpenVMS VAX V6.1), and a 

%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=6C61202C,
PC=6C61202C, PS=0000001B

on our Alpha (DEC C++ V5.5-017 on OpenVMS Alpha V6.2-1H3).

In both cases, the command line is:

cxx/assume=noheader_type_default/template_define bug

and the code is:

#include <map>

template class map<int, double>;
template class map<int, map<int, double> >;
template class map<int, map<int, map<int, double> > >;
template class map<int, map<int, map<int, map<int, double> > > >;

Is there a field-test version or a patch we could try out?  This is
having an impact on our development.

				-Michael
3543.5NotedDECCXX::AMARTINAlan H. MartinThu May 29 1997 12:396
Re .4:

>Any update?  ...

I've highlighted your situation to management.
				/AHM