Browse by Tags

All Tags » devmsgteam » debugging   (RSS)
Showing page 1 of 2 (14 total posts)
  • 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 how the process is launched. And Image File Execution Options (IFEO) works on the image file name, not the executable name. To illustrate this, we can rename mfcmapi.exe (my favorite executable, natch) to
    Posted to SGriffin's MAPI Internals (Weblog) by Stephen Griffin on March 20, 2009
    Filed under: MFCMAPI, DevMsgTeam, Debugging
  • 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 to the customer’s unknown scenario (a great diagnostic technique). However, no matter what settings I specified in gflags, when I attached the debugger, MFCMAPI didn’t have UST enabled! Let’s look at how gflags
    Posted to SGriffin's MAPI Internals (Weblog) by Stephen Griffin on March 17, 2009
    Filed under: MFCMAPI, DevMsgTeam, Debugging
  • 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 Flags UserPtr UserSize - state 0372e598 0022 0000 [07] 0372e5a0 000f8 - (busy) ? 3rdpartydll+1 Trace: 7dfe 0:000> dc 0372e598 lf8/4+2+4 0372e598 000d0022 001807d6 10000001 03707d50
    Posted to SGriffin's MAPI Internals (Weblog) by Stephen Griffin on March 16, 2009
    Filed under: MAPI, DevMsgTeam, Debugging
  • 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 Size Prev Flags UserPtr UserSize - state 03fbec20 0021 0000 [07] 03fbec28 000f0 - (busy) ? EMSMDB32!MSProviderInit+1d27a Trace: 1922 7c8531e4 ntdll!RtlAllocateHeapSlowly+0x00000041 7c83d97a
    Posted to SGriffin's MAPI Internals (Weblog) by Stephen Griffin on March 13, 2009
    Filed under: MAPI, DevMsgTeam, Debugging
  • 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 two physical machines in my office. On the larger machine, I run Hyper-V Server 2008 . This headless box sits in the corner and hosts all my VMs, including the VM where I run Outlook and other day-to-day
    Posted to SGriffin's MAPI Internals (Weblog) by Stephen Griffin on March 6, 2009
    Filed under: Gotchas, MFCMAPI, DevMsgTeam, Debugging
  • Howto: Verifying Symbols before taking a Dump using symchk

    Prior to taking a dump on a program, you should be sure that there are matching symbols for the application the dump is being taken on. Large dumps can take many hours to upload to a person for debugging. You can validate symbols against the executable before a dump is taken in order to prevent the wrong symbols or a dump with no matching symbols from being sent. Symchk can be used to verify that the symbols (.pdb) for the program can be found in the path designated after the “/s” parameter. It will
    Posted to Dan's WebDAV 101 (Weblog) by danba on September 4, 2008
    Filed under: HOWTO, debugging, symbols, DevMsgTeam, verify symbols, checking symbols, dumps, webdav101blog
  • About: Dumps

    Full Dumps: A full dump pretty much gets everything in memory for the application at the time the dump is taken. Because of this, a process taking one gig of memory will likely result in a one gig dump file. · A full dump will have this information: Heap memory - objects, variables created by free or malloc (in C++). · Call stacks of all threads - all function calls being processed with their variables on the stack. · Thread and environment blocks - This shows what the current thread is and its state.
    Posted to Dan's WebDAV 101 (Weblog) by danba on September 4, 2008
    Filed under: crash, hang, debugging, DevMsgTeam, minidump, webdav101blog
  • Howto: Generate a Mini-Dump with Task Manager in Vista

    With Vista, you can create a mini-dump by right clicking on the process in Task Manager. However, user-mode process dump information is not available by using this feature. This feature is not available under Windows 2003 or Windows XP.
    Posted to Dan's WebDAV 101 (Weblog) by danba on September 4, 2008
    Filed under: HOWTO, debugging, vista, DevMsgTeam, crash dump, dump, minidump, webdav101blog
  • Howto: Take a dump in Visual Studio

    When an application crashes, the user may only have Visual Studio on the box. When the crash occurs, the developer may be prompted to see if they wish to debug the appliction. If they can choose Visual Studio, then they can save the dump to a file which can be looked at with windbg later. 1) On the Debug menu, click Save Dump As. 2) In the Save Dump As dialog box, select Minidump or Minidump with Heap from the Save as type list box. Note: You really should go for the Minidump with heap at least.
    Posted to Dan's WebDAV 101 (Weblog) by danba on September 4, 2008
    Filed under: HOWTO, debugging, DevMsgTeam, dump, crashdump, minidump, dumps, webdav101blog
  • Howto: Generating a Hang Dump with adplus

    Adplus from the Debugging Tools can be used to get Hang Dumps. Normally, you want to take at least 2 dumps to so the person debugging can get an idea of where the hang is. Installing Adplus and the Debugging SDK: 1) Go to http://www.microsoft.com/whdc/devtools/debugging/default.mspx and download the debugging tools to match the version of Windows of the machine where the program is running and the processor type (32bit or 64bit) of the application for which the dump is going to be taken. 2) Install
    Posted to Dan's WebDAV 101 (Weblog) by danba on September 4, 2008
    Filed under: HOWTO, hang, debugging, DevMsgTeam, dump, hangdump, adplus, dumps, webdav101blog
1 2 Next >

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker