[llvm] [llvm-c] Expose debug object registration in Orc C-API bindings (PR #73257)

Stefan Gränitz via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 24 08:07:57 PST 2023


================
@@ -863,6 +866,31 @@ void LLVMOrcObjectLayerEmit(LLVMOrcObjectLayerRef ObjLayer,
       std::unique_ptr<MemoryBuffer>(unwrap(ObjBuffer)));
 }
 
+LLVMErrorRef
+LLVMOrcObjectLayerRegisterPluginJITLoaderGDB(LLVMOrcObjectLayerRef ObjLayer,
+                                             LLVMBool RequireDebugSectionsFlag,
+                                             LLVMBool AutoRegisterCodeFlag) {
+  ExecutionSession &ES = unwrap(ObjLayer)->getExecutionSession();
+  auto Registrar = createJITLoaderGDBRegistrar(ES);
+  if (!Registrar)
+    return wrap(Registrar.takeError());
+
+  auto *ObjLinkingLayer = cast<ObjectLinkingLayer>(unwrap(ObjLayer));
+  if (!ObjLinkingLayer)
+    return wrap(
+        createStringError(inconvertibleErrorCode(),
+                          "No debug support for given object layer type"));
+
+  ObjLinkingLayer->addPlugin(std::make_unique<DebugObjectManagerPlugin>(
+      ES, std::move(*Registrar), RequireDebugSectionsFlag,
+      AutoRegisterCodeFlag));
+
+  auto TargetProcessFn = &llvm_orc_registerJITLoaderGDBWrapper;
+  (void)TargetProcessFn;
----------------
weliveindetail wrote:

Dropped it and updated notes in header

https://github.com/llvm/llvm-project/pull/73257


More information about the llvm-commits mailing list