使用 dlsym 加载已命名的未导出符号?

2024-01-04

是否可以使用以下方式从框架加载命名的未导出符号dlsym?

我尝试导入的符号有一个在框架内引用的名称。这是我需要调用的函数。

我试着像往常一样做dlopen + dlsym方式,但是当我尝试加载未导出的符号时,dlsym返回一个NULL指针。


dlsym只能加载符号表中列出的函数。您可以通过运行列出符号表nm关于有问题的框架。

您可以在 dyld 源中验证这一点:ImageLoaderMachOClassic::findExportedSymbol http://www.opensource.apple.com/source/dyld/dyld-195.5/src/ImageLoaderMachOClassic.cpp是 dlsym 的内部实现,它只是对符号表进行二分搜索:

And ImageLoaderMachO::parseLoadCmds http://www.opensource.apple.com/source/dyld/dyld-195.5/src/ImageLoaderMachO.cpp从 Mach 头中的加载命令加载符号表:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dlsym 加载已命名的未导出符号? 的相关文章

随机推荐

  • 有没有办法在 Sparx Enterprise Architect 中搜索元素类型?

    模型搜索功能似乎没有办法将结果限制为特定类型 例如Class Node等有没有办法实现呢 我知道我可以编写 SQL 查询 但是无法找到正确的表名 EDIT 看来我可以执行以下操作 Select Object Type AS CLASSTYP
  • 如何修复 CA2100 Review SQL 查询的安全漏洞问题

    我正在分析我的代码并遇到这个安全问题 CA2100 检查 SQL 查询是否存在安全漏洞 传递到 Add item loadgrid 中的 SqlDataAdapter SqlDataAdapter string SqlConnection
  • 使用模型进行 ID 分配

    我尝试使用模型绑定将 ID 分配给选择控件中的项目 但最终出现错误 这是我的代码 Model languages language English locale en language German locale de 选择控制 var o
  • android书签ContentProvider制作书签但在浏览器的书签中不可见

    我正在使用 Android 的浏览器书签 ContentProvider 以编程方式创建新书签 书签已创建 我可以通过 ContentProvider 以编程方式检索它 但书签在浏览器书签视图中不可见 想法 Saving the bookm
  • 如何正确removeFromSuperview?

    苹果说 removeFromSuperview 取消链接 来自其超级视图的接收者及其 窗口 并将其从 响应者链 void 从超级视图中删除 切勿在以下情况下调用此方法 显示 所以 当我想删除一个视图时 我习惯于将它从它的超级视图中删除 为什
  • 操作系统关闭过程中会发生什么?

    我希望这与编程足够相关 操作系统关闭过程中到底发生了什么 我们以开源的 Linux 为例 可能对此有更多的了解 如何 内核线程终止 当计算机处于 清除 状态时 电源是否停止供电 很明显 我所说的清晰状态是指 CPU 中不再发生任何事情 等等
  • 在文档中查找 HTML 字符串

    我想获取所有 HTML p p 在一个文档中 Using Regex使用以下命令查找所有此类字符串 Regex regex new Regex
  • Android Studio“项目结构”未正常显示

    我遵循 Android Studio 安装的所有必要步骤 我也检查过this https stackoverflow com questions 17961397 android studio new project missing fol
  • 在 Dyalog RIDE 中设置条件断点

    In 对话骑行 https github com Dyalog ride 我知道如何设置断点来停止 APL 源代码中特定行的执行 有没有办法使断点有条件 这样只有满足一组特定的条件 我才能在一行处停止 例如0 lt 没有IDE 或RIDE
  • 为什么 iostream 定义了一个 abs 函数,我该如何阻止它?

    以下 C 代码无法编译 int main double a abs 5 1 return 0 它抱怨说abs当然 没有定义 但以下内容确实可以编译 include
  • 如何在保存 Sitecore 项目时显示弹出窗口?

    保存 Sitecore 项目时 我尝试显示一个弹出窗口以与用户交互 根据他们更改的数据 我可能会显示一系列 1 或 2 个弹出窗口 询问他们是否要继续 我已经弄清楚如何利用 OnItemSaving 管道 这很简单 我不知道如何显示弹出窗口
  • 保留提交的JSP表单数据

    我有一个网络表单 JSP 它将数据提交到托管在不同服务器上的不同应用程序 提交表单数据后 该应用程序重定向回同一 JSP 页面 现在 我想保存输入的数据 以网络形式保留提交的数据有哪些不同的方法 我不喜欢将数据存储在数据库或任何文件中 PS
  • 当我在终端中调用 Emacs 错误“无法初始化颜色列表解档器”时

    我刚刚在 MacBook Pro 上安装了 emacs 但是当我在终端中输入 emacs 时 出现以下错误 Emacs x86 64 10 10 5647 247335 无法初始化颜色列表解档器 错误域 NSCocoaErrorDomain
  • AngularJS ui-router $state.go('^') 仅更改地址栏中的 URL,但不加载控制器

    我正在尝试使用 angularjs 创建一个 Todo App ui router 它有 2 列 第一栏 待办事项列表 第 2 列 Todo 详细信息或 Todo 编辑表单 在保存待办事项后的编辑和创建控制器中 我想重新加载列表以显示适当的
  • portaudio.h:没有这样的文件或目录

    我在 ubuntu 16 04 中尝试使用 pip3 安装 pyaudio 时出现以下错误 Collecting pyaudio Downloading PyAudio 0 2 11 tar gz Installing collected
  • python 3.4 谷歌浏览器历史

    我真的被我想做的事情困住了 我想制作一个非常简单的脚本来显示 Google Chrome 的历史记录 当我使用以下代码行时 f open C Users joey AppData Local Google Chrome User Data
  • 使用 ckeditor 整理 html

    您好 我在 ckeditor 方面遇到了一个小问题 基本上我需要让编辑器运行它的 html 清理命令 有什么办法可以做到这一点吗 目前 在我在源代码中输入一些内容然后按保存后 它似乎没有运行我希望它像在 正常 编辑器视图中那样整理 html
  • 给定一个 Android 音乐播放列表名称,如何找到播放列表中的歌曲?

    可以通过查询找到播放列表名称MediaStore Audio Playlists EXTERNAL CONTENT URI然后看看MediaStore Audio PlaylistsColumns NAME柱子 还有一个数据列 MediaS
  • REST Auth 的 Cocoa Base 64 实现

    我可以使用干净 有效的 Base64 实现来通过 HTTP 对 REST 协议进行授权 有人可以帮助我或为我指明方向吗 Thanks 您应该完全没有必要这样做 在较高的层面上 Cocoa 提供了 NSURLConnection 来进行 HT
  • 使用 dlsym 加载已命名的未导出符号?

    是否可以使用以下方式从框架加载命名的未导出符号dlsym 我尝试导入的符号有一个在框架内引用的名称 这是我需要调用的函数 我试着像往常一样做dlopen dlsym方式 但是当我尝试加载未导出的符号时 dlsym返回一个NULL指针 dls