crashpad/snapshot/minidump/minidump_simple_string_dictionary_reader.h
Mark Mentovai 445c0eae7c snapshot: Add a minimal ModuleSnapshotMinidump and accessor from
ProcessSnapshotMinidump.

ModuleSnapshotMinidump is currently only capable of reading module
annotations, in both vector and simple-dictionary forms. It does not
read any other module information from minidump files. These annotations
are all that are necessary to be able to upload Crashpad-produced
minidumps to Breakpad crash processor servers, because Breakpad accepts
them as HTTP POST parameters, while Crashpad places them in the minidump
file itself.

TEST=snapshot_test ProcessSnapshotMinidump.Modules
BUG=crashpad:10
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/972383002
2015-03-04 12:29:01 -05:00

43 lines
1.5 KiB
C++

// Copyright 2015 The Crashpad Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef CRASHPAD_SNAPSHOT_MINIDUMP_MINIDUMP_SIMPLE_STRING_DICTIONARY_READER_H_
#define CRASHPAD_SNAPSHOT_MINIDUMP_MINIDUMP_SIMPLE_STRING_DICTIONARY_READER_H_
#include <windows.h>
#include <dbghelp.h>
#include <map>
#include <string>
#include "util/file/file_reader.h"
namespace crashpad {
namespace internal {
//! \brief Reads a MinidumpSimpleStringDictionary from a minidump file \a
//! location in \a file_reader, and returns it in \a dictionary.
//!
//! \return `true` on success, with \a dictionary set by replacing its contents.
//! `false` on failure, with a message logged.
bool ReadMinidumpSimpleStringDictionary(
FileReaderInterface* file_reader,
const MINIDUMP_LOCATION_DESCRIPTOR& location,
std::map<std::string, std::string>* dictionary);
} // namespace internal
} // namespace crashpad
#endif // CRASHPAD_SNAPSHOT_MINIDUMP_MINIDUMP_SIMPLE_STRING_DICTIONARY_READER_H_