fix crashhandler for windows

This commit is contained in:
Aleksey Dobrunov 2013-12-14 01:12:35 +06:00
parent 570a2d8f10
commit e35a9df89f

View File

@ -5,11 +5,13 @@
* ============================================================================*/ * ============================================================================*/
#include "crashhandler.hpp" #include "crashhandler.hpp"
#include "g2log.hpp" #include "g2logmessage.hpp"
#include "g2LogMessageBuilder.hpp"
#include <csignal> #include <csignal>
#include <cstring> #include <cstring>
#include <cstdlib> #include <cstdlib>
#include <sstream>
#if !(defined(WIN32) || defined(_WIN32) || defined(__WIN32__)) #if !(defined(WIN32) || defined(_WIN32) || defined(__WIN32__))
#error "crashhandler_win.cpp used but not on a windows system" #error "crashhandler_win.cpp used but not on a windows system"
#endif #endif
@ -26,9 +28,10 @@ void crashHandler(int signal_number)
fatal_stream << "\n\n***** FATAL TRIGGER RECEIVED ******* " << std::endl; fatal_stream << "\n\n***** FATAL TRIGGER RECEIVED ******* " << std::endl;
fatal_stream << "\n***** RETHROWING SIGNAL " << signalName(signal_number) << "(" << signal_number << ")" << std::endl; fatal_stream << "\n***** RETHROWING SIGNAL " << signalName(signal_number) << "(" << signal_number << ")" << std::endl;
FatalMessage fatal_message(fatal_stream.str(),FatalMessage::kReasonOS_FATAL_SIGNAL, signal_number); //FatalMessage fatal_message(fatal_stream.str(),FatalMessage::kReasonOS_FATAL_SIGNAL, signal_number);
FatalMessageBuilder trigger(fatal_message); std::ostringstream oss; g2::FatalMessageBuilder trigger(fatal_stream.str(), signal_number);
std::cerr << fatal_message.message_ << std::endl << std::flush; //std::ostringstream oss;
//std::cerr << fatal_message.message_ << std::endl << std::flush;
} // scope exit - message sent to LogWorker, wait to die... } // scope exit - message sent to LogWorker, wait to die...
} // end anonymous namespace } // end anonymous namespace
@ -37,6 +40,12 @@ namespace g2
{ {
namespace internal namespace internal
{ {
std::string stackdump()
{
std::string temp;
return temp;
}
std::string signalName(int signal_number) std::string signalName(int signal_number)
{ {
switch(signal_number) switch(signal_number)