DynamoRIO / drmemory

Memory Debugger for Windows, Linux, Mac, and Android
Other
2.44k stars 262 forks source link

ASSERT (multi-threaded app under drmem) loader.c:683 cur_fls == dcontext->priv_fls_data #1086

Open derekbruening opened 9 years ago

derekbruening commented 9 years ago

From bruen...@google.com on November 19, 2012 19:13:45

0:001> dv dcontext = 0x1e2b7440 cur_rpc = 0x00000000 cur_nls_cache = 0x00000000 cur_fls = 0x010e0e08 cur_peb = 0x1e111028 0:001> ?? dcontext->priv_fls_data void * 0x00000000

0:001> kn

ChildEBP RetAddr

00 0219e5e0 65a5843e ntdll!NtRaiseHardError+0x12 01 0219e630 65a2200d dynamorio!nt_messagebox+0xfe [d:\derek\dr\git\src\core\win32\ntdll.c @ 3403] 02 0219e658 658957c4 dynamorio!debugbox+0x4d [d:\derek\dr\git\src\core\win32\os.c @ 3734] 03 0219ee74 65895cf3 dynamorio!notify+0x1e4 [d:\derek\dr\git\src\core\utils.c @ 1913] 04 0219ef0c 65890ad4 dynamorio!report_dynamorio_problem+0x4d3 [d:\derek\dr\git\src\core\utils.c @ 2172] 05 0219f044 65a84559 dynamorio!internal_error+0x124 [d:\derek\dr\git\src\core\utils.c @ 186] 06 0219f08c 65a85288 dynamorio!is_using_app_peb+0x199 [d:\derek\dr\git\src\core\win32\loader.c @ 683] 07 0219f09c 65a880b0 dynamorio!os_using_app_state+0x58 [d:\derek\dr\git\src\core\win32\loader.c @ 795] 08 0219f0b4 65a8817f dynamorio!redirect_heap_call+0x30 [d:\derek\dr\git\src\core\win32\loader.c @ 1806] 09 0219f0c8 76eaade8 dynamorio!redirect_RtlAllocateHeap+0xf [d:\derek\dr\git\src\core\win32\loader.c @ 1869] 0a 0219f108 76eaae43 msvcrt!_calloc_impl+0x136 0b 0219f124 76eaa4d9 msvcrt!_calloc_crt+0x16 0c 0219f13c 76eaa48c msvcrt!_core_crt_dll_init+0x22b 0d 0219f148 65a8667f msvcrt!_CRTDLL_INIT+0x1b 0e 0219f16c 659666e0 dynamorio!privload_call_entry+0x14f [d:\derek\dr\git\src\core\win32\loader.c @ 1264] 0f 0219f188 657e2c81 dynamorio!loader_thread_init+0xe0 [d:\derek\dr\git\src\core\loader_shared.c @ 197] 10 0219f1f4 65a49e85 dynamorio!dynamo_thread_init+0x751 [d:\derek\dr\git\src\core\dynamo.c @ 2145] 11 0219f424 65a49a5e dynamorio!intercept_new_thread+0x135 [d:\derek\dr\git\src\core\win32\callback.c @ 2823] 12 0219f440 1e1e18a6 dynamorio!intercept_ldr_init+0x7e [d:\derek\dr\git\src\core\win32\callback.c @ 3073]

the assert seems too strong: the priv_ field was a snapshot as of the last swap, but since then the real value could have changed.

Original issue: http://code.google.com/p/drmemory/issues/detail?id=1086

derekbruening commented 9 years ago

From bruen...@google.com on November 19, 2012 16:25:44

meant to file this in DR's tracker but we'll leave it here. it does break drmem's test suite after all when using latest DR.