14ad5def9SAdrian McCarthy //===-- LocalDebugDelegate.cpp ----------------------------------*- C++ -*-===// 24ad5def9SAdrian McCarthy // 34ad5def9SAdrian McCarthy // The LLVM Compiler Infrastructure 44ad5def9SAdrian McCarthy // 54ad5def9SAdrian McCarthy // This file is distributed under the University of Illinois Open Source 64ad5def9SAdrian McCarthy // License. See LICENSE.TXT for details. 74ad5def9SAdrian McCarthy // 84ad5def9SAdrian McCarthy //===----------------------------------------------------------------------===// 94ad5def9SAdrian McCarthy 104ad5def9SAdrian McCarthy #include "LocalDebugDelegate.h" 114ad5def9SAdrian McCarthy #include "ProcessWindows.h" 124ad5def9SAdrian McCarthy 134ad5def9SAdrian McCarthy using namespace lldb; 144ad5def9SAdrian McCarthy using namespace lldb_private; 154ad5def9SAdrian McCarthy 164ad5def9SAdrian McCarthy LocalDebugDelegate::LocalDebugDelegate(ProcessWP process) 174ad5def9SAdrian McCarthy : m_process(process) {} 184ad5def9SAdrian McCarthy 194ad5def9SAdrian McCarthy void LocalDebugDelegate::OnExitProcess(uint32_t exit_code) { 204ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 214ad5def9SAdrian McCarthy process->OnExitProcess(exit_code); 224ad5def9SAdrian McCarthy } 234ad5def9SAdrian McCarthy 244ad5def9SAdrian McCarthy void LocalDebugDelegate::OnDebuggerConnected(lldb::addr_t image_base) { 254ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 264ad5def9SAdrian McCarthy process->OnDebuggerConnected(image_base); 274ad5def9SAdrian McCarthy } 284ad5def9SAdrian McCarthy 294ad5def9SAdrian McCarthy ExceptionResult 304ad5def9SAdrian McCarthy LocalDebugDelegate::OnDebugException(bool first_chance, 314ad5def9SAdrian McCarthy const ExceptionRecord &record) { 324ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 334ad5def9SAdrian McCarthy return process->OnDebugException(first_chance, record); 344ad5def9SAdrian McCarthy else 354ad5def9SAdrian McCarthy return ExceptionResult::MaskException; 364ad5def9SAdrian McCarthy } 374ad5def9SAdrian McCarthy 384ad5def9SAdrian McCarthy void LocalDebugDelegate::OnCreateThread(const HostThread &thread) { 394ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 404ad5def9SAdrian McCarthy process->OnCreateThread(thread); 414ad5def9SAdrian McCarthy } 424ad5def9SAdrian McCarthy 434ad5def9SAdrian McCarthy void LocalDebugDelegate::OnExitThread(lldb::tid_t thread_id, 444ad5def9SAdrian McCarthy uint32_t exit_code) { 454ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 464ad5def9SAdrian McCarthy process->OnExitThread(thread_id, exit_code); 474ad5def9SAdrian McCarthy } 484ad5def9SAdrian McCarthy 494ad5def9SAdrian McCarthy void LocalDebugDelegate::OnLoadDll(const lldb_private::ModuleSpec &module_spec, 504ad5def9SAdrian McCarthy lldb::addr_t module_addr) { 514ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 524ad5def9SAdrian McCarthy process->OnLoadDll(module_spec, module_addr); 534ad5def9SAdrian McCarthy } 544ad5def9SAdrian McCarthy 554ad5def9SAdrian McCarthy void LocalDebugDelegate::OnUnloadDll(lldb::addr_t module_addr) { 564ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 574ad5def9SAdrian McCarthy process->OnUnloadDll(module_addr); 584ad5def9SAdrian McCarthy } 594ad5def9SAdrian McCarthy 604ad5def9SAdrian McCarthy void LocalDebugDelegate::OnDebugString(const std::string &string) { 614ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 624ad5def9SAdrian McCarthy process->OnDebugString(string); 634ad5def9SAdrian McCarthy } 644ad5def9SAdrian McCarthy 65*97206d57SZachary Turner void LocalDebugDelegate::OnDebuggerError(const Status &error, uint32_t type) { 664ad5def9SAdrian McCarthy if (ProcessWindowsSP process = GetProcessPointer()) 674ad5def9SAdrian McCarthy process->OnDebuggerError(error, type); 684ad5def9SAdrian McCarthy } 694ad5def9SAdrian McCarthy 704ad5def9SAdrian McCarthy ProcessWindowsSP LocalDebugDelegate::GetProcessPointer() { 714ad5def9SAdrian McCarthy ProcessSP process = m_process.lock(); 724ad5def9SAdrian McCarthy return std::static_pointer_cast<ProcessWindows>(process); 734ad5def9SAdrian McCarthy } 74