Hi,
I'm working with the qpid cpp messaging dotnet client. A quick review: user
programs are in a .NET managed language, say C#. They refer to an Interop DLL
that connects them to the unmanaged qpid messaging layer built by qpid/cpp.
Running under debug things are fine. However, when I switch to Release or
RelWithDebInfo, the qpid messaging DLL functions crash in the function prologue
while it is trying to install it's exception handler. I've reproduced that
failing call chain below. It acts like the FS:[0] chain is read-only.
>From reading John Robbins I suspect that default exception handling being
>synchronous in Debug and asynchronous in Release may be an issue but I can't
>pinpoint it. All the qpid messaging dlls are linked the same (/EHsc,
>Multi-threaded DLL) for Debug and Release. In Debug mode one can step through
>writing to FS:[0] just fine.
I'd appreciate some discussion.
Regards,
Chuck
C# code
=======
connection = new Connection(broker);
C++ Binding DLL
===============
Connection::Connection(System::String ^ url) :
connectionp(new
::qpid::messaging::Connection(QpidMarshal::ToNative(url)))
{
}
Qpid Messaging DLL
==================
qpid::messaging::Connection::Connection:
6264E580 push 0FFFFFFFFh
6264E582 push 626841EBh
6264E587 mov eax,dword ptr fs:[00000000h]
6264E58D push eax
6264E58E push ecx
6264E58F push esi
6264E590 mov eax,dword ptr [___security_cookie (626A92D0h)]
6264E595 xor eax,esp
6264E597 push eax
6264E598 lea eax,[esp+0Ch]
6264E59C mov dword ptr fs:[00000000h],eax <--- fails here
6264E5A2 mov esi,ecx
6264E5A4 push 1F8h
6264E5A9 mov dword ptr [esi],0
6264E5AF call operator new (62682202h)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]