toolkit/crashreporter/google-breakpad/src/processor/proto/process_state.proto

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Copyright (c) 2010, 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.
    30 // process_state_proto.proto: A client proto representation of a process,
    31 // in a fully-digested state.
    32 //
    33 // Derived from earlier struct and class based models of a client-side
    34 // processed minidump found under src/google_breakpad/processor.  The
    35 // file process_state.h  holds the top level representation of this model,
    36 // supported by additional classes.  We've added a proto representation
    37 // to ease serialization and parsing for server-side storage of crash
    38 // reports processed on the client.
    39 //
    40 // Author: Jess Gray
    42 syntax = "proto2";
    44 package google_breakpad;
    46 // A proto representation of a process, in a fully-digested state.
    47 // See src/google_breakpad/processor/process_state.h
    48 message ProcessStateProto {
    49   // Next value: 13
    51   // The time-date stamp of the original minidump (time_t format)
    52   optional int64 time_date_stamp = 1;
    54   message Crash {
    55     // The type of crash.  OS- and possibly CPU- specific.  For example,
    56     // "EXCEPTION_ACCESS_VIOLATION" (Windows), "EXC_BAD_ACCESS /
    57     // KERN_INVALID_ADDRESS" (Mac OS X), "SIGSEGV" (other Unix).
    58     required string reason = 1;
    60     // If crash_reason implicates memory, the memory address that caused the
    61     // crash.  For data access errors, this will be the data address that
    62     // caused the fault.  For code errors, this will be the address of the
    63     // instruction that caused the fault.
    64     required int64 address = 2;
    65   }
    66   optional Crash crash = 2;
    69   // If there was an assertion that was hit, a textual representation
    70   // of that assertion, possibly including the file and line at which
    71   // it occurred.
    72   optional string assertion = 3;
    74   // The index of the thread that requested a dump be written in the
    75   // threads vector.  If a dump was produced as a result of a crash, this
    76   // will point to the thread that crashed.  If the dump was produced as
    77   // by user code without crashing, and the dump contains extended Breakpad
    78   // information, this will point to the thread that requested the dump.
    79   optional int32 requesting_thread = 4;
    81   message Thread {
    82     // Stack for the given thread
    83     repeated StackFrame frames = 1;
    84   }
    86   // Stacks for each thread (except possibly the exception handler
    87   // thread) at the time of the crash.
    88   repeated Thread threads = 5;
    90   // The modules that were loaded into the process represented by the
    91   // ProcessState.
    92   repeated CodeModule modules = 6;
    94   // System Info: OS and CPU
    96   // A string identifying the operating system, such as "Windows NT",
    97   // "Mac OS X", or "Linux".  If the information is present in the dump but
    98   // its value is unknown, this field will contain a numeric value.  If
    99   // the information is not present in the dump, this field will be empty.
   100   optional string os = 7;
   102    // A short form of the os string, using lowercase letters and no spaces,
   103   // suitable for use in a filesystem.  Possible values are "windows",
   104   // "mac", and "linux".  Empty if the information is not present in the dump
   105   // or if the OS given by the dump is unknown.  The values stored in this
   106   // field should match those used by MinidumpSystemInfo::GetOS.
   107   optional string os_short = 8;
   109   // A string identifying the version of the operating system, such as
   110   // "5.1.2600 Service Pack 2" or "10.4.8 8L2127".  If the dump does not
   111   // contain this information, this field will be empty.
   112   optional string os_version = 9;
   114   // A string identifying the basic CPU family, such as "x86" or "ppc".
   115   // If this information is present in the dump but its value is unknown,
   116   // this field will contain a numeric value.  If the information is not
   117   // present in the dump, this field will be empty.  The values stored in
   118   // this field should match those used by MinidumpSystemInfo::GetCPU.
   119   optional string cpu = 10;
   121   // A string further identifying the specific CPU, such as
   122   // "GenuineIntel level 6 model 13 stepping 8".  If the information is not
   123   // present in the dump, or additional identifying information is not
   124   // defined for the CPU family, this field will be empty.
   125   optional string cpu_info = 11;
   127   // The number of processors in the system.  Will be greater than one for
   128   // multi-core systems.
   129   optional int32 cpu_count = 12;
   131   // Leave the ability to add the raw minidump to this representation
   132 }
   135 // Represents a single frame in a stack  
   136 // See src/google_breakpad/processor/code_module.h
   137 message StackFrame {
   138   // Next value: 8
   140   // The program counter location as an absolute virtual address.  For the
   141   // innermost called frame in a stack, this will be an exact program counter
   142   // or instruction pointer value.  For all other frames, this will be within
   143   // the instruction that caused execution to branch to a called function,
   144   // but may not necessarily point to the exact beginning of that instruction.
   145   required int64 instruction = 1;
   147   // The module in which the instruction resides.
   148   optional CodeModule module = 2;
   150   // The function name, may be omitted if debug symbols are not available.
   151   optional string function_name = 3;
   153   // The start address of the function, may be omitted if debug symbols
   154   // are not available.
   155   optional int64 function_base = 4;
   157   // The source file name, may be omitted if debug symbols are not available.
   158   optional string source_file_name = 5;
   160   // The (1-based) source line number, may be omitted if debug symbols are
   161   // not available.
   162   optional int32 source_line = 6;
   164   // The start address of the source line, may be omitted if debug symbols
   165   // are not available.
   166   optional int64 source_line_base = 7;
   167 }
   170 // Carries information about code modules that are loaded into a process.
   171 // See src/google_breakpad/processor/code_module.h
   172 message CodeModule {
   173   // Next value: 8
   175   // The base address of this code module as it was loaded by the process.
   176   optional int64 base_address = 1;
   178   // The size of the code module.
   179   optional int64 size = 2;
   181   // The path or file name that the code module was loaded from.
   182   optional string code_file = 3;
   184   // An identifying string used to discriminate between multiple versions and
   185   // builds of the same code module.  This may contain a uuid, timestamp,
   186   // version number, or any combination of this or other information, in an
   187   // implementation-defined format.
   188   optional string code_identifier = 4;
   190   // The filename containing debugging information associated with the code
   191   // module.  If debugging information is stored in a file separate from the
   192   // code module itself (as is the case when .pdb or .dSYM files are used),
   193   // this will be different from code_file.  If debugging information is
   194   // stored in the code module itself (possibly prior to stripping), this
   195   // will be the same as code_file.
   196   optional string debug_file = 5;
   198   // An identifying string similar to code_identifier, but identifies a
   199   // specific version and build of the associated debug file.  This may be
   200   // the same as code_identifier when the debug_file and code_file are
   201   // identical or when the same identifier is used to identify distinct
   202   // debug and code files.
   203   optional string debug_identifier = 6;
   205   // A human-readable representation of the code module's version.
   206   optional string version = 7;
   207 }

mercurial