[omniORB] omniidl crash on NT

Christian Eibl eici@ovsag.de
Wed, 1 Dec 1999 16:56:05 +0100



i'm using MSVC++ 6.0 (apart from that, i'm healthy ;-)
everything else in OmniORB seems to work fine, so i suppose it's not
a compiler problem.
below the outputs from the idl(pre)compiler and an
excerpt of the code where it crashes (seems that things mess up where
you are converting to the FILE struct...)

###########

E:\ORB\omniORB_280\src\lib\omniORBpy\examples>omni-cpp -v echo_example.idl
GNU CPP version omni-cpp-1.0
#include "..." search starts here:
End of search list.
# 1 "echo_example.idl"

module Example {
  interface Echo {
    string echoString(in string mesg);
  };
};

###########

E:\ORB\omniORB_280\src\lib\omniORBpy\examples>omniidl2 -v echo_example.idl
omniidl2: preprocessing echo_example.idl
echo_example.idl
omniidl2: parsing echo_example.idl
omniidl2: BE processing on echo_example.idl

###########

E:\ORB\omniORB_280\src\lib\omniORBpy\examples>cl
Optimierender Microsoft (R) 32-Bit C/C++-Compiler, Version 12.00.8168, fuer x86
Copyright (C) Microsoft Corp 1984-1998. Alle Rechte vorbehalten.

##################
# CODE
##################

extern "C" {
  static PyObject* IdlPyCompile(PyObject* self, PyObject* args)
  {
    PyObject* pyfile;

    if (!PyArg_ParseTuple(args, "O!", &PyFile_Type, &pyfile))
      return 0;

    FILE*       file   = PyFile_AsFile(pyfile);
    PyObject*   pyname = PyFile_Name(pyfile);
    const char* name   = PyString_AsString(pyname);

-	file	0x78037c88
+	_ptr	0x00000000 ""
	_cnt	0
+	_base	0x00000000 ""
	_flag	1
	_file	3
	_charbuf	0
	_bufsiz	0
+	_tmpfname	0x00000000 ""

+	name	0x008591e4 "omni-cpp -lang-c++ -undef -D__OMNIIDL__=0x2301  echo_example.idl"

Loc>>    _CORBA_Boolean success = AST::process(file, name);

    PyObject* result;

    if (success) {
      PythonVisitor v;
      AST::tree()->accept(v);
      result = v.result();
    }
    else {
      Py_INCREF(Py_None);
      result = Py_None;
    }
    AST::tree()->clear();

    return result;
  }





> -----Ursprungliche Nachricht-----
> Von:	Duncan Grisby [SMTP:dgrisby@uk.research.att.com]
> Gesendet am:	Mittwoch, 1. Dezember 1999 11:15
> An:	eici@ovsag.de
> Cc:	'omniorb-list@uk.research.att.com'
> Betreff:	Re: [omniORB] omniidl crash on NT 
> 
> On Tuesday 30 November, Christian Eibl wrote:
> 
> [...]
> 
> > omniidl: Running front end
> > omni-cpp: stdout: Bad file descriptor
> 
> It looks like the C pre-processor failed for some reason. Can you try
> running omni-cpp on the IDL file to see what happens?
> 
> What compiler version did you use?  I've only tried it with VC++ 5, so
> maybe there are problems with other compilers.
> 
> Cheers,
> 
> Duncan.
> 
> -- 
>  -- Duncan Grisby  \  Research Engineer  --
>   -- AT&T Laboratories Cambridge          --
>    -- http://www.uk.research.att.com/~dpg1 --
> 
>