Author: OlegasSubject: ProcessMonitor crashes when using backing files
Posted: 05 October 2016 at 8:44pm
After some troubleshooting, I’ve managed to narrow down the steps required to recreate Process Monitor crash. Since the problem is not reproducible on every machine, that pointed me towards application settings. So, the high-level steps are:
1. Deploy clean Windows 7 RTM x64 virtual machine (I used 4 logical CPUs and 2 GB of RAM)
2. Deploy Process Monitor version 3.31
3. Start Process Monitor
4. Accept EULA
5. Stop capturing events
6. Go to File | Import Configuration. Select the provided PMC file, click Open.
7. Exit from Process Monitor. The imported settings will be persisted to HKEY_CURRENT_USER\Software\Sysinternals\Process Monitor\ registry key.
8. I’m fairly certain that DestructiveFilter = 1 (aka Filter | Drop Filtered Events) setting is one of the pre-requisites to recreate the problem.
9. Create C:\Temp folder, which will house backing files per the provided configuration file.
10. Start Process Monitor
11. Stop capturing events
12. Click on the Filter | Reset, then Apply and Ok
13. Click on the Clear to purge old captured contents
14. Start capturing events (say yes to overwrite existing backing files)
15. Open two Windows Explorer instances:
a. In one, browse to C:\Temp so you can watch file size of the backing files.
b. In another, browse to a folder of your choice (C:\Windows\System32, etc). Press and hold F5 button in this Windows Explorer instance to generate system activity to be captured.
Based on my testing, steps 8 and 12 are crucial to recreating this problem (must drop filtered events and must reset filter before performing new capture).
I’ve encountered two crash signatures in my testing.
• movzx edx,word ptr [r10+r9] within Procmon64+0x7f371 (occurs most frequently)
• movzx ecx,word ptr [r10+rdx] within Procmon64+0x8047a (rare occurrence)
I've sent the dumps and configuration file to Mark.
Thank you