This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: C++/518
- To: nobody at gcc dot gnu dot org
- Subject: Re: C++/518
- From: Laurent Martelli <martelli at iie dot cnam dot fr>
- Date: 5 Oct 2000 09:36:00 -0000
- Cc: gcc-prs at gcc dot gnu dot org,
- Reply-To: Laurent Martelli <martelli at iie dot cnam dot fr>
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