DescriptionThe purpose of this change is to enable easy and fast troubleshooting of issues related to missing symbols. Although this change may look big, most of the stuff is related to unittests, so it is pretty straightforward. Essentially, this introduces a new member in the ProcessState object that is getting populated with the modules that don't have symbols while the minidump is being processed (during stack walk). Note that this list will only contain modules for which the symbols were actually needed (module address is on the stack). This will allow the tools built on top of the Breakpad processor (e.g. Breakpad's minidump_stackwalk, Google's crash processor) to show the missing symbols in the resulting crash reports. Here is an example output from minidump_stackwalk: ========================== ... Loaded modules: 0x7fa2915ef000 - 0x7fa2917f2fff libnss_cache-2.15.so 0x7fa2917f3000 - 0x7fa2919fffff libnss_files-2.15.so 0x7fa291fb8000 - 0x7fa29236cfff libc-2.15.so ... Modules without symbols: <<============= new section 0x7fa291fb8000 - 0x7fa29236cfff libc-2.15.so 0x7fa292876000 - 0x7fa292a8efff libpthread-2.15.so ... ========================== Thanks, -Ivan Patch Set 1 #
Total comments: 4
Patch Set 2 : Refactoring the minidump_stackwalk.cc a bit as suggested and updating the loaded module list output. #
Total comments: 6
Patch Set 3 : Resolving a merge conflict with a previous change that updated the SymbolizerResult enum. Also fix… #Patch Set 4 : Forgot to update the module list in the unittest. #
Total comments: 4
Patch Set 5 : Fixing a typo. #Patch Set 6 : renaming the function to ContainsModule and I'm removing the check for the #
Total comments: 4
Patch Set 7 : Reorder asserts, resolve merge conflicts, and rearange spaces in the printf format string as sugges… #
MessagesTotal messages: 12
|