BUG-2707 make use of OsOutputDebugString _DEBUG only on Windows to avoid throwing unhandlable exceptions in coroutines in RelWithDebInfo builds
parent
79e92babf5
commit
ea24612561
|
|
@ -86,8 +86,7 @@ void LLTexLayerParamAlpha::dumpCacheByteCount()
|
|||
{
|
||||
S32 gl_bytes = 0;
|
||||
getCacheByteCount( &gl_bytes);
|
||||
// BUG-2707?
|
||||
//LL_DEBUGS("LLTexLayerParamAlpha") << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
|
||||
LL_DEBUGS("LLTexLayerParamAlpha") << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -60,8 +60,7 @@ bool LLCoros::cleanup(const LLSD&)
|
|||
// since last tick?
|
||||
if (mi->second->exited())
|
||||
{
|
||||
// BUG-2707?
|
||||
//LL_INFOS("LLCoros") << "LLCoros: cleaning up coroutine " << mi->first << LL_ENDL;
|
||||
LL_INFOS("LLCoros") << "LLCoros: cleaning up coroutine " << mi->first << LL_ENDL;
|
||||
|
||||
// The erase() call will invalidate its passed iterator value --
|
||||
// so increment mi FIRST -- but pass its original value to
|
||||
|
|
@ -96,8 +95,7 @@ std::string LLCoros::generateDistinctName(const std::string& prefix) const
|
|||
{
|
||||
if (mCoros.find(name) == mCoros.end())
|
||||
{
|
||||
//BUG-2707?
|
||||
//LL_INFOS("LLCoros") << "LLCoros: launching coroutine " << name << LL_ENDL;
|
||||
LL_INFOS("LLCoros") << "LLCoros: launching coroutine " << name << LL_ENDL;
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -201,12 +201,7 @@ namespace {
|
|||
virtual void recordMessage(LLError::ELevel level,
|
||||
const std::string& message)
|
||||
{
|
||||
#if BUG_2707_HUNT
|
||||
llutf16string utf16str =
|
||||
wstring_to_utf16str(utf8str_to_wstring(message));
|
||||
utf16str += '\n';
|
||||
OutputDebugString(utf16str.c_str());
|
||||
#endif
|
||||
LL_WINDOWS_OUTPUT_DEBUG(wstring_to_utf16str(utf8str_to_wstring(message)));
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -283,6 +283,12 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG;
|
|||
#define LL_ENDL llendl
|
||||
#define LL_CONT (*_out)
|
||||
|
||||
#if LL_WINDOWS && defined(_DEBUG)
|
||||
#define LL_WINDOWS_OUTPUT_DEBUG(a) OutputDebugString(utf8str_to_utf16str(a).c_str()), OutputDebugString("\n")
|
||||
#else
|
||||
#define LL_WINDOWS_OUTPUT_DEBUG(a)
|
||||
#endif
|
||||
|
||||
/*
|
||||
Use this construct if you need to do computation in the middle of a
|
||||
message:
|
||||
|
|
|
|||
|
|
@ -570,20 +570,18 @@ void LLReqID::stamp(LLSD& response) const
|
|||
{
|
||||
if (! (response.isUndefined() || response.isMap()))
|
||||
{
|
||||
// BUG-2707?
|
||||
// If 'response' was previously completely empty, it's okay to
|
||||
// turn it into a map. If it was already a map, then it should be
|
||||
// okay to add a key. But if it was anything else (e.g. a scalar),
|
||||
// assigning a ["reqid"] key will DISCARD the previous value,
|
||||
// replacing it with a map. That would be Bad.
|
||||
//LL_INFOS("LLReqID") << "stamp(" << mReqid << ") leaving non-map response unmodified: " << response << LL_ENDL;
|
||||
LL_INFOS("LLReqID") << "stamp(" << mReqid << ") leaving non-map response unmodified: " << response << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
LLSD oldReqid(response["reqid"]);
|
||||
if (! (oldReqid.isUndefined() || llsd_equals(oldReqid, mReqid)))
|
||||
{
|
||||
// BUG-2707?
|
||||
//LL_INFOS("LLReqID") << "stamp(" << mReqid << ") preserving existing [\"reqid\"] value "<< oldReqid << " in response: " << response << LL_ENDL;
|
||||
LL_INFOS("LLReqID") << "stamp(" << mReqid << ") preserving existing [\"reqid\"] value "<< oldReqid << " in response: " << response << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
response["reqid"] = mReqid;
|
||||
|
|
|
|||
|
|
@ -1731,8 +1731,7 @@ void LLPrivateMemoryPool::removeFromHashTable(LLMemoryChunk* chunk)
|
|||
|
||||
void LLPrivateMemoryPool::rehash()
|
||||
{
|
||||
//BUG-2707?
|
||||
//LL_DEBUGS(LLMemory) << "new hash factor: " << mHashFactor << llendl ;
|
||||
LL_DEBUGS("LLMemory") << "new hash factor: " << mHashFactor << llendl ;
|
||||
|
||||
mChunkHashList.clear() ;
|
||||
mChunkHashList.resize(mHashFactor) ;
|
||||
|
|
|
|||
|
|
@ -65,8 +65,7 @@ void LLMetricsImpl::recordEventDetails(const std::string& location,
|
|||
metrics["location"] = location;
|
||||
metrics["stats"] = stats;
|
||||
|
||||
// BUG-2707?
|
||||
//llinfos << "LLMETRICS: " << (LLSDNotationStreamer(metrics)) << llendl;
|
||||
llinfos << "LLMETRICS: " << (LLSDNotationStreamer(metrics)) << llendl;
|
||||
}
|
||||
|
||||
// Store this:
|
||||
|
|
@ -129,8 +128,7 @@ void LLMetricsImpl::printTotals(LLSD metadata)
|
|||
|
||||
out_sd["stats"] = stats;
|
||||
|
||||
// BUG-2707?
|
||||
//llinfos << "LLMETRICS: AGGREGATE: " << LLSDOStreamer<LLSDNotationFormatter>(out_sd) << llendl;
|
||||
llinfos << "LLMETRICS: AGGREGATE: " << LLSDOStreamer<LLSDNotationFormatter>(out_sd) << llendl;
|
||||
}
|
||||
|
||||
LLMetrics::LLMetrics()
|
||||
|
|
|
|||
|
|
@ -1385,7 +1385,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
// Congratulations, we've hit a new low. :-P
|
||||
#if BUG_2707_A_LOWER_KIND_OF_LOW
|
||||
#if _DEBUG
|
||||
LL_INFOS("FrameWatcher") << ' ';
|
||||
if (! prevSize)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -314,13 +314,11 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
|
|||
const F32 TIMEOUT_ADJUSTMENT = 2.0f;
|
||||
mDetail->mByteAccumulator = 0;
|
||||
pump->adjustTimeoutSeconds(TIMEOUT_ADJUSTMENT);
|
||||
// BUG-2707?
|
||||
//lldebugs << "LLURLRequest adjustTimeoutSeconds for request: " << mDetail->mURL << llendl;
|
||||
if (mState == STATE_INITIALIZED)
|
||||
{
|
||||
// BUG-2707?
|
||||
//llinfos << "LLURLRequest adjustTimeoutSeconds called during upload" << llendl;
|
||||
}
|
||||
lldebugs << "LLURLRequest adjustTimeoutSeconds for request: " << mDetail->mURL << llendl;
|
||||
if (mState == STATE_INITIALIZED)
|
||||
{
|
||||
llinfos << "LLURLRequest adjustTimeoutSeconds called during upload" << llendl;
|
||||
}
|
||||
}
|
||||
|
||||
switch(mState)
|
||||
|
|
@ -384,8 +382,7 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
|
|||
context[CONTEXT_REQUEST][CONTEXT_TRANSFERED_BYTES] = mRequestTransferedBytes;
|
||||
context[CONTEXT_RESPONSE][CONTEXT_TRANSFERED_BYTES] = mResponseTransferedBytes;
|
||||
|
||||
// BUG-2707?
|
||||
//lldebugs << this << "Setting context to " << context << llendl;
|
||||
lldebugs << this << "Setting context to " << context << llendl;
|
||||
|
||||
switch(result)
|
||||
{
|
||||
|
|
@ -441,8 +438,7 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
|
|||
eos = true;
|
||||
context[CONTEXT_REQUEST][CONTEXT_TRANSFERED_BYTES] = mRequestTransferedBytes;
|
||||
context[CONTEXT_RESPONSE][CONTEXT_TRANSFERED_BYTES] = mResponseTransferedBytes;
|
||||
// BUG-2707?
|
||||
//lldebugs << this << "Setting context to " << context << llendl;
|
||||
lldebugs << this << "Setting context to " << context << llendl;
|
||||
|
||||
return STATUS_DONE;
|
||||
|
||||
|
|
@ -451,8 +447,7 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
|
|||
context[CONTEXT_REQUEST][CONTEXT_TRANSFERED_BYTES] = mRequestTransferedBytes;
|
||||
context[CONTEXT_RESPONSE][CONTEXT_TRANSFERED_BYTES] = mResponseTransferedBytes;
|
||||
|
||||
// BUG-2707?
|
||||
//lldebugs << this << "Setting context to " << context << llendl;
|
||||
lldebugs << this << "Setting context to " << context << llendl;
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1309,12 +1309,9 @@ bool LLXUIParser::writeSDValue(Parser& parser, const void* val_ptr, name_stack_t
|
|||
void LLXUIParser::parserWarning(const std::string& message)
|
||||
{
|
||||
#ifdef LL_WINDOWS
|
||||
#if BUG_2707_HUNT
|
||||
// use Visual Studo friendly formatting of output message for easy access to originating xml
|
||||
llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), mCurReadNode->getLineNumber(), message.c_str()).c_str());
|
||||
utf16str += '\n';
|
||||
OutputDebugString(utf16str.c_str());
|
||||
#endif
|
||||
LL_WINDOWS_OUTPUT_DEBUG(utf16str);
|
||||
#else
|
||||
Parser::parserWarning(message);
|
||||
#endif
|
||||
|
|
@ -1323,11 +1320,8 @@ void LLXUIParser::parserWarning(const std::string& message)
|
|||
void LLXUIParser::parserError(const std::string& message)
|
||||
{
|
||||
#ifdef LL_WINDOWS
|
||||
#if BUG_2707_HUNT
|
||||
llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), mCurReadNode->getLineNumber(), message.c_str()).c_str());
|
||||
utf16str += '\n';
|
||||
OutputDebugString(utf16str.c_str());
|
||||
#endif
|
||||
LL_WINDOWS_OUTPUT_DEBUG(utf16str);
|
||||
#else
|
||||
Parser::parserError(message);
|
||||
#endif
|
||||
|
|
@ -1644,12 +1638,9 @@ bool LLSimpleXUIParser::processText()
|
|||
void LLSimpleXUIParser::parserWarning(const std::string& message)
|
||||
{
|
||||
#ifdef LL_WINDOWS
|
||||
#if BUG_2707_HUNT
|
||||
// use Visual Studo friendly formatting of output message for easy access to originating xml
|
||||
llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), LINE_NUMBER_HERE, message.c_str()).c_str());
|
||||
utf16str += '\n';
|
||||
OutputDebugString(utf16str.c_str());
|
||||
#endif
|
||||
LL_WINDOWS_OUTPUT_DEBUG(utf16str);
|
||||
#else
|
||||
Parser::parserWarning(message);
|
||||
#endif
|
||||
|
|
@ -1658,11 +1649,8 @@ void LLSimpleXUIParser::parserWarning(const std::string& message)
|
|||
void LLSimpleXUIParser::parserError(const std::string& message)
|
||||
{
|
||||
#ifdef LL_WINDOWS
|
||||
#if BUG_2707_HUNT
|
||||
llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), LINE_NUMBER_HERE, message.c_str()).c_str());
|
||||
utf16str += '\n';
|
||||
OutputDebugString(utf16str.c_str());
|
||||
#endif
|
||||
LL_WINDOWS_OUTPUT_DEBUG(utf16str);
|
||||
#else
|
||||
Parser::parserError(message);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -56,22 +56,23 @@ void ll_winmm_shim_initialize(){
|
|||
// grab winmm.dll from system path, where it should live
|
||||
wsprintf(dll_path, "%s\\winmm.dll", system_path);
|
||||
HMODULE winmm_handle = ::LoadLibrary(dll_path);
|
||||
|
||||
|
||||
if (winmm_handle != NULL)
|
||||
{ // we have a dll, let's get out pointers!
|
||||
initialized = true;
|
||||
init_function_pointers(winmm_handle);
|
||||
#if BUG_2707_HUNT
|
||||
#if defined(_DEBUG)
|
||||
::OutputDebugStringA("WINMM_SHIM.DLL: real winmm.dll initialized successfully\n");
|
||||
#endif
|
||||
}
|
||||
#if defined(_DEBUG)
|
||||
else
|
||||
{
|
||||
// failed to initialize real winmm.dll
|
||||
#if BUG_2707_HUNT
|
||||
::OutputDebugStringA("WINMM_SHIM.DLL: Failed to initialize real winmm.dll\n");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
LeaveCriticalSection(&sCriticalSection);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,8 +117,7 @@ private:
|
|||
|
||||
void LLLogin::Impl::connect(const std::string& uri, const LLSD& login_params)
|
||||
{
|
||||
// BUG-2707?
|
||||
//LL_DEBUGS("LLLogin") << " connect with uri '" << uri << "', login_params " << login_params << LL_ENDL;
|
||||
LL_DEBUGS("LLLogin") << " connect with uri '" << uri << "', login_params " << login_params << LL_ENDL;
|
||||
|
||||
// Launch a coroutine with our login_() method. Run the coroutine until
|
||||
// its first wait; at that point, return here.
|
||||
|
|
@ -126,8 +125,7 @@ void LLLogin::Impl::connect(const std::string& uri, const LLSD& login_params)
|
|||
LLCoros::instance().launch("LLLogin::Impl::login_",
|
||||
boost::bind(&Impl::login_, this, _1, uri, login_params));
|
||||
|
||||
// BUG-2707?
|
||||
//LL_DEBUGS("LLLogin") << " connected with uri '" << uri << "', login_params " << login_params << LL_ENDL;
|
||||
LL_DEBUGS("LLLogin") << " connected with uri '" << uri << "', login_params " << login_params << LL_ENDL;
|
||||
}
|
||||
|
||||
void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_params)
|
||||
|
|
@ -142,9 +140,8 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
|
|||
//}
|
||||
//
|
||||
//
|
||||
// BUG-2707?
|
||||
// LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self)
|
||||
// << " with uri '" << uri << "', parameters " << printable_params << LL_ENDL;
|
||||
LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self)
|
||||
<< " with uri '" << uri << "', parameters " << printable_params << LL_ENDL;
|
||||
|
||||
// Arriving in SRVRequest state
|
||||
LLEventStream replyPump("SRVreply", true);
|
||||
|
|
@ -152,25 +149,24 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
|
|||
|
||||
LLSD rewrittenURIs;
|
||||
{
|
||||
LLEventTimeout filter(replyPump);
|
||||
sendProgressEvent("offline", "srvrequest");
|
||||
LLEventTimeout filter(replyPump);
|
||||
sendProgressEvent("offline", "srvrequest");
|
||||
|
||||
// Request SRV record.
|
||||
// BUG-2707?
|
||||
//LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL;
|
||||
// Request SRV record.
|
||||
LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL;
|
||||
|
||||
|
||||
// *NOTE:Mani - Completely arbitrary default timeout value for SRV request.
|
||||
// *NOTE:Mani - Completely arbitrary default timeout value for SRV request.
|
||||
F32 seconds_to_timeout = 5.0f;
|
||||
if(login_params.has("cfg_srv_timeout"))
|
||||
{
|
||||
seconds_to_timeout = login_params["cfg_srv_timeout"].asReal();
|
||||
}
|
||||
|
||||
// If the SRV request times out (e.g. EXT-3934), simulate response: an
|
||||
// array containing our original URI.
|
||||
LLSD fakeResponse(LLSD::emptyArray());
|
||||
fakeResponse.append(uri);
|
||||
// If the SRV request times out (e.g. EXT-3934), simulate response: an
|
||||
// array containing our original URI.
|
||||
LLSD fakeResponse(LLSD::emptyArray());
|
||||
fakeResponse.append(uri);
|
||||
|
||||
filter.eventAfter(seconds_to_timeout, fakeResponse);
|
||||
|
||||
std::string srv_pump_name = "LLAres";
|
||||
|
|
@ -180,13 +176,13 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
|
|||
}
|
||||
|
||||
// Make request
|
||||
LLSD request;
|
||||
request["op"] = "rewriteURI";
|
||||
request["uri"] = uri;
|
||||
request["reply"] = replyPump.getName();
|
||||
rewrittenURIs = postAndWait(self, request, srv_pump_name, filter);
|
||||
// EXP-772: If rewrittenURIs fail, try original URI as a fallback.
|
||||
rewrittenURIs.append(uri);
|
||||
LLSD request;
|
||||
request["op"] = "rewriteURI";
|
||||
request["uri"] = uri;
|
||||
request["reply"] = replyPump.getName();
|
||||
rewrittenURIs = postAndWait(self, request, srv_pump_name, filter);
|
||||
// EXP-772: If rewrittenURIs fail, try original URI as a fallback.
|
||||
rewrittenURIs.append(uri);
|
||||
} // we no longer need the filter
|
||||
|
||||
LLEventPump& xmlrpcPump(LLEventPumps::instance().obtain("LLXMLRPCTransaction"));
|
||||
|
|
|
|||
|
|
@ -207,7 +207,6 @@ void LLUpdaterServiceImpl::initialize(const std::string& url,
|
|||
memcpy(mUniqueId, uniqueid, MD5HEX_STR_SIZE);
|
||||
mWillingToTest = willing_to_test;
|
||||
|
||||
#if BUG_2707
|
||||
LL_DEBUGS("UpdaterService")
|
||||
<< "\n url: " << mUrl
|
||||
<< "\n path: " << mPath
|
||||
|
|
@ -216,7 +215,6 @@ void LLUpdaterServiceImpl::initialize(const std::string& url,
|
|||
<< "\n uniqueid: " << mUniqueId
|
||||
<< "\n willing: " << ( mWillingToTest ? "testok" : "testno" )
|
||||
<< LL_ENDL;
|
||||
#endif
|
||||
}
|
||||
|
||||
void LLUpdaterServiceImpl::setCheckPeriod(unsigned int seconds)
|
||||
|
|
@ -435,14 +433,13 @@ void LLUpdaterServiceImpl::response(LLSD const & content)
|
|||
LLURI url(content["url"].asString());
|
||||
std::string more_info = content["more_info"].asString();
|
||||
|
||||
#if BUG_2707
|
||||
LL_DEBUGS("UpdaterService")
|
||||
<< "Starting download of "
|
||||
<< ( required ? "required" : "optional" ) << " update"
|
||||
<< " to channel '" << mNewChannel << "' version " << mNewVersion
|
||||
<< " more info '" << more_info << "'"
|
||||
<< LL_ENDL;
|
||||
#endif
|
||||
|
||||
mUpdateDownloader.download(url, content["hash"].asString(), mNewChannel, mNewVersion, more_info, required);
|
||||
}
|
||||
}
|
||||
|
|
@ -466,7 +463,6 @@ void LLUpdaterServiceImpl::downloadComplete(LLSD const & data)
|
|||
payload["info_url"] = data["info_url"];
|
||||
event["payload"] = payload;
|
||||
|
||||
#if BUG_2707
|
||||
LL_DEBUGS("UpdaterService")
|
||||
<< "Download complete "
|
||||
<< ( data["required"].asBoolean() ? "required" : "optional" )
|
||||
|
|
@ -474,7 +470,6 @@ void LLUpdaterServiceImpl::downloadComplete(LLSD const & data)
|
|||
<< " version " << mNewVersion
|
||||
<< " info " << data["info_url"].asString()
|
||||
<< LL_ENDL;
|
||||
#endif
|
||||
|
||||
LLEventPumps::instance().obtain("mainlooprepeater").post(event);
|
||||
|
||||
|
|
@ -551,8 +546,7 @@ bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event)
|
|||
// Check for failed install.
|
||||
if(LLFile::isfile(ll_install_failed_marker_path()))
|
||||
{
|
||||
// BUG-2707?
|
||||
//LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;;
|
||||
LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;;
|
||||
int requiredValue = 0;
|
||||
{
|
||||
llifstream stream(ll_install_failed_marker_path());
|
||||
|
|
|
|||
Loading…
Reference in New Issue