foo_uie_explorer - like windows explorer
Reply #375 – 2010-02-22 11:07:33
I have received some minidumps from Peter, but when I feed it to Visual Studio I can only see some assembly codes. But I don't know assembly at all. Aha, OK. Make sure you have the "Release" configuration for the project set as follows: C/C++/General: "Debug Information Format" = "Program Database /Zi" Linker/Debugging: "Generate Debug Info" = "Yes (/DEBUG)" This will generate a .PDB file for you in the output directory alongside the .DLL. Note you should check the following options too: Linker/Optimization: "References" = "Eliminate Unreferenced Data (/OPT:REF)" Linker/Optimization: "Enable COMDAT Folding" = "Remove Redundant COMDATs (/OPT:ICF)" They might be already set like that, but /DEBUG was known to reset them to no optimization, which makes the output file suddenly unnecessarily large. Now how to use it: You publish the .DLL and save the .PDB (or maybe given the open source nature, you might publish it as well, if anybody cares). Then when a minidump comes, you copy the .DLL, .PDB and .DMP files to the same directory, load the dump in MSVC - it will see that the .DLL references the .PDB and load the symbols from it. And voila, you have the assembly annotated with function and variable names, line numbers, etc. If the source (and the source file paths) haven't changed, you'll jump directly into source view. Hope that helps. Also, on a related note, do you deliberately use no optimization (/Od) for the build? The code seemed like that.