92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- LocalDebugDelegate.cpp ----------------------------------*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #include "LocalDebugDelegate.h"
 | |
| #include "ProcessWindowsLive.h"
 | |
| 
 | |
| using namespace lldb;
 | |
| using namespace lldb_private;
 | |
| 
 | |
| LocalDebugDelegate::LocalDebugDelegate(ProcessWP process)
 | |
|     : m_process(process)
 | |
| {
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnExitProcess(uint32_t exit_code)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnExitProcess(exit_code);
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnDebuggerConnected(lldb::addr_t image_base)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnDebuggerConnected(image_base);
 | |
| }
 | |
| 
 | |
| ExceptionResult
 | |
| LocalDebugDelegate::OnDebugException(bool first_chance, const ExceptionRecord &record)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         return process->OnDebugException(first_chance, record);
 | |
|     else
 | |
|         return ExceptionResult::MaskException;
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnCreateThread(const HostThread &thread)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnCreateThread(thread);
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnExitThread(lldb::tid_t thread_id, uint32_t exit_code)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnExitThread(thread_id, exit_code);
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnLoadDll(const lldb_private::ModuleSpec &module_spec, lldb::addr_t module_addr)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnLoadDll(module_spec, module_addr);
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnUnloadDll(lldb::addr_t module_addr)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnUnloadDll(module_addr);
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnDebugString(const std::string &string)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnDebugString(string);
 | |
| }
 | |
| 
 | |
| void
 | |
| LocalDebugDelegate::OnDebuggerError(const Error &error, uint32_t type)
 | |
| {
 | |
|     if (ProcessWindowsLiveSP process = GetProcessPointer())
 | |
|         process->OnDebuggerError(error, type);
 | |
| }
 | |
| 
 | |
| ProcessWindowsLiveSP
 | |
| LocalDebugDelegate::GetProcessPointer()
 | |
| {
 | |
|     ProcessSP process = m_process.lock();
 | |
|     return std::static_pointer_cast<ProcessWindowsLive>(process);
 | |
| }
 |