mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 13:03:17 +01:00
OutputDebugStringF fix for Mac FileVault problem, take 3
(cannot use a CRITICAL_BLOCK because of undefined order calling static destructors; instead, keep debug.log open, and tell people to use copytruncate when doing log rotation) git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@183 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
parent
2f7a9997c8
commit
c4679ad0f1
47
util.cpp
47
util.cpp
@ -145,8 +145,6 @@ int GetRandInt(int nMax)
|
|||||||
|
|
||||||
inline int OutputDebugStringF(const char* pszFormat, ...)
|
inline int OutputDebugStringF(const char* pszFormat, ...)
|
||||||
{
|
{
|
||||||
static CCriticalSection cs_OutputDebugStringF;
|
|
||||||
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if (fPrintToConsole)
|
if (fPrintToConsole)
|
||||||
{
|
{
|
||||||
@ -158,38 +156,33 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CRITICAL_BLOCK(cs_OutputDebugStringF)
|
// print to debug.log
|
||||||
{
|
static FILE* fileout = NULL;
|
||||||
// print to debug.log
|
|
||||||
static FILE* fileout = NULL;
|
|
||||||
static int64 nOpenTime = 0;
|
|
||||||
|
|
||||||
if (GetTime()-nOpenTime > 10 * 60)
|
if (!fileout)
|
||||||
{
|
{
|
||||||
if (fileout)
|
char pszFile[MAX_PATH+100];
|
||||||
fclose(fileout);
|
GetDataDir(pszFile);
|
||||||
char pszFile[MAX_PATH+100];
|
strlcat(pszFile, "/debug.log", sizeof(pszFile));
|
||||||
GetDataDir(pszFile);
|
fileout = fopen(pszFile, "a");
|
||||||
strlcat(pszFile, "/debug.log", sizeof(pszFile));
|
setbuf(fileout, NULL); // unbuffered
|
||||||
fileout = fopen(pszFile, "a");
|
}
|
||||||
nOpenTime = GetTime();
|
if (fileout)
|
||||||
}
|
{
|
||||||
if (fileout)
|
//// Debug print useful for profiling
|
||||||
{
|
//fprintf(fileout, " %"PRI64d" ", GetTimeMillis());
|
||||||
//// Debug print useful for profiling
|
va_list arg_ptr;
|
||||||
//fprintf(fileout, " %"PRI64d" ", GetTimeMillis());
|
va_start(arg_ptr, pszFormat);
|
||||||
va_list arg_ptr;
|
ret = vfprintf(fileout, pszFormat, arg_ptr);
|
||||||
va_start(arg_ptr, pszFormat);
|
va_end(arg_ptr);
|
||||||
ret = vfprintf(fileout, pszFormat, arg_ptr);
|
|
||||||
va_end(arg_ptr);
|
|
||||||
fflush(fileout);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
if (fPrintToDebugger)
|
if (fPrintToDebugger)
|
||||||
{
|
{
|
||||||
|
static CCriticalSection cs_OutputDebugStringF;
|
||||||
|
|
||||||
// accumulate a line at a time
|
// accumulate a line at a time
|
||||||
CRITICAL_BLOCK(cs_OutputDebugStringF)
|
CRITICAL_BLOCK(cs_OutputDebugStringF)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user