Add Linux exception handler.

Add Linux stab symbol dumper.
Add minidump & symbol uploader for Linux.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@126 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
luly81
2007-03-12 01:53:18 +00:00
parent 1f3d2571d1
commit bcd46f0079
23 changed files with 4032 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
CPP=g++
CC=gcc
CPPFLAGS=-gstabs -I../../.. -Wall -D_REENTRANT
LDFLAGS=-lssl
.PHONY:all clean
BIN=dump_syms
all:$(BIN)
DUMP_OBJ=dump_symbols.o guid_creator.o dump_syms.o file_id.o
dump_syms:$(DUMP_OBJ)
$(CPP) $(CPPFLAGS) $(LDFLAGS) -o $@ $^
dump_symbols.o:../../../common/linux/dump_symbols.cc
$(CPP) $(CPPFLAGS) -c $^
guid_creator.o:../../../common/linux/guid_creator.cc
$(CPP) $(CPPFLAGS) -c $^
file_id.o:../../../common/linux/file_id.cc
$(CPP) $(CPPFLAGS) -c $^
clean:
rm -f $(BIN) $(DUMP_OBJ)

View File

@@ -0,0 +1,56 @@
// Copyright (c) 2006, 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.
#include <string>
#include "common/linux/dump_symbols.h"
using namespace google_breakpad;
int main(int argc, char **argv) {
if (argc < 2 || argc > 3) {
fprintf(stderr,
"Usage: %s <binary-with-stab-symbol> [output-symbol-file]\n",
argv[0]);
return 1;
}
const char *binary = argv[1];
std::string symbol_file(binary);
symbol_file += ".sym";
if (argc == 3)
symbol_file = argv[2];
DumpSymbols dumper;
if (dumper.WriteSymbolFile(binary, symbol_file))
printf("Symbol file successfully written: %s\n", symbol_file.c_str());
else
printf("Failed to write symbol file.\n");
return 0;
}