Joined work of nakee and mine, cleanup the logging code a bit.

This solves the random __Log symbol and crash problem on linux
Please tell us if you find problems in the logging code


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2109 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
XTra.KrazzY
2009-02-04 15:28:39 +00:00
parent c43d8e9dcd
commit 77215fd27c
10 changed files with 60 additions and 181 deletions

View File

@ -16,9 +16,6 @@
// http://code.google.com/p/dolphin-emu/
// =======================================================================================
// Includes
// ---------------
#include "../Globals.h" // The precompiled header
#include "IniFile.h" // Common
@ -29,20 +26,13 @@
#include "PBView.h" // Debugger files
#include "Debugger.h"
#include "Logging.h" // Open and close console
// ========================
// =======================================================================================
// Declarations and definitions
// ---------------
extern int gPreset;
int A, B;
// ========================
// =======================================================================================
// Event table and class
// ---------------
BEGIN_EVENT_TABLE(CDebugger,wxDialog)
EVT_SHOW(CDebugger::OnShow)
EVT_CLOSE(CDebugger::OnClose)
@ -81,12 +71,9 @@ CDebugger::~CDebugger()
this->Save(file);
file.Save(DEBUGGER_CONFIG_FILE);
}
// =========================
// ==========================================================================
// System functions
// --------------
void CDebugger::OnShow(wxShowEvent& /*event*/)
{
// bring the console back to
@ -130,12 +117,8 @@ void CDebugger::OnUpdate(wxCommandEvent& /*event*/)
{
this->NotifyUpdate();
}
// ===============
// ==========================================================================
// Save and load settings
// --------------
void CDebugger::Save(IniFile& _IniFile) const
{
// TODO1: make this work when we close the entire program to, currently on total close we get
@ -182,7 +165,6 @@ void CDebugger::Load(IniFile& _IniFile)
_IniFile.Get("VideoWindow", "LogLevel", &g_Config.iLog, 0);
m_settings->Check(g_Config.iLog - 1, true);
}
// ===============
void CDebugger::CreateGUIControls()
@ -209,7 +191,6 @@ void CDebugger::CreateGUIControls()
// ===================================================================
// Main Page
@ -238,12 +219,8 @@ void CDebugger::CreateGUIControls()
m_buttonSizer->Add(m_Am, 0, 0, 5);
m_buttonSizer->Add(m_Bp, 0, 0, 5);
m_buttonSizer->Add(m_Bm, 0, 0, 5);
// ------------------------
// --------------------------------------------------------------------
// m_PageMain: Options
// -------------------------
wxStaticBoxSizer * m_optionsSizer = new wxStaticBoxSizer(wxVERTICAL, m_PageMain, wxT("Options"));
//m_Label[0] = new wxStaticBox(m_PageMain, IDG_LABEL1, wxT("Options"),
// wxDefaultPosition, wxDefaultSize, 0);
@ -259,12 +236,9 @@ void CDebugger::CreateGUIControls()
m_optionsSizer->Add(m_Check[0], 0, 0, 5);
m_optionsSizer->Add(m_Check[2], 0, 0, 5);
// ------------------------
// --------------------------------------------------------------------
// m_PageMain: Log settings checkboxes
// -------------------------
wxStaticBoxSizer * m_logSizer = new wxStaticBoxSizer(wxVERTICAL, m_PageMain, wxT("Log setting"));
m_settings = new wxCheckListBox(m_PageMain, ID_CHECKLIST1, wxDefaultPosition, wxDefaultSize,
0, NULL, wxNO_BORDER);
@ -397,7 +371,7 @@ void CDebugger::Ap(wxCommandEvent& event)
{
A += 50;
//MessageBox(0, "", "", 0);
__Log("%i", A);
DEBUG_LOG("%i", A);
}
void CDebugger::Am(wxCommandEvent& event)
{

View File

@ -17,12 +17,7 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
//
//////////////////////////////////////////////////////////////////////////////////////////
// =======================================================================================
// Includes
// ---------------
#include "../Globals.h" // This is the precompiled header and must be the first ...
#include <iostream>
@ -40,16 +35,8 @@
#include "ConsoleWindow.h" // Open and close console, clear console window
#endif
#include "../Debugger/Logging.h" // For global logging values
// =======================
// =======================================================================================
// Declarations and definitions
// ---------------
// -------------------------
// Externals
// -------------
extern int nFiles;
float ratioFactor; // a global to get the ratio factor from MixAdd
int gPreset = 0;
@ -62,26 +49,16 @@ extern bool gReset;
bool gOnlyLooping = false;
//extern int gleft, gright, gtop, gbottom; // from BPStructs.cpp
// -------------------------
// Counters
// -------------
int j = 0;
int k = 0;
bool iupdonce = false;
std::vector<u16> viupd(15); // the length of the update frequency bar
// -------------------------
// Classes
// -------------
#if defined(HAVE_WX) && HAVE_WX
extern CDebugger* m_frame;
#endif
// =======================
// =======================================================================================
// Write title
// --------------
std::string writeTitle(int a)
{
std::string b;
@ -91,20 +68,13 @@ std::string writeTitle(int a)
}
return b;
}
// =======================================================================================
// =======================================================================================
// Write main message (presets)
// --------------
std::string writeMessage(int a, int i)
{
char buf [1000] = "";
std::string sbuf;
// =======================================================================================
// PRESETS
// ---------------------------------------------------------------------------------------
/*
PRESET 0
"lef rig top bot | xof yof\n";
@ -122,27 +92,12 @@ std::string writeMessage(int a, int i)
}
// =======================================================================================
// Logging
void Logging(int a)
{
// =======================================================================================
// Update parameter values
// --------------
// AXPB base
// ==============
// =======================================================================================
// Control how often the screen is updated, and then update the screen
// --------------
if(a == 0) j++;
//if(l == pow((double)2,32)) l=0; // reset l
//l++;
@ -150,13 +105,10 @@ void Logging(int a)
{
// =======================================================================================
// Write header
// --------------
char buffer [1000] = "";
std::string sbuff;
sbuff = writeTitle(gPreset);
// ==============
// hopefully this is false if we don't have a debugging window and so it doesn't cause a crash
@ -172,7 +124,7 @@ void Logging(int a)
sbuff = sbuff + "\n";
// =======================================================================================
// Write global values
// ---------------
/*
@ -250,7 +202,7 @@ void Logging(int a)
Console::ClearScreen();
#endif
__Log("%s", sbuff.c_str());
LOG(VIDEO, "%s", sbuff.c_str());
sbuff.clear(); strcpy(buffer, "");
// ================