Automated Dump Collection Using Procdump

I thought I’d share a script I’ve been using on some recent cases to generate memory dump files on multiple machines for intermittent crashes. The scenario this script targets is that you have a process, say Outlook.exe, which is crashing for a number of users, but you haven’t yet narrowed down a repro scenario. You’d…

0

Exchange MAPI and the Form Manager

Had a customer contact me recently asking why MAPIOpenFormMgr doesn’t work with the Exchange MAPI download. Actually, it wasn’t working in Exchange 2003 either. I’m not sure exactly when it last worked in Exchange’s implementation of MAPI. We might have to go all the way back to the Exchange Client to find a version of…


UST and Long File Names

I think this will be the last article to come from James’ post on debugging MAPI (previous posts here, here, and here). This last one bit me when I was trying to gather a UST trace from a customer. Here’s the deal: The image file name associated with an executable can be different depending on…


UST and 64 Bit Machines

Digging more into lessons learned from James’ blog on analyzing memory usage (my first two articles are here and here). Today we take a side trip into 64 vs. 32 bit. While we were working on this issue, I decided to get some UST enabled dumps of MFCMAPI so I could compare a known scenario…


Recognizing MAPI Allocated Memory

Continuing our look at lessons learned from James’ article on the MAPI memory leak, we look at the memory that James recognized as MAPI properties. How did he figure this out? As a refresher, here’s what the memory looked like: 0:000> !heap -p -a 0372e598 address 0372e598 found in _HEAP @ 36f0000 HEAP_ENTRY Size Prev…


MAPI and User Mode Stack Tracing

James wrote up a good article on analyzing a MAPI memory leak using user mode stack tracing. I wanted to highlight some points he made. Let’s look at some !heap output from one of my recent cases (using only public symbols here): 0:000> !heap -p -a 03fbec28 address 03fbec28 found in _HEAP @ 3f90000 HEAP_ENTRY…


Kernel Debugging MFCMAPI

I noticed recently that one on of my machines, whenever I ran MFCMAPI and displayed one of my CEditor dialogs, the whole machine froze for 1 to several minutes. I figured this would be a fun opportunity to practice my kernel debugging skills and share what I learned. A bit about my setup: I keep…


Random HRESULT From Outlook Object Model

I don’t normally write much about the Outlook Object Model, but this was just too interesting to pass up. Suppose we run the following code in Outlook 2003 VBA: Sub TestHRESULT() Dim ons As Outlook.NameSpace ‘ If running this code in Outlook 2007 VBA, use Outlook.Folder here Dim f As Outlook.MAPIFolder Dim imi As Outlook.MailItem…