LLDB  mainline
UnwindAssembly.cpp
Go to the documentation of this file.
1 //===-- UnwindAssembly.cpp ------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
12 #include "lldb/lldb-private.h"
13 
14 using namespace lldb;
15 using namespace lldb_private;
16 
17 UnwindAssemblySP UnwindAssembly::FindPlugin(const ArchSpec &arch) {
18  UnwindAssemblyCreateInstance create_callback;
19 
20  for (uint32_t idx = 0;
21  (create_callback = PluginManager::GetUnwindAssemblyCreateCallbackAtIndex(
22  idx)) != nullptr;
23  ++idx) {
24  UnwindAssemblySP assembly_profiler_up(create_callback(arch));
25  if (assembly_profiler_up)
26  return assembly_profiler_up;
27  }
28  return nullptr;
29 }
30 
31 UnwindAssembly::UnwindAssembly(const ArchSpec &arch) : m_arch(arch) {}
lldb_private::ArchSpec
Definition: ArchSpec.h:33
PluginInterface.h
lldb-private.h
uint32_t
PluginManager.h
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
UnwindAssembly.h
lldb
Definition: SBAddress.h:15