This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: C++/518


The following reply was made to PR c++/518; it has been noted by GNATS.

From: Laurent Martelli <martelli@iie.cnam.fr>
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org,
   Torsten_Rohlfing@urmc.rochester.edu
Cc:  
Subject: Re: C++/518
Date: Thu, 05 Oct 2000 11:31:12 +0200 (CEST)

 I think I have encountered a similar problem on an Ultra60. The program is pure 
 C. The machine's native compiler (
 
 Here's an exerpt of the program around the SIGBUS line (marked with `=>') :
 
 void invent_insert_order(INVENT      invent                   ,
                          ORDERPTR    orderp                   ,
                          IDEXT_TYPOS idext_typos[NB_MAX_TYPOS],
                          IDEXT_TYPOS idext_typofilters        ,
                          short       ordercontrolb            ,
                          short       *lastorderidip           )
 {
     INVENTELTDATA       inventeltdata     ;
     VARCOURS            varcours          ;
     MARKET              market            ;
 
     VALUE_MNEMOS        askmnemos         ; /* Mnemo of demanded ASSET */
     VALUE_MNEMOS        assetmnemos       ; /* Mnemo of current  ASSET */
     VALEUR              valeur            ;
 
     memset (askmnemos,0,sizeof(askmnemos));
     memset(&valeur, '\0', sizeof(VALEUR)) ;
 
     if (!st_isblank(idext_typofilters))
     {
         if (valeur_search_by_code(idext_typofilters, 
                                   &valeur))
         {
              strcpy(askmnemos, valeur.mnemos);
         }
     }
     invent_reset_order_indicator(invent);
 
     market_find_internal(orderp->id_marketi,&market);
 
     memset(&inventeltdata,0,sizeof(INVENTELTDATA))              ;
 
     /* Only orders on Underlying Stock are managed by the system */
     inventeltdata.typactifi= INVENT_TYPACTIF_STOCK              ;
 
     strcpy(inventeltdata.idext_clients,orderp->idext_clients)   ;
     strcpy(inventeltdata.idext_typos[g_partypo.ind_typoactifi],
            orderp->idext_typoactifs)  ;
     inventeltdata.engagementb   = TRUE                          ;
     inventeltdata.id_marketi    = orderp->id_marketi            ;
     inventeltdata.sensi         = orderp->sensi                 ;
     inventeltdata.natengagi     = orderp->natengagi             ;
 =>  inventeltdata.qtinventd     = orderp->qtd                   ;
     inventeltdata.crsinventd    = orderp->lastcrsd              ;
     inventeltdata.crsssjacentinventd = orderp->lastcrsssjacentd ;
     inventeltdata.typordi       = orderp->typordi               ;
     inventeltdata.crsexecd      = orderp->crsexecd              ;
     inventeltdata.dtvalidl      = orderp->dtvalidl              ;
 
 
 The backtrace from gdb :
 (gdb) bt
 #0  0x10a5c0 in invent_insert_order (invent=0x6c9830, orderp=0x6cd08c, 
     idext_typos=0x0, idext_typofilters=0xffbe9830 "", ordercontrolb=0, 
     lastorderidip=0xffbeb1be) at ../object.dir/invent.c:1653
 #1  0x10afc0 in invent_merge_orders (invent=0x6c9830, 
     inventrequestp=0xffbeb1c8, inventorder=0x6c9860, lastlinkip=0xffbeb1be)
     at ../object.dir/invent.c:1932
 #2  0x10fd18 in invent_build_invent_order (inventrequestp=0xffbeb1c8, 
     constitb=0, inventp=0xffbeb1c4, lastlinkip=0xffbeb1be)
     at ../object.dir/invent.c:3583
 #3  0x87718 in locinv_build_invent (inventrequestp=0xffbeb1c8, 
     inventp=0xffbeb1c4, valob=1, constitb=0, lastlinkip=0xffbeb1be)
     at ../object.dir/locinv.c:880
 #4  0x86218 in locinv_invent (requestp=0xffbeb1c8, inventp=0xffbeb1c4, 
     valob=1, constitb=0, lastlinkip=0xffbeb1be, mergeb=0)
     at ../object.dir/locinv.c:526
 #5  0x10fa4c in invent_get_invent (requestp=0xffbeb1c8, inventp=0xffbeb1c4, 
     valob=1, constitb=0, lastlinkip=0xffbeb1be) at ../object.dir/invent.c:3467
 #6  0x9f9d4 in inventel_server_process (blockp=0xffbef208, socket=11)
     at ../object.dir/inventel.c:882
 #7  0x3c234 in datamess_process (blockp=0xffbef208, socket=11, sockindi=0)
     at ../object.dir/datamess.c:375
 #8  0x4fc8c in mess_processrequest (blockingb=1) at ../server.dir/mess.c:1220
 #9  0x325a4 in main (argc=3, argv=0xffbef6a4) at ../server.dir/mainserv.c:747
 
 
 And disasemble around the crash point (0x10a5c0) :
 
 0x10a58c <invent_insert_order+316>:	nop 
 0x10a590 <invent_insert_order+320>:	mov  1, %o0	! 0x1
 0x10a594 <invent_insert_order+324>:	sth  %o0, [ %fp + -850 ]
 0x10a598 <invent_insert_order+328>:	ld  [ %fp + 0x48 ], %o0
 0x10a59c <invent_insert_order+332>:	lduh  [ %o0 + 0x44 ], %o1
 0x10a5a0 <invent_insert_order+336>:	sth  %o1, [ %fp + -856 ]
 0x10a5a4 <invent_insert_order+340>:	ld  [ %fp + 0x48 ], %o0
 0x10a5a8 <invent_insert_order+344>:	lduh  [ %o0 + 0x274 ], %o1
 0x10a5ac <invent_insert_order+348>:	sth  %o1, [ %fp + -842 ]
 0x10a5b0 <invent_insert_order+352>:	ld  [ %fp + 0x48 ], %o0
 0x10a5b4 <invent_insert_order+356>:	lduh  [ %o0 + 0x276 ], %o1
 0x10a5b8 <invent_insert_order+360>:	sth  %o1, [ %fp + -844 ]
 0x10a5bc <invent_insert_order+364>:	ld  [ %fp + 0x48 ], %o0
 0x10a5c0 <invent_insert_order+368>:	ldd  [ %o0 + 0x280 ], %o2
 0x10a5c4 <invent_insert_order+372>:	std  %o2, [ %fp + -840 ]
 0x10a5c8 <invent_insert_order+376>:	ld  [ %fp + 0x48 ], %o0
 0x10a5cc <invent_insert_order+380>:	ldd  [ %o0 + 0x2a8 ], %o2
 0x10a5d0 <invent_insert_order+384>:	std  %o2, [ %fp + -416 ]
 0x10a5d4 <invent_insert_order+388>:	ld  [ %fp + 0x48 ], %o0
 0x10a5d8 <invent_insert_order+392>:	ldd  [ %o0 + 0x2b0 ], %o2
 0x10a5dc <invent_insert_order+396>:	std  %o2, [ %fp + -368 ]
 0x10a5e0 <invent_insert_order+400>:	ld  [ %fp + 0x48 ], %o0
 0x10a5e4 <invent_insert_order+404>:	lduh  [ %o0 + 0x288 ], %o1
 0x10a5e8 <invent_insert_order+408>:	sth  %o1, [ %fp + -272 ]
 
 I haven't had time to build a small example program which would show the bug.
 But if you'd like more information, just ask.
 
 --
 Laurent
 
 
 -------------------------------------------------
 This mail sent through IMP: laurent.penguinpowered.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]