mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-03 23:00:58 +00:00 
			
		
		
		
	And limit the `void*` to the functions that interface the system (i.e. ptrace wrappers). This generally makes the code less riddled with casts.
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			564 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			564 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2020, Itamar S. <itamar8910@gmail.com>
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: BSD-2-Clause
 | 
						|
 */
 | 
						|
 | 
						|
#include "StackFrameUtils.h"
 | 
						|
 | 
						|
namespace Debug::StackFrameUtils {
 | 
						|
 | 
						|
Optional<StackFrameInfo> get_info(ProcessInspector const& inspector, FlatPtr current_ebp)
 | 
						|
{
 | 
						|
    auto return_address = inspector.peek(current_ebp + sizeof(FlatPtr));
 | 
						|
    auto next_ebp = inspector.peek(current_ebp);
 | 
						|
    if (!return_address.has_value() || !next_ebp.has_value())
 | 
						|
        return {};
 | 
						|
 | 
						|
    StackFrameInfo info = { return_address.value(), next_ebp.value() };
 | 
						|
    return info;
 | 
						|
}
 | 
						|
 | 
						|
}
 |