aboutsummaryrefslogtreecommitdiff
path: root/src/processor/synth_minidump.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/processor/synth_minidump.cc')
-rw-r--r--src/processor/synth_minidump.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/processor/synth_minidump.cc b/src/processor/synth_minidump.cc
index ade150ef..aa86d248 100644
--- a/src/processor/synth_minidump.cc
+++ b/src/processor/synth_minidump.cc
@@ -297,6 +297,26 @@ const MDVSFixedFileInfo Module::stock_version_info = {
0 // file_date_lo
};
+UnloadedModule::UnloadedModule(const Dump &dump,
+ uint64_t base_of_image,
+ uint32_t size_of_image,
+ const String &name,
+ uint32_t checksum,
+ uint32_t time_date_stamp) : Section(dump) {
+ D64(base_of_image);
+ D32(size_of_image);
+ D32(checksum);
+ D32(time_date_stamp);
+ name.CiteStringIn(this);
+}
+
+UnloadedModuleList::UnloadedModuleList(const Dump &dump, uint32_t type)
+ : List<UnloadedModule>(dump, type, false) {
+ D32(sizeof(MDRawUnloadedModuleList));
+ D32(sizeof(MDRawUnloadedModule));
+ D32(count_label_);
+}
+
Exception::Exception(const Dump &dump,
const Context &context,
uint32_t thread_id,
@@ -328,6 +348,7 @@ Dump::Dump(uint64_t flags,
stream_count_(0),
thread_list_(*this, MD_THREAD_LIST_STREAM),
module_list_(*this, MD_MODULE_LIST_STREAM),
+ unloaded_module_list_(*this, MD_UNLOADED_MODULE_LIST_STREAM),
memory_list_(*this, MD_MEMORY_LIST_STREAM)
{
D32(MD_HEADER_SIGNATURE);
@@ -375,9 +396,15 @@ Dump &Dump::Add(Module *module) {
return *this;
}
+Dump &Dump::Add(UnloadedModule *unloaded_module) {
+ unloaded_module_list_.Add(unloaded_module);
+ return *this;
+}
+
void Dump::Finish() {
if (!thread_list_.Empty()) Add(&thread_list_);
if (!module_list_.Empty()) Add(&module_list_);
+ if (!unloaded_module_list_.Empty()) Add(&unloaded_module_list_);
if (!memory_list_.Empty()) Add(&memory_list_);
// Create the stream directory. We don't use