c - 调用进程的符号查找?

标签 c linux dynamic loading symbols

向大家致以诚挚的问候!

所以Linux有dlopen/dlsym/dlclose/...功能,但我想知道是否有办法让我的程序获取其自身正在运行的进程的某些符号的句柄。

基本上与 dlsym 类似,但在调用它的进程中搜索符号。 有这样的事吗?这可能吗?加分项:Windows 有这样的东西吗?

编辑 - 进一步说明:假设我有一个全局变量foo,大概位于程序的 bss 或数据段中。在编译时,整个程序完全不知道 foo 的存在。在运行时,我想查询某个地方是否有一个名为“foo”的全局符号,如果有,则获取它在内存中的位置。

我需要能够构建一个符号表,就像链接器在构建共享库时所做的那样。我想这是最大的问题。

如果我有选择的话,我有什么选择?

干杯!

最佳答案

根据http://man7.org/linux/man-pages/man3/dlopen.3.html :

If filename is NULL, then the returned handle is for the main program.

即您可以通过传递 NULL 作为名称来自行dlopen

关于c - 调用进程的符号查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32265371/

相关文章:

c - 了解 glibc 源代码约定

c - Vulkan:vk*CreateInfo 结构中的 sType 有什么意义?

linux - gcc 4.7.1 C++ 静态局部初始化挂起

c# - 如何从后台代码动态生成 ListView 和 DataPager?

javascript - 动态加载的 AngularJS 应用程序

c++ - Mini Filter 驱动程序与 Windows 服务的通信

c - 相当于cuda中的memalign

linux - 在包名称中找不到“software-properties-common”。尝试能力

linux - 使用 write syscall linux 的正确方法

javascript - 像文本一样访问变量?