mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 22:02:44 +00:00 
			
		
		
		
	Kernel: Demangle userspace ELF symbols in backtraces
Turns out we can use abi::__cxa_demangle() for this, and all we need to provide is sprintf(), realloc() and free(), so this patch exposes them. We now have fully demangled C++ backtraces :^)
This commit is contained in:
		
							parent
							
								
									2d1bcce34a
								
							
						
					
					
						commit
						0adbacf59e
					
				
					 10 changed files with 44 additions and 9 deletions
				
			
		|  | @ -502,7 +502,7 @@ Optional<KBuffer> procfs$pid_cwd(InodeIdentifier identifier) | |||
| Optional<KBuffer> procfs$self(InodeIdentifier) | ||||
| { | ||||
|     char buffer[16]; | ||||
|     ksprintf(buffer, "%u", current->pid()); | ||||
|     sprintf(buffer, "%u", current->pid()); | ||||
|     return KBuffer::copy((const u8*)buffer, strlen(buffer)); | ||||
| } | ||||
| 
 | ||||
|  | @ -1055,7 +1055,7 @@ bool ProcFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntry&) | |||
|         } | ||||
|         for (auto pid_child : Process::all_pids()) { | ||||
|             char name[16]; | ||||
|             int name_length = ksprintf(name, "%u", pid_child); | ||||
|             int name_length = sprintf(name, "%u", pid_child); | ||||
|             callback({ name, name_length, to_identifier(fsid(), PDI_Root, pid_child, FI_PID), 0 }); | ||||
|         } | ||||
|         break; | ||||
|  | @ -1100,7 +1100,7 @@ bool ProcFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntry&) | |||
|             if (!description) | ||||
|                 continue; | ||||
|             char name[16]; | ||||
|             int name_length = ksprintf(name, "%u", i); | ||||
|             int name_length = sprintf(name, "%u", i); | ||||
|             callback({ name, name_length, to_identifier_with_fd(fsid(), pid, i), 0 }); | ||||
|         } | ||||
|     } break; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling