mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-28 02:05:04 +01:00
Populate stack frames with unloaded module info.
This CL hits lots of source files because: 1. An update to the CodeModule virtual class. I added an is_loaded method to specify whether the module is loaded. There were several mocks/test classes that needed to be updated with an implementation. An alternative to this route would be to modify MinidumpUnloadedModule::code_file to prepend "Unloaded_" to the module name. 2. Added an unloaded_modules parameter to StackFrameSymbolizer::FillSourceLineInfo. BUG= Change-Id: Ic9c7f7c7b7e932a154a5d4ccf292c1527d8da09f Reviewed-on: https://chromium-review.googlesource.com/430241 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
This commit is contained in:
parent
e7dfafc16e
commit
0924d424e4
15 changed files with 161 additions and 13 deletions
|
|
@ -55,12 +55,19 @@ StackFrameSymbolizer::StackFrameSymbolizer(
|
|||
|
||||
StackFrameSymbolizer::SymbolizerResult StackFrameSymbolizer::FillSourceLineInfo(
|
||||
const CodeModules* modules,
|
||||
const CodeModules* unloaded_modules,
|
||||
const SystemInfo* system_info,
|
||||
StackFrame* frame) {
|
||||
assert(frame);
|
||||
|
||||
if (!modules) return kError;
|
||||
const CodeModule* module = modules->GetModuleForAddress(frame->instruction);
|
||||
const CodeModule* module = NULL;
|
||||
if (modules) {
|
||||
module = modules->GetModuleForAddress(frame->instruction);
|
||||
}
|
||||
if (!module && unloaded_modules) {
|
||||
module = unloaded_modules->GetModuleForAddress(frame->instruction);
|
||||
}
|
||||
|
||||
if (!module) return kError;
|
||||
frame->module = module;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue