1#include <cassert>
2#include <dlfcn.h>
3#include <string>
4
5extern struct Foo imported;
6
7int main() {
8 // LIB_NAME defined on commandline
9 std::string libname{"./"};
10 libname += LIB_NAME;
11
12 void *handle = dlopen(file: libname.c_str(), RTLD_NOW);
13 struct Foo *foo = (struct Foo *)dlsym(handle: handle, name: "global_foo");
14 assert(foo != nullptr);
15
16 // Unload dylib (important on Linux so a program re-run loads
17 // an updated version of the dylib and destroys the old lldb module).
18 dlclose(handle: handle);
19
20 return 0;
21}
22

source code of lldb/test/API/functionalities/rerun_and_expr_dylib/main.cpp