summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon')
-rwxr-xr-xindra/llcommon/llapp.cpp13
-rwxr-xr-xindra/llcommon/llavatarname.cpp10
-rwxr-xr-xindra/llcommon/llcoros.cpp1
-rwxr-xr-xindra/llcommon/llerror.h8
-rwxr-xr-xindra/llcommon/llerrorthread.cpp2
-rwxr-xr-xindra/llcommon/lleventcoro.h34
-rwxr-xr-xindra/llcommon/llevents.cpp6
-rwxr-xr-xindra/llcommon/llmemory.cpp24
-rwxr-xr-xindra/llcommon/llprocess.cpp23
-rwxr-xr-xindra/llcommon/llsys.cpp6
10 files changed, 69 insertions, 58 deletions
diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp
index b6581c714c..67a98d5fb8 100755
--- a/indra/llcommon/llapp.cpp
+++ b/indra/llcommon/llapp.cpp
@@ -218,7 +218,8 @@ bool LLApp::parseCommandOptions(int argc, char** argv)
{
if(argv[ii][0] != '-')
{
- lldebugs << "Did not find option identifier while parsing token: "<< argv[ii] << llendl;
+ llinfos << "Did not find option identifier while parsing token: "
+ << argv[ii] << llendl;
return false;
}
int offset = 1;
@@ -377,7 +378,7 @@ void LLApp::startErrorThread()
//
if(!mThreadErrorp)
{
-// llinfos << "Starting error thread" << llendl;
+ llinfos << "Starting error thread" << llendl;
mThreadErrorp = new LLErrorThread();
mThreadErrorp->setUserData((void *) this);
mThreadErrorp->start();
@@ -895,7 +896,7 @@ bool unix_minidump_callback(const google_breakpad::MinidumpDescriptor& minidump_
--remaining;
}
- //llinfos << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << llendl;
+ llinfos << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << llendl;
LLApp::runErrorHandler();
#ifndef LL_RELEASE_FOR_DOWNLOAD
@@ -941,7 +942,7 @@ bool unix_post_minidump_callback(const char *dump_dir,
strncpy(path, ".dmp", remaining);
}
- //llinfos << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << llendl;
+ llinfos << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << llendl;
LLApp::runErrorHandler();
#ifndef LL_RELEASE_FOR_DOWNLOAD
@@ -984,12 +985,12 @@ bool windows_post_minidump_callback(const wchar_t* dump_path,
strncpy(path, ".dmp", remaining);
}
- //llinfos << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << llendl;
+ llinfos << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << llendl;
// *NOTE:Mani - this code is stolen from LLApp, where its never actually used.
//OSMessageBox("Attach Debugger Now", "Error", OSMB_OK);
// *TODO: Translate the signals/exceptions into cross-platform stuff
// Windows implementation
- //llinfos << "Entering Windows Exception Handler..." << llendl;
+ llinfos << "Entering Windows Exception Handler..." << llendl;
if (LLApp::isError())
{
diff --git a/indra/llcommon/llavatarname.cpp b/indra/llcommon/llavatarname.cpp
index aaa7f1212f..642bd82e90 100755
--- a/indra/llcommon/llavatarname.cpp
+++ b/indra/llcommon/llavatarname.cpp
@@ -230,10 +230,10 @@ std::string LLAvatarName::getUserName() const
void LLAvatarName::dump() const
{
- //LL_DEBUGS("AvNameCache") << "LLAvatarName: "
- // << "user '" << mUsername << "' "
- // << "display '" << mDisplayName << "' "
- // << "expires in " << mExpires - LLFrameTimer::getTotalSeconds() << " seconds"
- // << LL_ENDL;
+ LL_DEBUGS("AvNameCache") << "LLAvatarName: "
+ << "user '" << mUsername << "' "
+ << "display '" << mDisplayName << "' "
+ << "expires in " << mExpires - LLFrameTimer::getTotalSeconds() << " seconds"
+ << LL_ENDL;
}
diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp
index 1ccb33b259..baaddcaed1 100755
--- a/indra/llcommon/llcoros.cpp
+++ b/indra/llcommon/llcoros.cpp
@@ -61,7 +61,6 @@ bool LLCoros::cleanup(const LLSD&)
if (mi->second->exited())
{
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
// erase(). This is what postincrement is all about.
diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h
index a724c0720f..08a5cd26df 100755
--- a/indra/llcommon/llerror.h
+++ b/indra/llcommon/llerror.h
@@ -283,6 +283,14 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG;
#define LL_ENDL llendl
#define LL_CONT (*_out)
+// Short story: We don't want to enable this in release builds.
+//
+// Long story: ...because this call generates C++ exceptions
+// which are handled and fine under the debugger, but instant death should they occur from
+// within a coroutine's stackframe due to inherent limitations of Windows 32-bit SEH
+// interacting with the fiber-based coroutine support used by boost.
+//
+// gmad BUG-2707/MAINT-2740
#if LL_WINDOWS && defined(_DEBUG)
#define LL_WINDOWS_OUTPUT_DEBUG(a) OutputDebugString(utf8str_to_utf16str(a).c_str()), OutputDebugString("\n")
#else
diff --git a/indra/llcommon/llerrorthread.cpp b/indra/llcommon/llerrorthread.cpp
index 4a0c8ef342..950fcd6e83 100755
--- a/indra/llcommon/llerrorthread.cpp
+++ b/indra/llcommon/llerrorthread.cpp
@@ -106,7 +106,7 @@ void LLErrorThread::run()
// This thread sits and waits for the sole purpose
// of waiting for the signal/exception handlers to flag the
// application state as APP_STATUS_ERROR.
- //llinfos << "thread_error - Waiting for an error" << llendl;
+ llinfos << "thread_error - Waiting for an error" << llendl;
S32 counter = 0;
#if !LL_WINDOWS
diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h
index f25c313920..a42af63b65 100755
--- a/indra/llcommon/lleventcoro.h
+++ b/indra/llcommon/lleventcoro.h
@@ -220,21 +220,21 @@ LLSD postAndWait(SELF& self, const LLSD& event, const LLEventPumpOrPumpName& req
// request event.
LLSD modevent(event);
LLEventDetail::storeToLLSDPath(modevent, replyPumpNamePath, replyPump.getPump().getName());
- //LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName
- // << " posting to " << requestPump.getPump().getName()
- // << LL_ENDL;
+ LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName
+ << " posting to " << requestPump.getPump().getName()
+ << LL_ENDL;
// *NOTE:Mani - Removed because modevent could contain user's hashed passwd.
// << ": " << modevent << LL_ENDL;
requestPump.getPump().post(modevent);
}
- //LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName
- // << " about to wait on LLEventPump " << replyPump.getPump().getName()
- // << LL_ENDL;
+ LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName
+ << " about to wait on LLEventPump " << replyPump.getPump().getName()
+ << LL_ENDL;
// trying to dereference ("resolve") the future makes us wait for it
LLSD value(*future);
- //LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName
- // << " resuming with " << value << LL_ENDL;
+ LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName
+ << " resuming with " << value << LL_ENDL;
// returning should disconnect the connection
return value;
}
@@ -351,19 +351,19 @@ LLEventWithID postAndWait2(SELF& self, const LLSD& event,
replyPump0.getPump().getName());
LLEventDetail::storeToLLSDPath(modevent, replyPump1NamePath,
replyPump1.getPump().getName());
- //LL_DEBUGS("lleventcoro") << "postAndWait2(): coroutine " << name
- // << " posting to " << requestPump.getPump().getName()
- // << ": " << modevent << LL_ENDL;
+ LL_DEBUGS("lleventcoro") << "postAndWait2(): coroutine " << name
+ << " posting to " << requestPump.getPump().getName()
+ << ": " << modevent << LL_ENDL;
requestPump.getPump().post(modevent);
}
- //LL_DEBUGS("lleventcoro") << "postAndWait2(): coroutine " << name
- // << " about to wait on LLEventPumps " << replyPump0.getPump().getName()
- // << ", " << replyPump1.getPump().getName() << LL_ENDL;
+ LL_DEBUGS("lleventcoro") << "postAndWait2(): coroutine " << name
+ << " about to wait on LLEventPumps " << replyPump0.getPump().getName()
+ << ", " << replyPump1.getPump().getName() << LL_ENDL;
// trying to dereference ("resolve") the future makes us wait for it
LLEventWithID value(*future);
- //LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << name
- // << " resuming with (" << value.first << ", " << value.second << ")"
- // << LL_ENDL;
+ LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << name
+ << " resuming with (" << value.first << ", " << value.second << ")"
+ << LL_ENDL;
// returning should disconnect both connections
return value;
}
diff --git a/indra/llcommon/llevents.cpp b/indra/llcommon/llevents.cpp
index 49c8178b42..0855180dcd 100755
--- a/indra/llcommon/llevents.cpp
+++ b/indra/llcommon/llevents.cpp
@@ -575,13 +575,15 @@ void LLReqID::stamp(LLSD& response) const
// 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)))
{
- 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;
diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp
index 44ba84c160..70ad10ad55 100755
--- a/indra/llcommon/llmemory.cpp
+++ b/indra/llcommon/llmemory.cpp
@@ -987,27 +987,27 @@ void LLPrivateMemoryPool::LLMemoryChunk::dump()
}
#endif
#if 0
- LL_DEBUGS(LLMemory) << "---------------------------" << llendl ;
- LL_DEBUGS(LLMemory) << "Chunk buffer: " << (U32)getBuffer() << " size: " << getBufferSize() << llendl ;
+ llinfos << "---------------------------" << llendl ;
+ llinfos << "Chunk buffer: " << (U32)getBuffer() << " size: " << getBufferSize() << llendl ;
- LL_DEBUGS(LLMemory) << "available blocks ... " << llendl ;
+ llinfos << "available blocks ... " << llendl ;
for(S32 i = 0 ; i < mBlockLevels ; i++)
{
LLMemoryBlock* blk = mAvailBlockList[i] ;
while(blk)
{
- LL_DEBUGS(LLMemory) << "blk buffer " << (U32)blk->getBuffer() << " size: " << blk->getBufferSize() << llendl ;
+ llinfos << "blk buffer " << (U32)blk->getBuffer() << " size: " << blk->getBufferSize() << llendl ;
blk = blk->mNext ;
}
}
- LL_DEBUGS(LLMemory) << "free blocks ... " << llendl ;
+ llinfos << "free blocks ... " << llendl ;
for(S32 i = 0 ; i < mPartitionLevels ; i++)
{
LLMemoryBlock* blk = mFreeSpaceList[i] ;
while(blk)
{
- LL_DEBUGS(LLMemory) << "blk buffer " << (U32)blk->getBuffer() << " size: " << blk->getBufferSize() << llendl ;
+ llinfos << "blk buffer " << (U32)blk->getBuffer() << " size: " << blk->getBufferSize() << llendl ;
blk = blk->mNext ;
}
}
@@ -1731,7 +1731,7 @@ void LLPrivateMemoryPool::removeFromHashTable(LLMemoryChunk* chunk)
void LLPrivateMemoryPool::rehash()
{
- LL_DEBUGS("LLMemory") << "new hash factor: " << mHashFactor << llendl ;
+ llinfos << "new hash factor: " << mHashFactor << llendl ;
mChunkHashList.clear() ;
mChunkHashList.resize(mHashFactor) ;
@@ -1848,7 +1848,7 @@ LLPrivateMemoryPoolManager::~LLPrivateMemoryPoolManager()
S32 k = 0 ;
for(mem_allocation_info_t::iterator iter = sMemAllocationTracker.begin() ; iter != sMemAllocationTracker.end() ; ++iter)
{
- LL_DEBUGS(LLMemory) << k++ << ", " << (U32)iter->first << " : " << iter->second << llendl ;
+ llinfos << k++ << ", " << (U32)iter->first << " : " << iter->second << llendl ;
}
sMemAllocationTracker.clear() ;
}
@@ -2190,8 +2190,8 @@ void LLPrivateMemoryPoolTester::testAndTime(U32 size, U32 times)
{
LLTimer timer ;
- LL_DEBUGS(LLMemory) << " -**********************- " << llendl ;
- LL_DEBUGS(LLMemory) << "test size: " << size << " test times: " << times << llendl ;
+ llinfos << " -**********************- " << llendl ;
+ llinfos << "test size: " << size << " test times: " << times << llendl ;
timer.reset() ;
char** p = new char*[times] ;
@@ -2212,7 +2212,7 @@ void LLPrivateMemoryPoolTester::testAndTime(U32 size, U32 times)
FREE_MEM(sPool, p[i]) ;
p[i] = NULL ;
}
- LL_DEBUGS(LLMemory) << "time spent using customized memory pool: " << timer.getElapsedTimeF32() << llendl ;
+ llinfos << "time spent using customized memory pool: " << timer.getElapsedTimeF32() << llendl ;
timer.reset() ;
@@ -2232,7 +2232,7 @@ void LLPrivateMemoryPoolTester::testAndTime(U32 size, U32 times)
::delete[] p[i] ;
p[i] = NULL ;
}
- LL_DEBUGS(LLMemory) << "time spent using standard allocator/de-allocator: " << timer.getElapsedTimeF32() << llendl ;
+ llinfos << "time spent using standard allocator/de-allocator: " << timer.getElapsedTimeF32() << llendl ;
delete[] p;
}
diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp
index 59298366a3..715df36f39 100755
--- a/indra/llcommon/llprocess.cpp
+++ b/indra/llcommon/llprocess.cpp
@@ -81,7 +81,7 @@ public:
// incrementing, listen on "mainloop".
if (mCount++ == 0)
{
- //LL_DEBUGS("LLProcess") << "listening on \"mainloop\"" << LL_ENDL;
+ LL_DEBUGS("LLProcess") << "listening on \"mainloop\"" << LL_ENDL;
mConnection = LLEventPumps::instance().obtain("mainloop")
.listen("LLProcessListener", boost::bind(&LLProcessListener::tick, this, _1));
}
@@ -93,7 +93,7 @@ public:
// stop listening on "mainloop".
if (--mCount == 0)
{
- //LL_DEBUGS("LLProcess") << "disconnecting from \"mainloop\"" << LL_ENDL;
+ LL_DEBUGS("LLProcess") << "disconnecting from \"mainloop\"" << LL_ENDL;
mConnection.disconnect();
}
}
@@ -118,7 +118,7 @@ private:
// centralize such calls, using "mainloop" to ensure it happens once
// per frame, and refcounting running LLProcess objects to remain
// registered only while needed.
- //LL_DEBUGS("LLProcess") << "calling apr_proc_other_child_refresh_all()" << LL_ENDL;
+ LL_DEBUGS("LLProcess") << "calling apr_proc_other_child_refresh_all()" << LL_ENDL;
apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING);
return false;
}
@@ -216,13 +216,13 @@ public:
remainptr += written;
remainlen -= written;
- //char msgbuf[512];
- //LL_DEBUGS("LLProcess") << "wrote " << written << " of " << towrite
- // << " bytes to " << mDesc
- // << " (original " << total << "),"
- // << " code " << err << ": "
- // << apr_strerror(err, msgbuf, sizeof(msgbuf))
- // << LL_ENDL;
+ char msgbuf[512];
+ LL_DEBUGS("LLProcess") << "wrote " << written << " of " << towrite
+ << " bytes to " << mDesc
+ << " (original " << total << "),"
+ << " code " << err << ": "
+ << apr_strerror(err, msgbuf, sizeof(msgbuf))
+ << LL_ENDL;
// The parent end of this pipe is nonblocking. If we weren't able
// to write everything we wanted, don't keep banging on it -- that
@@ -738,7 +738,8 @@ LLProcess::LLProcess(const LLSDOrParams& params):
{
mPipes.replace(i, new ReadPipeImpl(desc, pipe, FILESLOT(i)));
}
- LL_DEBUGS("LLProcess") << "Instantiating " << typeid(mPipes[i]).name() << "('" << desc << "')" << LL_ENDL;
+ LL_DEBUGS("LLProcess") << "Instantiating " << typeid(mPipes[i]).name()
+ << "('" << desc << "')" << LL_ENDL;
}
}
diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index 5d3595a66f..418c5763f8 100755
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -1032,9 +1032,9 @@ LLMemoryInfo& LLMemoryInfo::refresh()
{
mStatsMap = loadStatsMap();
-// LL_DEBUGS("LLMemoryInfo") << "Populated mStatsMap:\n";
-// LLSDSerialize::toPrettyXML(mStatsMap, LL_CONT);
-// LL_ENDL;
+ LL_DEBUGS("LLMemoryInfo") << "Populated mStatsMap:\n";
+ LLSDSerialize::toPrettyXML(mStatsMap, LL_CONT);
+ LL_ENDL;
return *this;
}