| 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 | 
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.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 3543.1 | VAX crash of same code | GAAS::FISHER | while (!asleep) sheep++; | Fri Apr 18 1997 14:42 | 14 | 
| 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.2 | DECCXL::ZEEB | Jeff Zeeb | Mon Apr 21 1997 09:53 | 3 | |
| I have logged this problem in our tracking database. Jeff | |||||
| 3543.3 | Update | CMOS6::TSUK | Michael Tsuk | Tue Apr 22 1997 15:15 | 38 | 
|     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.4 | Any update? | GAAS::TSUK | Michael Tsuk | Wed May 28 1997 10:06 | 33 | 
| 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.5 | Noted | DECCXX::AMARTIN | Alan H. Martin | Thu May 29 1997 08:39 | 6 | 
| Re .4: >Any update? ... I've highlighted your situation to management. /AHM | |||||