diff options
| author | nat-goodspeed <nat@lindenlab.com> | 2023-05-04 13:39:59 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-04 13:39:59 -0400 | 
| commit | 66413dfa383b5f74bce7be498eb8f1dd3ce54db7 (patch) | |
| tree | dca9be58e43a6c09664e05cc55771e9769832e92 /indra | |
| parent | a9dca4577337037f1b4a62713927871666014043 (diff) | |
| parent | e3f3eea825f9812afe2e79c0669170173be68793 (diff) | |
Merge pull request #203 from secondlife/DRTVWR-559-zapfunc
DRTVWR-559: Replace debugLoggingEnabled() function with LL_DEBUGS().
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/FMODSTUDIO.cmake | 2 | ||||
| -rw-r--r-- | indra/llcommon/llcallstack.h | 12 | ||||
| -rw-r--r-- | indra/llcommon/llerror.cpp | 15 | ||||
| -rw-r--r-- | indra/llcommon/llerror.h | 24 | ||||
| -rw-r--r-- | indra/llwindow/llwindowwin32.cpp | 124 | ||||
| -rw-r--r-- | indra/newview/llappviewerwin32.cpp | 36 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.h | 1 | ||||
| -rw-r--r-- | indra/newview/llviewerstats.cpp | 11 | 
8 files changed, 95 insertions, 130 deletions
| diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index c5b21ac4e5..9a1cdff6cb 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -2,7 +2,7 @@  include_guard() -# FMODSTUDIO can be set when launching the make using the argument -DFMODSTUDIO:BOOL=ON +# FMODSTUDIO can be set when launching the make using the argument -DUSE_FMODSTUDIO:BOOL=ON  # When building using proprietary binaries though (i.e. having access to LL private servers),  # we always build with FMODSTUDIO.  if (INSTALL_PROPRIETARY) diff --git a/indra/llcommon/llcallstack.h b/indra/llcommon/llcallstack.h index 5acf04a49f..d5a2b7b157 100644 --- a/indra/llcommon/llcallstack.h +++ b/indra/llcommon/llcallstack.h @@ -79,9 +79,9 @@ struct LLContextStatus  LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLContextStatus& context_status); -#define dumpStack(tag) \ -    if (debugLoggingEnabled(tag)) \ -    { \ -        LLCallStack cs; \ -        LL_DEBUGS(tag) << "STACK:\n" << "====================\n" << cs << "====================" << LL_ENDL; \ -    } +#define dumpStack(tag)                          \ +    LL_DEBUGS(tag) << "STACK:\n"                \ +                   << "====================\n"  \ +                   << LLCallStack()             \ +                   << "===================="    \ +                   << LL_ENDL; diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index a7794cc045..5aa8558878 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -1609,20 +1609,5 @@ namespace LLError      }  } -bool debugLoggingEnabled(const std::string& tag) -{ -    LL_PROFILE_ZONE_SCOPED_CATEGORY_APP; -    LLMutexTrylock lock(getMutex<LOG_MUTEX>(), 5); -    if (!lock.isLocked()) -    { -        return false; -    } - -    SettingsConfigPtr s = Globals::getInstance()->getSettingsConfig(); -    LLError::ELevel level = LLError::LEVEL_DEBUG; -    bool res = checkLevelMap(s->mTagLevelMap, tag, level); -    return res; -} - diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index b7dec3cb7f..08eb323c4a 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -467,7 +467,29 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG;  		LLError::CallSite& _site(_sites[which]);                        \  		lllog_test_() -// Check at run-time whether logging is enabled, without generating output +/* +// Check at run-time whether logging is enabled, without generating output. +Resist the temptation to add a function like this because it incurs the +expense of locking and map-searching every time control reaches it.  bool debugLoggingEnabled(const std::string& tag); +Instead of: + +if debugLoggingEnabled("SomeTag") +{ +    // ... presumably expensive operation ... +    LL_DEBUGS("SomeTag") << ... << LL_ENDL; +} + +Use this: + +LL_DEBUGS("SomeTag"); +// ... presumably expensive operation ... +LL_CONT << ...; +LL_ENDL; + +LL_DEBUGS("SomeTag") performs the locking and map-searching ONCE, then caches +the result in a static variable. +*/  +  #endif // LL_LLERROR_H diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index de2188efb2..43bef5ff68 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -2308,8 +2308,6 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_      LLWindowWin32* window_imp = (LLWindowWin32*)GetWindowLongPtr(h_wnd, GWLP_USERDATA); -    bool debug_window_proc = false; // gDebugWindowProc || debugLoggingEnabled("Window"); -      if (NULL != window_imp)      {          // Juggle to make sure we can get negative positions for when @@ -2336,11 +2334,8 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_DEVICECHANGE:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_DEVICECHANGE"); -            if (debug_window_proc) -            { -                LL_INFOS("Window") << "  WM_DEVICECHANGE: wParam=" << w_param -                    << "; lParam=" << l_param << LL_ENDL; -            } +            LL_INFOS("Window") << "  WM_DEVICECHANGE: wParam=" << w_param +                << "; lParam=" << l_param << LL_ENDL;              if (w_param == DBT_DEVNODES_CHANGED || w_param == DBT_DEVICEARRIVAL)              {                  WINDOW_IMP_POST(window_imp->mCallbacks->handleDeviceChange(window_imp)); @@ -2404,14 +2399,11 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_                      BOOL activating = (BOOL)w_param;                      BOOL minimized = window_imp->getMinimized(); -                    if (debug_window_proc) -                    { -                        LL_INFOS("Window") << "WINDOWPROC ActivateApp " -                            << " activating " << S32(activating) -                            << " minimized " << S32(minimized) -                            << " fullscreen " << S32(window_imp->mFullscreen) -                            << LL_ENDL; -                    } +                    LL_INFOS("Window") << "WINDOWPROC ActivateApp " +                        << " activating " << S32(activating) +                        << " minimized " << S32(minimized) +                        << " fullscreen " << S32(window_imp->mFullscreen) +                        << LL_ENDL;                      if (window_imp->mFullscreen)                      { @@ -2456,13 +2448,10 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_                      // JC - I'm not sure why, but if we don't report that we handled the                       // WM_ACTIVATE message, the WM_ACTIVATEAPP messages don't work                       // properly when we run fullscreen. -                    if (debug_window_proc) -                    { -                        LL_INFOS("Window") << "WINDOWPROC Activate " -                            << " activating " << S32(activating) -                            << " minimized " << S32(minimized) -                            << LL_ENDL; -                    } +                    LL_INFOS("Window") << "WINDOWPROC Activate " +                        << " activating " << S32(activating) +                        << " minimized " << S32(minimized) +                        << LL_ENDL;                  });              break; @@ -2541,12 +2530,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_                      window_imp->mRawLParam = l_param;                      { -                        if (debug_window_proc) -                        { -                            LL_INFOS("Window") << "Debug WindowProc WM_KEYDOWN " -                                << " key " << S32(w_param) -                                << LL_ENDL; -                        } +                        LL_INFOS("Window") << "Debug WindowProc WM_KEYDOWN " +                            << " key " << S32(w_param) +                            << LL_ENDL;                          gKeyboard->handleKeyDown(w_param, mask);                      } @@ -2571,12 +2557,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_                  {                      LL_RECORD_BLOCK_TIME(FTM_KEYHANDLER); -                    if (debug_window_proc) -                    { -                        LL_INFOS("Window") << "Debug WindowProc WM_KEYUP " -                            << " key " << S32(w_param) -                            << LL_ENDL; -                    } +                    LL_INFOS("Window") << "Debug WindowProc WM_KEYUP " +                        << " key " << S32(w_param) +                        << LL_ENDL;                      gKeyboard->handleKeyUp(w_param, mask);                  }              }); @@ -2586,10 +2569,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_IME_SETCONTEXT:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_IME_SETCONTEXT"); -            if (debug_window_proc) -            { -                LL_INFOS("Window") << "WM_IME_SETCONTEXT" << LL_ENDL; -            } +            LL_INFOS("Window") << "WM_IME_SETCONTEXT" << LL_ENDL;              if (LLWinImm::isAvailable() && window_imp->mPreeditor)              {                  l_param &= ~ISC_SHOWUICOMPOSITIONWINDOW; @@ -2600,10 +2580,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_IME_STARTCOMPOSITION:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_IME_STARTCOMPOSITION"); -            if (debug_window_proc) -            { -                LL_INFOS() << "WM_IME_STARTCOMPOSITION" << LL_ENDL; -            } +            LL_INFOS("Window") << "WM_IME_STARTCOMPOSITION" << LL_ENDL;              if (LLWinImm::isAvailable() && window_imp->mPreeditor)              {                  WINDOW_IMP_POST(window_imp->handleStartCompositionMessage()); @@ -2614,10 +2591,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_IME_ENDCOMPOSITION:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_IME_ENDCOMPOSITION"); -            if (debug_window_proc) -            { -                LL_INFOS() << "WM_IME_ENDCOMPOSITION" << LL_ENDL; -            } +            LL_INFOS("Window") << "WM_IME_ENDCOMPOSITION" << LL_ENDL;              if (LLWinImm::isAvailable() && window_imp->mPreeditor)              {                  return 0; @@ -2627,10 +2601,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_IME_COMPOSITION:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_IME_COMPOSITION"); -            if (debug_window_proc) -            { -                LL_INFOS() << "WM_IME_COMPOSITION" << LL_ENDL; -            } +            LL_INFOS("Window") << "WM_IME_COMPOSITION" << LL_ENDL;              if (LLWinImm::isAvailable() && window_imp->mPreeditor)              {                  WINDOW_IMP_POST(window_imp->handleCompositionMessage(l_param)); @@ -2641,10 +2612,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_IME_REQUEST:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_IME_REQUEST"); -            if (debug_window_proc) -            { -                LL_INFOS() << "WM_IME_REQUEST" << LL_ENDL; -            } +            LL_INFOS("Window") << "WM_IME_REQUEST" << LL_ENDL;              if (LLWinImm::isAvailable() && window_imp->mPreeditor)              {                  LRESULT result; @@ -2673,12 +2641,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_                      // it is worth trying.  The good old WM_CHAR works just fine even for supplementary                      // characters.  We just need to take care of surrogate pairs sent as two WM_CHAR's                      // by ourselves.  It is not that tough.  -- Alissa Sabre @ SL -                    if (debug_window_proc) -                    { -                        LL_INFOS("Window") << "Debug WindowProc WM_CHAR " -                            << " key " << S32(w_param) -                            << LL_ENDL; -                    } +                    LL_INFOS("Window") << "Debug WindowProc WM_CHAR " +                        << " key " << S32(w_param) +                        << LL_ENDL;                      // Even if LLWindowCallbacks::handleUnicodeChar(llwchar, BOOL) returned FALSE,                      // we *did* processed the event, so I believe we should not pass it to DefWindowProc...                      window_imp->handleUnicodeUTF16((U16)w_param, gKeyboard->currentMask(FALSE)); @@ -3006,19 +2971,17 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_              S32 height = S32(HIWORD(l_param)); -            if (debug_window_proc) -            { -                BOOL maximized = (w_param == SIZE_MAXIMIZED); -                BOOL restored = (w_param == SIZE_RESTORED); -                BOOL minimized = (w_param == SIZE_MINIMIZED); - -                LL_INFOS("Window") << "WINDOWPROC Size " -                    << width << "x" << height -                    << " max " << S32(maximized) -                    << " min " << S32(minimized) -                    << " rest " << S32(restored) -                    << LL_ENDL; -            } +            LL_INFOS("Window"); +            BOOL maximized = (w_param == SIZE_MAXIMIZED); +            BOOL restored = (w_param == SIZE_RESTORED); +            BOOL minimized = (w_param == SIZE_MINIMIZED); + +            LL_CONT << "WINDOWPROC Size " +                << width << "x" << height +                << " max " << S32(maximized) +                << " min " << S32(minimized) +                << " rest " << S32(restored); +            LL_ENDL;              // There's an odd behavior with WM_SIZE that I would call a bug. If               // the window is maximized, and you call MoveWindow() with a size smaller @@ -3084,10 +3047,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_SETFOCUS:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_SETFOCUS"); -            if (debug_window_proc) -            { -                LL_INFOS("Window") << "WINDOWPROC SetFocus" << LL_ENDL; -            } +            LL_INFOS("Window") << "WINDOWPROC SetFocus" << LL_ENDL;              WINDOW_IMP_POST(window_imp->mCallbacks->handleFocus(window_imp));              return 0;          } @@ -3095,10 +3055,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          case WM_KILLFOCUS:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_KILLFOCUS"); -            if (debug_window_proc) -            { -                LL_INFOS("Window") << "WINDOWPROC KillFocus" << LL_ENDL; -            } +            LL_INFOS("Window") << "WINDOWPROC KillFocus" << LL_ENDL;              WINDOW_IMP_POST(window_imp->mCallbacks->handleFocusLost(window_imp));              return 0;          } @@ -3219,10 +3176,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_          default:          {              LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - default"); -            if (debug_window_proc) -            { -                LL_INFOS("Window") << "Unhandled windows message code: 0x" << std::hex << U32(u_msg) << LL_ENDL; -            } +            LL_INFOS("Window") << "Unhandled windows message code: 0x" << std::hex << U32(u_msg) << LL_ENDL;          }          break;          } diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 6457c13ef3..31c5d2a16f 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -656,16 +656,18 @@ bool LLAppViewerWin32::init()  													   LL_VIEWER_VERSION_PATCH << '.' <<  													   LL_VIEWER_VERSION_BUILD)); -                DWORD dwFlags = MDSF_NONINTERACTIVE | // automatically submit report without prompting -                                MDSF_PREVENTHIJACKING; // disallow swiping Exception filter - -                bool needs_log_file = !isSecondInstance() && debugLoggingEnabled("BUGSPLAT"); -                if (needs_log_file) -                { -                    // Startup only! -                    LL_INFOS("BUGSPLAT") << "Engaged BugSplat logging to bugsplat.log" << LL_ENDL; -                    dwFlags |= MDSF_LOGFILE | MDSF_LOG_VERBOSE; -                } +				DWORD dwFlags = MDSF_NONINTERACTIVE | // automatically submit report without prompting +								MDSF_PREVENTHIJACKING; // disallow swiping Exception filter + +				bool needs_log_file = !isSecondInstance(); +				LL_DEBUGS("BUGSPLAT"); +				if (needs_log_file) +				{ +					// Startup only! +					LL_INFOS("BUGSPLAT") << "Engaged BugSplat logging to bugsplat.log" << LL_ENDL; +					dwFlags |= MDSF_LOGFILE | MDSF_LOG_VERBOSE; +				} +				LL_ENDL;  				// have to convert normal wide strings to strings of __wchar_t  				sBugSplatSender = new MiniDmpSender( @@ -676,12 +678,14 @@ bool LLAppViewerWin32::init()  					dwFlags);  				sBugSplatSender->setCallback(bugsplatSendLog); -                if (needs_log_file) -                { -                    // Log file will be created in %TEMP%, but it will be moved into logs folder in case of crash -                    std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "bugsplat.log"); -                    sBugSplatSender->setLogFilePath(WCSTR(log_file)); -                } +				LL_DEBUGS("BUGSPLAT"); +				if (needs_log_file) +				{ +					// Log file will be created in %TEMP%, but it will be moved into logs folder in case of crash +					std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "bugsplat.log"); +					sBugSplatSender->setLogFilePath(WCSTR(log_file)); +				} +				LL_ENDL;  				// engage stringize() overload that converts from wstring  				LL_INFOS("BUGSPLAT") << "Engaged BugSplat(" << LL_TO_STRING(LL_VIEWER_CHANNEL) diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 72505528f0..a18d07d970 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -28,6 +28,7 @@  #define LL_LLVIEWEROBJECT_H  #include <map> +#include <unordered_map>  #include "llassetstorage.h"  //#include "llhudicon.h" diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index 4babf5a7f6..609e8290da 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -829,12 +829,11 @@ void send_viewer_stats(bool include_preferences)  	LL_INFOS("LogViewerStatsPacket") << "Sending viewer statistics: " << body << LL_ENDL; -	if (debugLoggingEnabled("LogViewerStatsPacket")) -	{ -		std::string filename("viewer_stats_packet.xml"); -		llofstream of(filename.c_str()); -		LLSDSerialize::toPrettyXML(body,of); -	} +	LL_DEBUGS("LogViewerStatsPacket"); +	std::string filename("viewer_stats_packet.xml"); +	llofstream of(filename.c_str()); +	LLSDSerialize::toPrettyXML(body,of); +	LL_ENDL;  	// The session ID token must never appear in logs  	body["session_id"] = gAgentSessionID; | 
