问题标签 [otool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - install_name_tool -change 和 -id 之间的区别
我一直在为这个概念苦苦挣扎,我无法真正理解和之间的区别-change
。-id
手册页指出
到目前为止,我已经尝试过-change
. 假设我有以下结构
现在假设我在 itemB 上运行了以下内容
上面的结果表明,test_library.dylib
取决于another_library.dylib
现在是否需要更改another_library.dylib
我会这样做的位置
这将改变项目 D 的位置。我的问题是做install-name_tool -id
什么以及何时使用它?
xcode - Otool - 仅获取文件大小
我正在使用 Otool 查看已编译的库 (.a),并且我想查看二进制文件中每个组件的文件大小。我看到
otool -l [lib.a]
将向我显示此信息,但还有很多我不需要的其他信息。有没有办法让我只看到文件大小而不是其他所有内容?有的话好像找不到
macos - 你如何在 OSX 中调试 libc?
我希望能够静态链接到带有调试符号的 libc 构建,然后通过 lldb 运行我的程序。
otool -L <my binary>
使它看起来像唯一的动态链接库(dll)是:
我猜是 libc dll 是(虽然nm
没有列出我在 libc 中所期望的所有内容)。也许只是某种存根加载程序。
/usr/lib/
苹果似乎没有提供 libSystem 的调试版本。
你如何在 OSX (10.11.3) 上调试 libc?
macos - MachO 文件格式 - LC_SEGMENT_64 加载命令中“fileoff”字段的值
我编译了一个简单的程序,例如
使用 Clang 进入可执行文件并要求otool
报告编译器生成的加载命令。我感兴趣的是LC_SEGMENT_64
,特别是描述__TEXT
文件中段的那个。我得到的描述是这样的:
我的问题是:为什么fileoff
第二个加载命令中的字段设置为零?
苹果在该领域的文档指出
该文件从 fileoff 开始映射到内存中段的开头 vmaddr。
最初,这使我相信该字段与 一起filesize
指示加载器,如下所示:“将文件的内容从fileoff
to 获取fileoff + filesize
,这是您将要求处理器运行的指令序列”。但是,如果这个值是零,我的假设当然不成立。
我认为,由于该段至少有一个部分,加载程序将使用该部分描述中相应偏移量的值来定位要运行的代码,因此并不完全需要这样的值 --- 我们可以看到,实际上,该段中的第一部分具有该offset
字段的值(在本例中为 3984,我使用它进行了验证,otool -s __TEXT __text -j foo
并且实际上是指该部分在文件中的偏移量)。
但是,如果我对从同一个源文件(即类型为MH_OBJECT
而不是 的文件MH_EXECUTE
)生成的目标文件执行相同的操作,我得到的结果是:
在这种情况下,加载命令的字段确实有一个值fileoff
,这与其第一部分的值相同__text
。
unix - 如何解决 otool 执行失败?
尝试通过 brew 安装某些东西时出现以下错误:
我该如何解决这个问题?
ios - otool -L 文件名/路径不起作用
我正在浏览一些不同的编程/调试教程,并在终端中使用“otool”命令。一个例子是检查共享库。错误总是两个之一。我从文件所在的目录运行它。只输入 otool 会给出 otool “-x” 开关的列表。我已经查看了多个文件和目录的开关列表并得到了相同的错误。
我错过了什么?
$ otool -L 演示应用
错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool:无法打开文件:DemoApp(没有这样的文件或目录)
或者
$ otool -L DemoApp.app
错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool:无法映射文件:DemoApp.app(无效参数)
macos - Qt Mac 应用程序无法创建自包含 App Bundle (Qt Creator Build)
我正在使用Qt Creator 3.6.1
with Qt 5.6.0 (Clang 7.0 (Apple), 64 bit)
,在尝试创建应用程序包进行部署时遇到了一些问题。
注意:应用名称被称为bibi
Qt Creator
文件夹bibi.app
下成功生成build-bibi-Desktop_Qt_5_6_0_clang_64bit-Release/
- 这
bibi.app
未能在另一台 Mac 上成功链接 Qt macdeployqt
不能解决问题
以下为详细内容:
otool
macdeployqt
树比比.app
谢谢。
问题解决了
谢谢scott,问题解决了。以下是我未能成功创建自包含应用程序包的原因:
otool -L
没有解决@rpath,我很困惑,因为它总是返回相同的输出- 缺乏测试捆绑包是否已经包含所有框架的方法
简而言之,可以通过使用 Scott 的otool-rpath
,lsof
或设置DYLD_PRINT_LIBRARIES
and来解决问题DYLD_PRINT_TO_FILE
。而且,我在这里写了一个带有详细信息的注释。
macos - 对于 OS X 可执行文件,如何显示未定义符号应在哪个库中?
我知道如何使用 nm 在二进制文件中显示未定义的符号。我也知道如何使用 otool 来显示二进制文件链接到哪些库。
但我不知道如何为每个未定义的符号显示,链接器应该找到哪个库?
注意:我假设此类信息存储在 mach-o 二进制文件中,因为我在运行时错误之前已经看到 dyld 会告诉您丢失的符号并准确指出它希望在哪个库中找到该符号。
ios - 修复 iOS 应用 otool cryptid=0
嗨,最近我为我的公司编写了一个应用程序,但后来我发现了这个工具 - otool。所以我尝试用 otool 检查我的应用程序并发现以下内容:
我搜索了 cryptid,得知我的应用程序没有加密,可以破解和 RE。有谁知道如何修复它或如何设置 cryptid=1?谢谢。
virtual-memory - 如何使用 otool 获取二进制文件的大小?
我正在使用 otool 来获取有关我的二进制文件的信息。这是我的输出的一部分:
我们可以在这里看到command 1
withsegname __TEXT
开始于vmaddr 0x0000000100000000
问题是二进制大小是 2.3MB 而 0x0000000100000000 是 4 GB!
我假设 address 中间的“一个”与 64 位架构有关,0x0000000100000000
实际上是 address 0x00
。我一直在寻找有关此的一些信息,但没有发现任何有用的信息。谁能证实我的假设并解释这是如何工作的?