CGIcc under Apache and Windows 2000

Jean ANDRE <[email protected]> Sat, 29 Jan 2005 01:19:21 +0500
Newsgroups gmane.comp.gcc.cgicc.general
Message-ID <[email protected]>
Hello,

I actually got an error in using CGIcc under Apache server 2.0 and 
Windows 2000.

I got a crash  on  the follwing instruction "cout << HTTPHTMLHeader()" 
what ever the method POST or GET. Under the debugger I got the error in 
this part of code, so here is the caller stack (in reverse order). The 
std::ostream& out parameter seems to be invalid. All  members contains 
0x00000 or have a bad ptr. I've joined a print screen. Does I missed 
something ?. I've compiled my CGIn in single thread program.

void _Mtxlock(_Rmtx *_Mtx)
    {    /* lock mutex */
    EnterCriticalSection(_Mtx);
    }

void _Mutex::_Lock()
    {    // lock mutex
    _Mtxlock((_Rmtx*)_Mtx);
    }

    void _Lock()
        {    // set the thread lock
        _Mylock._Lock();
        }

    class _Sentry_base
        {    // stores thread lock and reference to output stream
    public:
        _Sentry_base(_Myt& _Ostr)
            : _Myostr(_Ostr)
            {    // lock the stream buffer, if there
            if (_Myostr.rdbuf() != 0)
                _Myostr.rdbuf()->_Lock();
            }

    class sentry
        : public _Sentry_base
        {    // stores thread lock and state of stream
    public:
        explicit sentry(_Myt& _Ostr)
            : _Sentry_base(_Ostr)
            {    // construct locking and testing stream
            if (_Ostr.good() && _Ostr.tie() != 0)


template<class _Traits> inline
    basic_ostream<char, _Traits>& __cdecl operator<<(
        basic_ostream<char, _Traits>& _Ostr,
        const char *_Val)
    {    // insert NTBS into char stream
    typedef char _Elem;
    typedef basic_ostream<_Elem, _Traits> _Myos;
    ios_base::iostate _State = ios_base::goodbit;
    streamsize _Count = (streamsize)_Traits::length(_Val);    // may 
overflow
    streamsize _Pad = _Ostr.width() <= 0 || _Ostr.width() <= _Count
        ? 0 : _Ostr.width() - _Count;
    const typename _Myos::sentry _Ok(_Ostr);

void
cgicc::HTTPContentHeader::render(std::ostream& out)    const
{
  out << "Content-Type: " << getData() << std::endl;
 
  std::vector<HTTPCookie>::const_iterator iter;

/ ============================================================
// Class MStreamable
// ============================================================
std::ostream&
cgicc::operator<<(std::ostream& out,
          const MStreamable& obj)
{
  obj.render(out);
  return out;
}

_______________________________________________
help-cgicc mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-cgicc
CGIcc-out.jpg (image/jpeg, 146 KB) - not displayed