windows - Could a shell extension be causing my program to crash? -
my company builds mfc application runs on windows xp. 1 of our customers has reported crash in application occurs when opens common file dialog allow user save log file.
we haven't observed crash on of our integration systems. customer provided crash dump shows program trying read inaccessible memory @ address 160b2d48. address appears code section of address space, there dlls loaded above , below (15dc0000-16085000 , 160c0000-1611b000), nothing loaded @ address. stack of crashing thread follows:
> shell32.dll!cfsfolder::getdetailsex() + 0x533c8 bytes shell32.dll!cinfotip::_getinfotipfromitem() + 0x169 bytes shell32.dll!cinfotip::getinfotip() + 0x1c bytes shell32.dll!cfolderinfotip::getinfotip() + 0x95 bytes shell32.dll!cstatusbarandinfotiptask::runinitrt() + 0xf5 bytes shell32.dll!crunnabletask::run() + 0x4c bytes browseui.dll!cshelltaskscheduler_threadproc() + 0x82 bytes shlwapi.dll!executeworkitem() + 0x1d bytes ntdll.dll!_rtlpworkercallout@16() + 0x65 bytes ntdll.dll!_rtlpexecuteworkerrequest@12() + 0x1a bytes ntdll.dll!_rtlpapccallout@16() + 0x11 bytes ntdll.dll!_rtlpworkerthread@4() + 0x1794c bytes kernel32.dll!_basethreadstart@8() + 0x37 bytes
there no code our application on stack, , paired above evidence, suspect crash happens because shell extension (probably info tip handler, given stack trace) called when our application shows save dialog, isn't loaded in process reason.
- is hypothesis reasonable?
- if so, how should go tracking down responsible shell extension?
yes, shell extensions , other system hook dlls run within process space. i've found happen number of extension dlls have caused our application crash, when showing file open dialog. if have crash dump in windbg
take @ dlls loaded. ignore microsoft ones, , whatever's left contain culprit. alternatively ask customer run autoruns, save .arn file , send you. appinit , explorer tabs check.
Comments
Post a Comment