mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	lm: Handle threads and modules within the logger
The thread field serves to indicate which thread a log is related to and provides the length of the thread's name, so we can print that out, ditto for modules. Now we can know what threads are potentially spawning off logging messages (for example Lydie & Suelle bounces between MainThread and LoadingThread when initializing the game).
This commit is contained in:
		
							parent
							
								
									301baaa942
								
							
						
					
					
						commit
						e0b0f4eece
					
				| @ -92,7 +92,11 @@ private: | ||||
| 
 | ||||
|         // Parse out log metadata
 | ||||
|         u32 line{}; | ||||
|         std::string message, filename, function; | ||||
|         std::string module; | ||||
|         std::string message; | ||||
|         std::string filename; | ||||
|         std::string function; | ||||
|         std::string thread; | ||||
|         while (addr < end_addr) { | ||||
|             const Field field{static_cast<Field>(Memory::Read8(addr++))}; | ||||
|             const size_t length{Memory::Read8(addr++)}; | ||||
| @ -102,6 +106,8 @@ private: | ||||
|             } | ||||
| 
 | ||||
|             switch (field) { | ||||
|             case Field::Skip: | ||||
|                 break; | ||||
|             case Field::Message: | ||||
|                 message = Memory::ReadCString(addr, length); | ||||
|                 break; | ||||
| @ -114,6 +120,12 @@ private: | ||||
|             case Field::Function: | ||||
|                 function = Memory::ReadCString(addr, length); | ||||
|                 break; | ||||
|             case Field::Module: | ||||
|                 module = Memory::ReadCString(addr, length); | ||||
|                 break; | ||||
|             case Field::Thread: | ||||
|                 thread = Memory::ReadCString(addr, length); | ||||
|                 break; | ||||
|             } | ||||
| 
 | ||||
|             addr += length; | ||||
| @ -128,12 +140,18 @@ private: | ||||
|         if (!filename.empty()) { | ||||
|             log_stream << filename << ':'; | ||||
|         } | ||||
|         if (!module.empty()) { | ||||
|             log_stream << module << ':'; | ||||
|         } | ||||
|         if (!function.empty()) { | ||||
|             log_stream << function << ':'; | ||||
|         } | ||||
|         if (line) { | ||||
|             log_stream << std::to_string(line) << ':'; | ||||
|         } | ||||
|         if (!thread.empty()) { | ||||
|             log_stream << thread << ':'; | ||||
|         } | ||||
|         if (log_stream.str().length() > 0 && log_stream.str().back() == ':') { | ||||
|             log_stream << ' '; | ||||
|         } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Lioncash
						Lioncash