[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

app throws "illegal instruction"

From: Frank Rehberger
Subject: app throws "illegal instruction"
Date: 14 May 2002 21:08:54 +0200


I am using Redhat-7.1, compilation is done against glib-2.0 and
ORbit-2.0. I amusing the pre-compiled version of gnu-prolog-1.2.8.

For Gnome-MrProject I write the project-scheduler using Gnu-Prolog.
The instance of Gnu-Prolog shall be accessible using CORBA interfaces,
running as Servant.

First I wrote a small hello world CORBA servant working fine. One can
attach to this object, applying a remote function that prints "hello
world" to terminal. The next step was to delegate terminal printing to
gnu-prolog linking gnu-prolog against this CORBA interface. The specific
prolog rule is only:
I use gplc to link gnu-prolog libraries against CORBA interfaces. 

Everytime I execute this application  "Illegal instruction" signal is
thrown. Stepping with debugger through code I reach line 59 where the
error occures. The lines before activate sockets and might set some
signal handlers. 

I have got no idea why this error turns up.  Currently _no_ Gnu-Prolog
function is called. I assume gprolog has been compiled against glib-1.x.
Might this error be caused by using glib-1 and glib-2 object files in
same application?

Breakpoint 2, impl_MrProject_Sked__create (poa=0x8295648, ev=0x8290d30)
at mrp-sked-skelimpl.c:59
(gdb) step

Program received signal SIGILL, Illegal instruction.
0xbffff49a in ?? ()

-------<Suggestions or hints are welcome.>--------

   43 static MrProject_Sked
   44 impl_MrProject_Sked__create(PortableServer_POA poa,
CORBA_Environment * ev)
   45 {
   46    MrProject_Sked retval;
   47    impl_POA_MrProject_Sked *newservant;
   48    PortableServer_ObjectId *objid;
   50    newservant = g_new0(impl_POA_MrProject_Sked, 1);
   51    newservant->servant.vepv = &impl_MrProject_Sked_vepv;
   52    newservant->poa = poa;
   53    POA_MrProject_Sked__init((PortableServer_Servant) newservant,
   54    objid = PortableServer_POA_activate_object(poa, newservant,
   55    CORBA_free(objid);
   56    retval = PortableServer_POA_servant_to_reference(poa,
newservant, ev);
   58    return retval;
   59 }

Thanks, Frank

 Frank.Rehberger at acm.org
 The Twelve Networking Truths 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]