LCOV - code coverage report
Current view: top level - toolkit/crashreporter/google-breakpad/src/google_breakpad/common - minidump_size.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 2 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 9 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // Copyright (c) 2007, Google Inc.
       2             : // All rights reserved.
       3             : //
       4             : // Redistribution and use in source and binary forms, with or without
       5             : // modification, are permitted provided that the following conditions are
       6             : // met:
       7             : //
       8             : //     * Redistributions of source code must retain the above copyright
       9             : // notice, this list of conditions and the following disclaimer.
      10             : //     * Redistributions in binary form must reproduce the above
      11             : // copyright notice, this list of conditions and the following disclaimer
      12             : // in the documentation and/or other materials provided with the
      13             : // distribution.
      14             : //     * Neither the name of Google Inc. nor the names of its
      15             : // contributors may be used to endorse or promote products derived from
      16             : // this software without specific prior written permission.
      17             : //
      18             : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      19             : // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      20             : // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
      21             : // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
      22             : // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
      23             : // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      24             : // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
      25             : // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      26             : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
      27             : // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
      28             : // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
      29             : 
      30             : // minidump_size.h: Provides a C++ template for programmatic access to
      31             : // the sizes of various types defined in minidump_format.h.
      32             : //
      33             : // Author: Mark Mentovai
      34             : 
      35             : #ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
      36             : #define GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
      37             : 
      38             : #include <sys/types.h>
      39             : 
      40             : #include "google_breakpad/common/minidump_format.h"
      41             : 
      42             : namespace google_breakpad {
      43             : 
      44             : template<typename T>
      45             : class minidump_size {
      46             :  public:
      47           0 :   static size_t size() { return sizeof(T); }
      48             : };
      49             : 
      50             : // Explicit specializations for variable-length types.  The size returned
      51             : // for these should be the size for an object without its variable-length
      52             : // section.
      53             : 
      54             : template<>
      55             : class minidump_size<MDString> {
      56             :  public:
      57           0 :   static size_t size() { return MDString_minsize; }
      58             : };
      59             : 
      60             : template<>
      61             : class minidump_size<MDRawThreadList> {
      62             :  public:
      63             :   static size_t size() { return MDRawThreadList_minsize; }
      64             : };
      65             : 
      66             : template<>
      67             : class minidump_size<MDCVInfoPDB20> {
      68             :  public:
      69             :   static size_t size() { return MDCVInfoPDB20_minsize; }
      70             : };
      71             : 
      72             : template<>
      73             : class minidump_size<MDCVInfoPDB70> {
      74             :  public:
      75             :   static size_t size() { return MDCVInfoPDB70_minsize; }
      76             : };
      77             : 
      78             : template<>
      79             : class minidump_size<MDCVInfoELF> {
      80             :  public:
      81             :   static size_t size() { return MDCVInfoELF_minsize; }
      82             : };
      83             : 
      84             : template<>
      85             : class minidump_size<MDImageDebugMisc> {
      86             :  public:
      87             :   static size_t size() { return MDImageDebugMisc_minsize; }
      88             : };
      89             : 
      90             : template<>
      91             : class minidump_size<MDRawModuleList> {
      92             :  public:
      93             :   static size_t size() { return MDRawModuleList_minsize; }
      94             : };
      95             : 
      96             : template<>
      97             : class minidump_size<MDRawMemoryList> {
      98             :  public:
      99             :   static size_t size() { return MDRawMemoryList_minsize; }
     100             : };
     101             : 
     102             : // Explicit specialization for MDRawModule, for which sizeof may include
     103             : // tail-padding on some architectures but not others.
     104             : 
     105             : template<>
     106             : class minidump_size<MDRawModule> {
     107             :  public:
     108             :   static size_t size() { return MD_MODULE_SIZE; }
     109             : };
     110             : 
     111             : }  // namespace google_breakpad
     112             : 
     113             : #endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__

Generated by: LCOV version 1.13