xref: /llvm-project/lldb/test/API/functionalities/rerun_and_expr_dylib/main.cpp (revision e31160155e484414db9177806ae9f0840c985b49)
1 #include <cassert>
2 #include <dlfcn.h>
3 #include <string>
4 
5 extern struct Foo imported;
6 
main()7 int main() {
8   // LIB_NAME defined on commandline
9   std::string libname{"./"};
10   libname += LIB_NAME;
11 
12   void *handle = dlopen(libname.c_str(), RTLD_NOW);
13   struct Foo *foo = (struct Foo *)dlsym(handle, "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);
19 
20   return 0;
21 }
22