[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: TortoiseSVN crashes

From: Jan Rysavy <jan.rysavy_at_altap.cz>
Date: 2007-06-28 21:23:05 CEST

On 18.4.2007 21:13, Stefan Küng wrote:
> Jan Rysavy wrote:
>> Hi,
>>
>> I would like to ask you: does your shell extension create a new
>> thread when we call IShellIconOverlayIdentifier::IsMemberOf()?
>> (Our threads are guarded by bug reporting system but we didn't
>> catch this exception.)
>
> No, it doesn't create separate threads at all. And it's apartment
> threaded, which means it must not be called from different threads
> either. If you use it from different threads, you must load a separate
> instance of it for each thread.
> Stefan

I want only note one thing we found yesterday. It is clear now why our
bug reporting system (try/catch blocks and SetUnhandledExceptionFilter)
doesn't catch "exceptions" from TSVN shell extension.

The reason is Visual C++ 2005 CRT library used in TSVN project. There is
major change to the previous version of CRT in behaviour during security
checks. CRT ignores user-defined unhandled exception filter and calls
directly Dr.Watson, the standard Windows bug reporting mechanism.

For more information see
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101337

And the only known "solution" (rather dirty hack that we are using now):
http://www.debuginfo.com/articles/debugfilters.html
http://blog.kalmbachnet.de/?postid=75

Best regards

Jan Rysavy
ALTAP
Czech Republic
http://www.altap.cz/
mailto:jan.rysavy@altap.cz
Tel.: +420 487 725 132

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Thu Jun 28 21:23:22 2007

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.