--
You received this message because you are subscribed to the Google Groups "google-breakpad-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-breakpad-d...@googlegroups.com.
To post to this group, send email to google-brea...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-breakpad-discuss?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
I'm also interested. I've seen problems with MS DIA in the past. It was crashing on certain Chrome PDB files. Microsoft claimed that the PDB files were corrupt (they were generated by Microsoft tools). It will be nice to see whether this PDB parser can do a better job.
On Tue, Apr 23, 2013 at 10:07 AM, Bruce Dawson <bruce....@gmail.com> wrote:
I'm interested. The time to convert PDB files to .sym files is a problem in our build process. No individual PDB files take an hour, but the sum total is certainly problematic.
On Tuesday, April 23, 2013 7:02:32 AM UTC-7, Jake Shadle wrote:--tl;dr PDB Dumping 1 hr -> 10 secondsSo I was really annoyed with how slow it took to create symbols from a Microsoft PDB, using a ~500MB PDB it was taking up to an hour on my quite beefy (32GB, 32CPU, SSD) machine at work. When I would break inside randomly it was ALWAYS either doing an de/allocation for string data of some sort or another it seemed, so it seemed the DIA2 DLL was basically string-bound. Fantastic.So I did some digging around and found several sources for parsing the PDB format, the most helpful being http://ccimetadata.codeplex.com/, which is actually from Microsoft, and has some PDB parsing code in it that gave me most of what I needed, the rest I found in https://code.google.com/p/pdbparse/.So I coded up a custom implementation of the PDB parsing, that is essentially just a drop in replacement for PDBSourceLineWriter, which has no dependencies on DIA2. Dumping the same exact PDB with the new method takes about 10 seconds, and uses less than 25% of the memory.Is anyone interested in the code? It is just 3 files, but it doesn't follow the Google coding standards at all, and has C++11 stuff, and uses the Microsoft concurrency runtime to thread some stuff, since this started off as an experiment.*I haven't figured out how to read thunk records or trampolines properly, but as they are usually uninteresting anyways I considered it a small price to pay for the speedup.
You received this message because you are subscribed to the Google Groups "google-breakpad-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-breakpad-discuss+unsub...@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "google-breakpad-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-breakpad-discuss/F0jMWxmWk0M/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-breakpad-d...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-breakpad-discuss.
For more options, visit https://groups.google.com/d/optout.