Sign in to follow this  
Followers 0
Decker

ApexDC 0.4.0 randomly crashes #2

8 posts in this topic

Hi, all! Some time again i used the ApexDC 0.4.0, dowloaded from this site. And the client randomly crashes without any readable error messages, exceptioninfo.txt not generated too (now i understand, that this because i forgot add ApexDC.pdb file in client directory). After that i compile the Debug Version from the sources from this site and see the next debug messages on crash (second after first):

1. post-4008-1168016210_thumbpng

2. post-4008-1168016218_thumbpng

And after i add ApexDC.pdb file (from a my compilation debug version) in ApexDC directory i see the next exceptioninfo.txt:

Code: 80000003 (Breakpoint)

Version: 0.4.0 (2007-01-04)

Major: 5

Minor: 1

Build: 2600

SP: 2

Type: 1

Time: 2007-01-05 19:43:48

TTH: YJXL2N67TA62JXLVBAICCTTY2JA2QHQMOMXKEGA

d:\temp\apexdc___0.4.0_source\client\queuemanager.cpp(1026): QueueManager::getDownload

d:\temp\apexdc___0.4.0_source\client\downloadmanager.cpp(319): DownloadManager::checkDownloads

d:\temp\apexdc___0.4.0_source\client\downloadmanager.cpp(287): DownloadManager::addConnection

d:\temp\apexdc___0.4.0_source\client\connectionmanager.cpp(556): ConnectionManager::addDownloadConnection

d:\temp\apexdc___0.4.0_source\client\connectionmanager.cpp(598): ConnectionManager::on

d:\temp\apexdc___0.4.0_source\client\speaker.h(68): Speaker<UserConnectionListener>::fire<UserConnectionListener::X<5>=0x00000000,UserConnection *=0x0649F600,stlp_std::basic_string<char=0x0649F840,stlp_std::char_traits<char>=0x0649F970,stlp_std::allocator<char> > >

d:\temp\apexdc___0.4.0_source\client\userconnection.cpp(165): UserConnection::on

d:\temp\apexdc___0.4.0_source\client\speaker.h(51): Speaker<BufferedSocketListener>::fire<BufferedSocketListener::X<2>=0xAA197B00,stlp_std::basic_string<char=0x0649FA64,stlp_std::char_traits<char>=0xAA197EB6,stlp_std::allocator<char> > >

d:\temp\apexdc___0.4.0_source\client\bufferedsocket.cpp(242): BufferedSocket::threadRead

d:\temp\apexdc___0.4.0_source\client\bufferedsocket.cpp(512): BufferedSocket::checkSocket

d:\temp\apexdc___0.4.0_source\client\bufferedsocket.cpp(524): BufferedSocket::run

d:\temp\apexdc___0.4.0_source\client\thread.h(132): Thread::starter

f:\rtm\vctools\crt_bld\self_x86\crt\src\threadex.c(348): _callthreadstartex

f:\rtm\vctools\crt_bld\self_x86\crt\src\threadex.c(331): _threadstartex

kernel32!0x7C80B50B: GetModuleFileNameA

Could you tell me how to fix this problem?

p.s. Sorry for my bad english, but i think you should understand this post.

Share this post


Link to post
Share on other sites

Could you use the ordinary release (not debug) version with the pdb file and give any information.

Apex is not designed to be run in debug mode

Share this post


Link to post
Share on other sites

Could you use the ordinary release (not debug) version with the pdb file and give any information.

I follow your advice and run the ordinary release ... application was crashed since ~10 hours from run with message:

post-4008-1168109435_thumb.png

There's no exception.txt created. How can i catch this exception and understood where is the problem?

p.s. My OS - WinXP SP2 (Russian).

Share this post


Link to post
Share on other sites

Argh, strange, seems like one more reason to run Winboze in its default language, English. If you can temporarily uninstall the RU language pack in order to try to capture a report, we will appreciate it.

@BM - Once I accidentally ran Apex 0.4.0 in Debug mode, if this means open in Taskman>>RMB>>Debug and it was fine. Do not know why I have Debug in grey, so I have to do the a. m. actions in Process Explorer. :crying:

Share this post


Link to post
Share on other sites

Argh, strange, seems like one more reason to run Winboze in its default language, English. If you can temporarily uninstall the RU language pack in order to try to capture a report, we will appreciate it.

@BM - Once I accidentally ran Apex 0.4.0 in Debug mode, if this means open in Taskman>>RMB>>Debug and it was fine. Do not know why I have Debug in grey, so I have to do the a. m. actions in Process Explorer. :crying:

Debug mode means compiling a debug build...

Share this post


Link to post
Share on other sites

Hi, again. It seems to me i found this strange bug. According to SMT advice i run ApexDC from MSVC debugger, and client was crashed with the following message:

post-4008-1168212553_thumbpng

When i open MSVC i see the following (module ImageDataObject.cpp):

post-4008-1168212558_thumb.png

lpLockBytes = 0 ... and when we call Release() method, client crashed. I don't understand at all what is the lpLockBytes object, but maybe we should insert into the code of ImageDataObject.cpp some conditions, like this:

if (lpLockBytes != NULL) lpLockBytes->Release();
What are you think about? And why lpLockBytes = 0 at this moment, may be it's already released at this moment? p.s. I found the MSDN code example where interface pointers released with check conditions ... maybe this help somebody. p.p.s. In my build of ApexDC++ i changed it to following:
if (pOleClientSite) {pOleClientSite->Release(); pOleClientSite = NULL; } // [+] Decker

	if (lpLockBytes) {lpLockBytes->Release(); lpLockBytes = NULL; } // [+] Decker

	if (pStorage) {pStorage->Release(); pStorage = NULL; } // [+] Decker

	if (lpDataObject) {lpDataObject->Release(); lpDataObject = NULL; } // [+] Decker

	pRichEditOle->Release();

Share this post


Link to post
Share on other sites

it's not the good solution. Look at the code above

sc = ::StgCreateDocfileOnILockBytes(lpLockBytes,

		STGM_SHARE_EXCLUSIVE|STGM_CREATE|STGM_READWRITE, 0, &pStorage);


	if (sc != S_OK)	{ lpLockBytes = NULL; }

now you should check what value is stored in "sc" when it crashes.

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0