mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-28 10:15:10 +01:00
Rename Airbag to Breakpad.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@122 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
83befb1cb4
commit
e5dc60822e
118 changed files with 37042 additions and 24117 deletions
|
|
@ -1,4 +1,3 @@
|
|||
//
|
||||
// Copyright (c) 2006, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
|
|
@ -40,14 +39,14 @@
|
|||
|
||||
#include <Foundation/Foundation.h>
|
||||
|
||||
#include "google_airbag/processor/basic_source_line_resolver.h"
|
||||
#include "google_airbag/processor/call_stack.h"
|
||||
#include "google_airbag/processor/code_module.h"
|
||||
#include "google_airbag/processor/minidump.h"
|
||||
#include "google_airbag/processor/minidump_processor.h"
|
||||
#include "google_airbag/processor/process_state.h"
|
||||
#include "google_airbag/processor/stack_frame_cpu.h"
|
||||
#include "google_airbag/processor/system_info.h"
|
||||
#include "google_breakpad/processor/basic_source_line_resolver.h"
|
||||
#include "google_breakpad/processor/call_stack.h"
|
||||
#include "google_breakpad/processor/code_module.h"
|
||||
#include "google_breakpad/processor/minidump.h"
|
||||
#include "google_breakpad/processor/minidump_processor.h"
|
||||
#include "google_breakpad/processor/process_state.h"
|
||||
#include "google_breakpad/processor/stack_frame_cpu.h"
|
||||
#include "google_breakpad/processor/system_info.h"
|
||||
#include "processor/pathname_stripper.h"
|
||||
#include "processor/scoped_ptr.h"
|
||||
#include "processor/simple_symbol_supplier.h"
|
||||
|
|
@ -56,19 +55,19 @@
|
|||
|
||||
using std::string;
|
||||
|
||||
using google_airbag::BasicSourceLineResolver;
|
||||
using google_airbag::CallStack;
|
||||
using google_airbag::CodeModule;
|
||||
using google_airbag::CodeModules;
|
||||
using google_airbag::MinidumpProcessor;
|
||||
using google_airbag::OnDemandSymbolSupplier;
|
||||
using google_airbag::PathnameStripper;
|
||||
using google_airbag::ProcessState;
|
||||
using google_airbag::scoped_ptr;
|
||||
using google_airbag::StackFrame;
|
||||
using google_airbag::StackFramePPC;
|
||||
using google_airbag::StackFrameX86;
|
||||
using google_airbag::SystemInfo;
|
||||
using google_breakpad::BasicSourceLineResolver;
|
||||
using google_breakpad::CallStack;
|
||||
using google_breakpad::CodeModule;
|
||||
using google_breakpad::CodeModules;
|
||||
using google_breakpad::MinidumpProcessor;
|
||||
using google_breakpad::OnDemandSymbolSupplier;
|
||||
using google_breakpad::PathnameStripper;
|
||||
using google_breakpad::ProcessState;
|
||||
using google_breakpad::scoped_ptr;
|
||||
using google_breakpad::StackFrame;
|
||||
using google_breakpad::StackFramePPC;
|
||||
using google_breakpad::StackFrameX86;
|
||||
using google_breakpad::SystemInfo;
|
||||
|
||||
typedef struct {
|
||||
NSString *minidumpPath;
|
||||
|
|
@ -254,7 +253,7 @@ static void Start(Options *options) {
|
|||
|
||||
//=============================================================================
|
||||
static void Usage(int argc, const char *argv[]) {
|
||||
fprintf(stderr, "Convert a minidump to a crash report. Airbag symbol files\n");
|
||||
fprintf(stderr, "Convert a minidump to a crash report. Breakpad symbol files\n");
|
||||
fprintf(stderr, "will be used (or created if missing) in /tmp.\n");
|
||||
fprintf(stderr, "Usage: %s [-s search-dir] minidump-file\n", argv[0]);
|
||||
fprintf(stderr, "\t-s: Specify a search directory to use for missing modules\n");
|
||||
|
|
|
|||
|
|
@ -74,8 +74,8 @@
|
|||
08FB7796FE84155DC02AAC07 /* crash_report.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = crash_report.mm; sourceTree = "<group>"; };
|
||||
08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||
8DD76FA10486AA7600D96B5E /* crash_report */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = crash_report; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9B35FEE20B2675F9008DE8C7 /* code_module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_module.h; path = ../../../google_airbag/processor/code_module.h; sourceTree = SOURCE_ROOT; };
|
||||
9B35FEE30B2675F9008DE8C7 /* code_modules.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_modules.h; path = ../../../google_airbag/processor/code_modules.h; sourceTree = SOURCE_ROOT; };
|
||||
9B35FEE20B2675F9008DE8C7 /* code_module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_module.h; path = ../../../google_breakpad/processor/code_module.h; sourceTree = SOURCE_ROOT; };
|
||||
9B35FEE30B2675F9008DE8C7 /* code_modules.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_modules.h; path = ../../../google_breakpad/processor/code_modules.h; sourceTree = SOURCE_ROOT; };
|
||||
9B35FEE60B26761C008DE8C7 /* basic_code_module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = basic_code_module.h; path = ../../../processor/basic_code_module.h; sourceTree = SOURCE_ROOT; };
|
||||
9B35FEE70B26761C008DE8C7 /* basic_code_modules.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = basic_code_modules.cc; path = ../../../processor/basic_code_modules.cc; sourceTree = SOURCE_ROOT; };
|
||||
9B35FEE80B26761C008DE8C7 /* basic_code_modules.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = basic_code_modules.h; path = ../../../processor/basic_code_modules.h; sourceTree = SOURCE_ROOT; };
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
9B3904950B2E52D90059FABE /* source_line_resolver_interface.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = source_line_resolver_interface.h; sourceTree = "<group>"; };
|
||||
9B3904980B2E52FD0059FABE /* basic_source_line_resolver.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = basic_source_line_resolver.cc; path = ../../../processor/basic_source_line_resolver.cc; sourceTree = SOURCE_ROOT; };
|
||||
9B44619D0B66C66B00BBB817 /* system_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = system_info.h; sourceTree = "<group>"; };
|
||||
9BDF16F90B1B8ACD00F8391B /* airbag_types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = airbag_types.h; sourceTree = "<group>"; };
|
||||
9BDF16F90B1B8ACD00F8391B /* breakpad_types.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = breakpad_types.h; sourceTree = "<group>"; };
|
||||
9BDF16FA0B1B8ACD00F8391B /* minidump_format.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minidump_format.h; sourceTree = "<group>"; };
|
||||
9BDF16FC0B1B8ACD00F8391B /* call_stack.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = call_stack.h; sourceTree = "<group>"; };
|
||||
9BDF16FD0B1B8ACD00F8391B /* memory_region.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = memory_region.h; sourceTree = "<group>"; };
|
||||
|
|
@ -138,21 +138,21 @@
|
|||
08FB7796FE84155DC02AAC07 /* crash_report.mm */,
|
||||
9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */,
|
||||
9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */,
|
||||
08FB7795FE84155DC02AAC07 /* airbag */,
|
||||
08FB7795FE84155DC02AAC07 /* breakpad */,
|
||||
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
|
||||
1AB674ADFE9D54B511CA2CBB /* Products */,
|
||||
);
|
||||
name = crash_report;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB7795FE84155DC02AAC07 /* airbag */ = {
|
||||
08FB7795FE84155DC02AAC07 /* breakpad */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9BE650AB0B52FE1A00611104 /* common */,
|
||||
9BDF17280B1B8B0200F8391B /* processor */,
|
||||
9BDF16F70B1B8ACD00F8391B /* google_airbag */,
|
||||
9BDF16F70B1B8ACD00F8391B /* google_breakpad */,
|
||||
);
|
||||
name = airbag;
|
||||
name = breakpad;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
|
||||
|
|
@ -171,20 +171,20 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9BDF16F70B1B8ACD00F8391B /* google_airbag */ = {
|
||||
9BDF16F70B1B8ACD00F8391B /* google_breakpad */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9BDF16F80B1B8ACD00F8391B /* common */,
|
||||
9BDF16FB0B1B8ACD00F8391B /* processor */,
|
||||
);
|
||||
name = google_airbag;
|
||||
path = ../../../google_airbag;
|
||||
name = google_breakpad;
|
||||
path = ../../../google_breakpad;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
9BDF16F80B1B8ACD00F8391B /* common */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9BDF16F90B1B8ACD00F8391B /* airbag_types.h */,
|
||||
9BDF16F90B1B8ACD00F8391B /* breakpad_types.h */,
|
||||
9BDF16FA0B1B8ACD00F8391B /* minidump_format.h */,
|
||||
);
|
||||
path = common;
|
||||
|
|
|
|||
|
|
@ -28,16 +28,16 @@
|
|||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// on_demand_symbol_supplier.h: Provides a Symbol Supplier that will create
|
||||
// an airbag symbol file on demand.
|
||||
// an breakpad symbol file on demand.
|
||||
|
||||
#ifndef TOOLS_MAC_CRASH_REPORT_ON_DEMAND_SYMBOL_SUPPLIER_H__
|
||||
#define TOOLS_MAC_CRASH_REPORT_ON_DEMAND_SYMBOL_SUPPLIER_H__
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include "google_airbag/processor/symbol_supplier.h"
|
||||
#include "google_breakpad/processor/symbol_supplier.h"
|
||||
|
||||
namespace google_airbag {
|
||||
namespace google_breakpad {
|
||||
|
||||
using std::map;
|
||||
using std::string;
|
||||
|
|
@ -79,12 +79,12 @@ class OnDemandSymbolSupplier : public SymbolSupplier {
|
|||
// returned, then |module| doesn't have a symbol file.
|
||||
string GetModuleSymbolFile(const CodeModule *module);
|
||||
|
||||
// Generate the airbag symbol file for |module|. Return true if successful.
|
||||
// Generate the breakpad symbol file for |module|. Return true if successful.
|
||||
// File is generated in /tmp.
|
||||
bool GenerateSymbolFile(const CodeModule *module,
|
||||
const SystemInfo *system_info);
|
||||
};
|
||||
|
||||
} // namespace google_airbag
|
||||
} // namespace google_breakpad
|
||||
|
||||
#endif // TOOLS_MAC_CRASH_REPORT_ON_DEMAND_SYMBOL_SUPPLIER_H__
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@
|
|||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#include "google_airbag/processor/basic_source_line_resolver.h"
|
||||
#include "google_airbag/processor/minidump.h"
|
||||
#include "google_airbag/processor/system_info.h"
|
||||
#include "google_breakpad/processor/basic_source_line_resolver.h"
|
||||
#include "google_breakpad/processor/minidump.h"
|
||||
#include "google_breakpad/processor/system_info.h"
|
||||
#include "processor/pathname_stripper.h"
|
||||
|
||||
#include "on_demand_symbol_supplier.h"
|
||||
|
|
@ -42,10 +42,10 @@
|
|||
using std::map;
|
||||
using std::string;
|
||||
|
||||
using google_airbag::OnDemandSymbolSupplier;
|
||||
using google_airbag::PathnameStripper;
|
||||
using google_airbag::SymbolSupplier;
|
||||
using google_airbag::SystemInfo;
|
||||
using google_breakpad::OnDemandSymbolSupplier;
|
||||
using google_breakpad::PathnameStripper;
|
||||
using google_breakpad::SymbolSupplier;
|
||||
using google_breakpad::SystemInfo;
|
||||
|
||||
OnDemandSymbolSupplier::OnDemandSymbolSupplier(const string &search_dir)
|
||||
: search_dir_(search_dir) {
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ static void Start(Options *options) {
|
|||
|
||||
//=============================================================================
|
||||
static void Usage(int argc, const char *argv[]) {
|
||||
fprintf(stderr, "Output an Airbag symbol file from a Mach-o file.\n");
|
||||
fprintf(stderr, "Output an Breakpad symbol file from a Mach-o file.\n");
|
||||
fprintf(stderr, "Usage: %s [-a ppc|i386|x86] <Mach-o file>\n",
|
||||
argv[0]);
|
||||
fprintf(stderr, "\t-a: Architecture type [default: native]\n");
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
// a multipart/form-data POST request with the following parameters:
|
||||
// prod: the product name
|
||||
// ver: the product version
|
||||
// symbol_file: the airbag format symbol file
|
||||
// symbol_file: the breakpad format symbol file
|
||||
|
||||
#import <unistd.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
// "11111111BBBB3333DDDD555555555555F"
|
||||
// os: the operating system that the module was built for
|
||||
// cpu: the CPU that the module was built for (x86 or ppc)
|
||||
// symbol_file: the contents of the airbag-format symbol file
|
||||
// symbol_file: the contents of the breakpad-format symbol file
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ms_symbol_server_converter.cc: Obtain symbol files from a Microsoft
|
||||
// symbol server, and convert them to Airbag's dumped format.
|
||||
// symbol server, and convert them to Breakpad's dumped format.
|
||||
//
|
||||
// See ms_symbol_server_converter.h for documentation.
|
||||
//
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
#define SYMOPT_NO_PROMPTS 0x00080000
|
||||
#endif // SYMOPT_NO_PROMPTS
|
||||
|
||||
namespace google_airbag {
|
||||
namespace google_breakpad {
|
||||
|
||||
// Use sscanf_s if it is available, to quench the warning about scanf being
|
||||
// deprecated. Use scanf where sscanf_is not available. Note that the
|
||||
|
|
@ -513,4 +513,4 @@ MSSymbolServerConverter::LocateAndConvertSymbolFile(
|
|||
return LOCATE_SUCCESS;
|
||||
}
|
||||
|
||||
} // namespace google_airbag
|
||||
} // namespace google_breakpad
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ms_symbol_server_converter.h: Obtain symbol files from a Microsoft
|
||||
// symbol server, and convert them to Airbag's dumped format.
|
||||
// symbol server, and convert them to Breakpad's dumped format.
|
||||
//
|
||||
// At runtime, MSSymbolServerConverter and code that it calls depend on being
|
||||
// able to locate suitable versions of dbghelp.dll and symsrv.dll. For best
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace google_airbag {
|
||||
namespace google_breakpad {
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
|
@ -196,6 +196,6 @@ class MSSymbolServerConverter {
|
|||
// fail_* member set, then it is authoritative.
|
||||
};
|
||||
|
||||
} // namespace google_airbag
|
||||
} // namespace google_breakpad
|
||||
|
||||
#endif // MS_SYMBOL_SERVER_CONVERTER_H__
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
#include "common/windows/pdb_source_line_writer.h"
|
||||
|
||||
using std::wstring;
|
||||
using google_airbag::PDBSourceLineWriter;
|
||||
using google_breakpad::PDBSourceLineWriter;
|
||||
|
||||
int wmain(int argc, wchar_t **argv) {
|
||||
if (argc < 2) {
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ if [ $status -ne 0 ] ; then
|
|||
exit $status
|
||||
fi
|
||||
|
||||
diff -u testdata/dump_syms_regtest.new testdata/dump_syms_regtest.out > \
|
||||
diff -u testdata/dump_syms_regtest.new testdata/dump_syms_regtest.sym > \
|
||||
testdata/dump_syms_regtest.diff
|
||||
status=$?
|
||||
|
||||
|
|
|
|||
65
src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc
vendored
Normal file
65
src/tools/windows/dump_syms/testdata/dump_syms_regtest.cc
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
// Copyright (c) 2007, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// cl /Zi dump_syms_regtest.cc
|
||||
// dump_syms dump_syms_regtest.pdb | tr -d '\015' > dump_syms_regtest.sym
|
||||
|
||||
namespace google_breakpad {
|
||||
|
||||
class C {
|
||||
public:
|
||||
C() : member_(1) {}
|
||||
virtual ~C() {}
|
||||
|
||||
void set_member(int value) { member_ = value; }
|
||||
int member() const { return member_; }
|
||||
|
||||
void f() { member_ = g(); }
|
||||
virtual int g() { return 2; }
|
||||
static char* h(const C &that) { return 0; }
|
||||
|
||||
private:
|
||||
int member_;
|
||||
};
|
||||
|
||||
static int i() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
} // namespace google_breakpad
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
google_breakpad::C object;
|
||||
object.set_member(google_breakpad::i());
|
||||
object.f();
|
||||
int value = object.g();
|
||||
char *nothing = object.h(object);
|
||||
|
||||
return 0;
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
14097
src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym
vendored
Normal file
14097
src/tools/windows/dump_syms/testdata/dump_syms_regtest.sym
vendored
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -40,7 +40,7 @@
|
|||
// os: the operating system that the module was built for, always
|
||||
// "windows" in this implementation.
|
||||
// cpu: the CPU that the module was built for, typically "x86".
|
||||
// symbol_file: the contents of the airbag-format symbol file
|
||||
// symbol_file: the contents of the breakpad-format symbol file
|
||||
|
||||
#include <Windows.h>
|
||||
#include <DbgHelp.h>
|
||||
|
|
@ -60,10 +60,10 @@ using std::string;
|
|||
using std::wstring;
|
||||
using std::vector;
|
||||
using std::map;
|
||||
using google_airbag::HTTPUpload;
|
||||
using google_airbag::PDBModuleInfo;
|
||||
using google_airbag::PDBSourceLineWriter;
|
||||
using google_airbag::WindowsStringUtils;
|
||||
using google_breakpad::HTTPUpload;
|
||||
using google_breakpad::PDBModuleInfo;
|
||||
using google_breakpad::PDBSourceLineWriter;
|
||||
using google_breakpad::WindowsStringUtils;
|
||||
|
||||
// Extracts the file version information for the given filename,
|
||||
// as a string, for example, "1.2.3.4". Returns true on success.
|
||||
|
|
@ -108,7 +108,7 @@ static bool GetFileVersionString(const wchar_t *filename, wstring *version) {
|
|||
static bool DumpSymbolsToTempFile(const wchar_t *file,
|
||||
wstring *temp_file_path,
|
||||
PDBModuleInfo *pdb_info) {
|
||||
google_airbag::PDBSourceLineWriter writer;
|
||||
google_breakpad::PDBSourceLineWriter writer;
|
||||
// Use EXE_FILE to get information out of the exe/dll in addition to the
|
||||
// pdb. The name and version number of the exe/dll are of value, and
|
||||
// there's no way to locate an exe/dll given a pdb.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue