From ae4aab491e136b37fbec881544cdadac74964973 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 26 Mar 2019 23:17:57 +1100 Subject: [PATCH] add CrashHandler to lobby/api/world and cleanup test code in tools --- src/api/main.cpp | 4 ++++ src/common/Util/CrashHandler.cpp | 3 +++ src/lobby/mainLobbyServer.cpp | 4 ++++ src/tools/exd_struct_test/main.cpp | 10 ---------- src/world/mainGameServer.cpp | 4 ++++ 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/api/main.cpp b/src/api/main.cpp index 653dfd3e..fd68af4f 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -32,6 +32,10 @@ #include "Forwards.h" #include "SapphireAPI.h" +#include + +Sapphire::Common::Util::CrashHandler crashHandler; + Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection > g_charaDb; Sapphire::Data::ExdDataGenerated g_exdDataGen; Sapphire::Network::SapphireAPI g_sapphireAPI; diff --git a/src/common/Util/CrashHandler.cpp b/src/common/Util/CrashHandler.cpp index 2dd61307..614496d7 100644 --- a/src/common/Util/CrashHandler.cpp +++ b/src/common/Util/CrashHandler.cpp @@ -65,6 +65,9 @@ void Util::CrashHandler::printStackTrace( unsigned int max_frames ) #ifndef _WIN32 + // used as is from: https://oroboro.com/stack-trace-on-crash/ + // only changes output slightly + void* addrlist[ max_frames + 1 ]; int addrlen = backtrace( addrlist, sizeof( addrlist ) / sizeof( void* ) ); diff --git a/src/lobby/mainLobbyServer.cpp b/src/lobby/mainLobbyServer.cpp index 54e1f9ff..957604c8 100644 --- a/src/lobby/mainLobbyServer.cpp +++ b/src/lobby/mainLobbyServer.cpp @@ -1,5 +1,9 @@ #include "ServerLobby.h" +#include + +Sapphire::Common::Util::CrashHandler crashHandler; + Sapphire::ServerLobby g_serverLobby( "lobby.ini" ); int main( int32_t argc, char* argv[] ) diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp index 218f89af..b6da89bf 100644 --- a/src/tools/exd_struct_test/main.cpp +++ b/src/tools/exd_struct_test/main.cpp @@ -27,21 +27,11 @@ using namespace Sapphire; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); const std::string datLocation( "/mnt/c/Program Files (x86)/Steam/steamapps/common/FINAL FANTASY XIV Online/game/sqpack" ); -int shit() -{ - int* ptr = nullptr; - - *ptr = 1; -} - - int main() { Logger::init( "struct_test" ); - shit(); - Logger::info( "Setting up EXD data" ); if( !g_exdData.init( datLocation ) ) { diff --git a/src/world/mainGameServer.cpp b/src/world/mainGameServer.cpp index a0dcddac..6e4c1ceb 100644 --- a/src/world/mainGameServer.cpp +++ b/src/world/mainGameServer.cpp @@ -3,9 +3,13 @@ #include "ServerMgr.h" #include +#include + using namespace Sapphire; using namespace Sapphire::World; +Common::Util::CrashHandler crashHandler; + int main( int32_t argc, char* argv[] ) { auto pFramework = Sapphire::make_Framework();