2016-02-23 2 views
7

setlocale(LC_ALL, "uk-UA")不明な理由で私のハング/デッドロックが発生することがあります。呼び出しスタック:setlocaleがWindowsにスタックしました

[email protected]() Unknown 
[email protected]() Unknown 
[email protected]() Unknown 
[email protected]() Unknown 
[email protected]() Unknown 
[email protected]() Unknown 
ucrtbased.dll!__crt_findfile_traits::get_invalid_value(void) Unknown 
ucrtbased.dll!__acrt_lock_and_call<class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> >(enum __acrt_lock_id,class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> &&) Unknown 
ucrtbased.dll!__acrt_lock_and_call<class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> >(enum __acrt_lock_id,class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> &&) Unknown 
ucrtbased.dll!__acrt_lock_and_call<class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> >(enum __acrt_lock_id,class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> &&) Unknown 
ucrtbased.dll!__acrt_lock_and_call<class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> >(enum __acrt_lock_id,class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> &&) Unknown 
ucrtbased.dll!__acrt_lock_and_call<class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> >(enum __acrt_lock_id,class <lambda_a463b7b0560cfcaf9b17f27c6ef46564> &&) Unknown 
ucrtbased.dll!___acrt_can_use_vista_locale_apis() Unknown 
ucrtbased.dll!__expandlocale() Unknown 
ucrtbased.dll!__wsetlocale() Unknown 
ucrtbased.dll!__crt_call_and_cleanup<class <lambda_565169b3e3b494427ce1bebdd17b54ac>,class <lambda_f51fe5fd7c79a33db34fc9310f277369> >(class <lambda_565169b3e3b494427ce1bebdd17b54ac> &&,class <lambda_f51fe5fd7c79a33db34fc9310f277369> &&) Unknown 
ucrtbased.dll!__crt_seh_guarded_call<void>::operator()<class <lambda_0f92d0c5a8007722f95b3b6c71cd8e3e>,class <lambda_321f9d61c14d59ff00145e45db1313e0> &,class <lambda_3298c911d7b53f44106027a7fde9a80a> >(class <lambda_0f92d0c5a8007722f95b3b6c71cd8e3e> &&,class <lambda_321f9d61c14d59ff00145e45db1313e0> &,class <lambda_3298c911d7b53f44106027a7fde9a80a> &&) Unknown 
ucrtbased.dll!__acrt_lock_and_call<class <lambda_321f9d61c14d59ff00145e45db1313e0> >(enum __acrt_lock_id,class <lambda_321f9d61c14d59ff00145e45db1313e0> &&) Unknown 
ucrtbased.dll!__crt_call_and_cleanup<class <lambda_565169b3e3b494427ce1bebdd17b54ac>,class <lambda_f51fe5fd7c79a33db34fc9310f277369> >(class <lambda_565169b3e3b494427ce1bebdd17b54ac> &&,class <lambda_f51fe5fd7c79a33db34fc9310f277369> &&) Unknown 
ucrtbased.dll!__crt_seh_guarded_call<void>::operator()<class <lambda_507d9fd6b66e39451a8852ba73f804a7>,class <lambda_565169b3e3b494427ce1bebdd17b54ac> &,class <lambda_f51fe5fd7c79a33db34fc9310f277369> &>(class <lambda_507d9fd6b66e39451a8852ba73f804a7> &&,class <lambda_565169b3e3b494427ce1bebdd17b54ac> &,class <lambda_f51fe5fd7c79a33db34fc9310f277369> &) Unknown 
ucrtbased.dll!__crt_call_and_cleanup<class <lambda_565169b3e3b494427ce1bebdd17b54ac>,class <lambda_f51fe5fd7c79a33db34fc9310f277369> >(class <lambda_565169b3e3b494427ce1bebdd17b54ac> &&,class <lambda_f51fe5fd7c79a33db34fc9310f277369> &&) Unknown 
ucrtbased.dll!__wsetlocale() Unknown 
ucrtbased.dll!___acrt_update_multibyte_info() Unknown 
ucrtbased.dll!_setlocale() Unknown 

時には動作しますが、時にはそれが返されないことがあります。理由を特定できません。 Visual Studio 2015とWindows 7を使用しています。

+3

コールスタックの一番下の部分を残してしまったので、 'setlocale'をどこから呼び出すのか分かりません。ローダーロックのデッドロックが発生しているので、 'DllMain'から' setlocale'を呼び出していますか? – IInspectable

答えて

11

これはUniversal CRTのTH1ビルド(10.0.10240)のバグです。バグは、Windows 10 11月更新(TH2)ビルド(10.0.10586)で修正されました。

https://dev.windows.com/en-us/downloads/windows-10-sdkから更新されたWindows 10 SDKをダウンロードしてインストールすることができます。このSDKには、スタティックユニバーサルCRTライブラリ、デバッグユニバーサルCRT DLL(ucrtbased.dllなど)、およびアプリのローカル再配布用の小売ユニバーサルCRT DLLが含まれています。

https://www.microsoft.com/en-us/download/details.aspx?id=50410から更新されたユニバーサルCRT再配布可能ファイルをダウンロードできます。これらには、システムディレクトリの中央配置用に更新された小売ユニバーサルCRTが含まれています。

+0

James:あなたはすぐに覗いてみることができますか: http://stackoverflow.com/questions/37196005/cl-exe-hangs-indefinitely-while-being-invoked-via-msbuild あなたの提案にしたがって、私はKB3118401をインストールしました。 Windows 7 SP1に適用されます。私の混乱は、 "%programfiles%\ Windows Kits"の下に "10"フォルダを作成したことです。 **この**フォルダにインストールされているucrtとアプリケーションをリンクする必要がありますか?これはちょっと混乱します:-( – ForeverLearning

+1

Visual Studio 2015からこのUCRTを使用する方法VSアップデート2とWin 10 SDK TH2をインストールした後でも、UCRT 10.0.10240でリンクしています(静的CRTモード/ – rustyx

+0

私はWindows 10 LTSB verion 1507(RTM)を持っていますが、このバグはUniversal CRTでどのように解決できますか?LTSBバージョン1607にアップデートする唯一のオプションはありますか? – user2177774

関連する問題