So, I couldn't sort out a way to efficiently get the information I need from the pdb without writing a custom tool that reads the pdb directly, which is not something I want to spend the time doing right now. So I settled on massaging the symbols until they lined up well enough with the breakpad format.[1] I ended up being able to find about a third of the symbols in the breakpad file, and I manually sampled the symbols that I couldn't find to see why, and as far as I could tell they simply weren't in the breakpad file, so I assume they were optimized out?[2] Anyway, the results are attached. For every symbol I could find in the breakpad file, it is indeed to be found at the start of the .text section. So that part seems to be working correctly, but it is a very very small part of what we actually use. [1] I'm not sure why I'm seeing these differences. I assume breakpad does some custom transformation of the symbols other than just [these undname flags](https://searchfox.org/mozilla-central/rev/94c6b5f06d2464f6780a52f32e917d25ddc30d6b/toolkit/crashreporter/google-breakpad/src/common/windows/pdb_source_line_writer.cc#1027). [2] As far as I can tell, breakpad doesn't include inlining information. Is this correct? Edit: just saw bug 524410, looks like we do now for Linux, but not Windows.
Bug 1548033 Comment 16 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
So, I couldn't sort out a way to efficiently get the information I need from the pdb without writing a custom tool that reads the pdb directly, which is not something I want to spend the time doing right now. So I settled on massaging the symbols until they lined up well enough with the breakpad format.[1] I ended up being able to find about a third of the symbols in the breakpad file, and I manually sampled the symbols that I couldn't find to see why, and as far as I could tell they simply weren't in the breakpad file, so I assume they were optimized out?[2] Anyway, the results are attached. The top bar is filled in for every page that contains a symbol found in the order file (as far as I could determine by using the breakpad file to get the address). For all of the symbols I could find, they are indeed to be found at the start of the .text section, so that part seems to be working correctly, but it is a very very small part of what we actually use. Also, I think the gap in the second bar, immediately after the symbols we do find, suggests that this is actually the complete list of symbols present in both the breakpad file and the order file. [1] I'm not sure why I'm seeing these differences. I assume breakpad does some custom transformation of the symbols other than just [these undname flags](https://searchfox.org/mozilla-central/rev/94c6b5f06d2464f6780a52f32e917d25ddc30d6b/toolkit/crashreporter/google-breakpad/src/common/windows/pdb_source_line_writer.cc#1027). [2] As far as I can tell, breakpad doesn't include inlining information. Is this correct? Edit: just saw bug 524410, looks like we do now for Linux, but not Windows.
So, I couldn't sort out a way to efficiently get the information I need from the pdb without writing a custom tool that reads the pdb directly, which is not something I want to spend the time doing right now. So I settled on massaging the symbols until they lined up well enough with the breakpad format.[1] I ended up being able to find about a third of the symbols in the breakpad file, and I manually sampled the symbols that I couldn't find to see why, and as far as I could tell they simply weren't in the breakpad file, so I assume they were optimized out?[2] Anyway, the results are attached. The top bar is filled in for every page that contains a symbol found in the order file (as far as I could determine by using the breakpad file to get the address). For all[3] of the symbols I could find, they are indeed to be found at the start of the .text section, so that part seems to be working correctly, but it is a very very small part of what we actually use. Also, I think the gap in the second bar, immediately after the symbols we do find, suggests that this is actually the complete list of symbols present in both the breakpad file and the order file. [1] I'm not sure why I'm seeing these differences. I assume breakpad does some custom transformation of the symbols other than just [these undname flags](https://searchfox.org/mozilla-central/rev/94c6b5f06d2464f6780a52f32e917d25ddc30d6b/toolkit/crashreporter/google-breakpad/src/common/windows/pdb_source_line_writer.cc#1027). [2] As far as I can tell, breakpad doesn't include inlining information. Is this correct? Edit: just saw bug 524410, looks like we do now for Linux, but not Windows. [3] EDIT: not quite ALL. There are a few stragglers which I don't have a great explanation for.