cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re[4]: vc++ still having problems

From: Igor Polyakov <ipolyakov_at_issart.com>
Date: Sat, 3 Sep 2005 06:06:09 +0700

Hello, JB,

Friday, September 2, 2005, 10:03:37 PM, you wrote:

> I have, but it is difficult because of the threading. It is dying when one
> thread gets destroyed and I am still tracing through the other thread. It
> gets to WaitForSingleObject and then chokes when the other thread is in the
> process of being destroyed. The call stack is the same as in my one of my
> previous messages but I posted it again in replyto Seethaprasad.

I have repeated your problem ! I have built libcurl in the release
mode (CFG=release-ssl) resulting in libcurl.lib (NOTE: not
libcurld.lib). This configuration of library is linked with
Multi-Threaded DLL (not debug) version of RTL. But I have linked my
Debug-configuration program with Multi-Threaded Debug DLL RTL with
libcurl.lib.

This produces the same call stack on failure as you have shown:

        ntdll.dll!7c901230()
        ntdll.dll!7c96c943()
        ntdll.dll!7c96cd80()
        ntdll.dll!7c960af8()
        kernel32.dll!7c85e7af()
> msvcr71d.dll!_CrtIsValidHeapPointer(const void * pUserData=0x009c8c68) Line 1807 C
        msvcr71d.dll!_free_dbg_lk(void * pUserData=0x009c8c68, int nBlockUse=1) Line 1132 + 0x9 C
        msvcr71d.dll!_free_dbg(void * pUserData=0x009c8c68, int nBlockUse=1) Line 1070 + 0xd C
        msvcr71d.dll!free(void * pUserData=0x009c8c68) Line 1025 + 0xb C
        TestCURL.exe!_destroy_thread_sync_data() + 0x14 C
        TestCURL.exe!_release_thread_sync() + 0x11a C
        msvcr71d.dll!_threadstartex(void * ptd=0x003ef470) Line 241 + 0xd C
        kernel32.dll!7c80b50b()
        kernel32.dll!7c8399f3()

So I _really_ believe that problem is in version of RTL. Please, check
it !.

First, check that you link your main project with debug version of
libcurl: Additional Dependencies option should include libcurld.lib
(see the letter d in the name of the library).

Second, check that library path gives to the linker libcurls library
named libcurld.lib, which was compiled with /MDd (Multi-Threaded Debug
DLL).

Third, check your project setting "Runtime Library". It should be
Multi-Threaded Debug DLL.

Perhaps, the problem is in other libraries you link. Try to check
them.

And back again if I link project compiled with /MD with libcurld.lib
compiled with /MDd I get ucaught excpetion when main thread sits in
WaitForSingleObject as you said. So I _really_ think problem is mixing
different RTLs.

> See line 119 of htmltitle.cc in docs\examples.
But there was another line 111, where the write function is installed.
Write data does not work without write function except if it is FILE
*.

-- 
Best regards,
 Igor Polyakov                            mailto:ipolyakov_at_issart.com
Received on 2005-09-03