问题标签 [nm]
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.
linux - nm 与“readelf -s”
假设我们有一个名为 libtest.so 的共享库,其中有一个函数“foo”
使用条带丢弃 libtest.so 中的所有符号
所以,现在如果我们使用:
它会打印出来:
nm:libtest.so:没有符号
但如果我们使用:
foo 函数仍然可以从其结果中看出:
...
10: 000005dc 5 FUNC 全局默认值 12 _Z3foov
...
我们也可以使用命令字符串来检查它:
...
_Z3foov
...
这是我的问题,为什么 nm 没有给出条带化 libtest.so 的结果?
谢谢
mysql - SQL n:m 继承连接
我想加入一个包含组之间 n:m 关系的表。(组在单独的表中定义)。此表仅包含列出 member_group_id 和 parent_group_id 的条目。
鉴于这种结构:
“基本”查询如下所示:
“基本”查询正确显示了所有关系(我通过手动进行检查。)
问题是当我尝试将 where 子句应用于此查询以将特定组过滤为“原点”(我想要所有父组的第一个组)时,它仅返回最近的父组。例如像这样:
谁能告诉我如何解决这个问题?或者用不同的方法来实现这一点。(我想我总是可以在服务器端的 C++ 源代码中执行此操作,但我必须将具有高增长潜力的整个表传输到应用程序服务器。)
更新:
确认输入错误。现在我没有超过第一级继承期。感谢拒绝指出这一点。
UPDATE2:预期结果
预期结果:
身份证
ios - 当我使用 nm 查看 Mac 上的符号列表时,$ld$add$os10.4$ 前缀是什么意思?
我的 iPhone 应用程序无法链接到 iPhone 模拟器时遇到一些问题。它告诉我有未定义的符号:
但这些看起来像是我链接的框架中的 Objective-C 类的名称。我想做一些挖掘工作,所以我使用 nm 查看我链接的框架的符号列表。例如
现在,这个符号列表让我觉得框架档案正在导出链接器正在寻找的类。唯一不同的是这个 $ld$add$os10.4$ 前缀。我想知道为什么它在那里,它意味着什么,这是否可能导致我的问题?
编辑:看起来这是我的问题: 针对 iPhoneSimulator 时 Xcode 中的链接错误
简而言之,省略编译器标志 -fobjc-abi-version=2 会导致不同的符号命名。
c++ - nm 符号值的偏移量?
只是为了给您一些上下文,这就是我想要实现的目标:我将 const char* 嵌入到共享对象文件中,以便在 .so 文件本身中有一个版本字符串。我正在做数据分析,这个字符串让我可以让数据知道是哪个版本的软件产生的。这一切都很好。
我遇到的问题是当我尝试直接从 .so 库中读取字符串时。我试着用
并得到
这一切都很好,正如预期的那样(char* 被称为 _SMPselection_version_info)。但是我希望现在能够打开文件,寻找 0x3d968 并开始读取我的字符串,但我得到的只是垃圾。
当我打开 .so 文件并简单地搜索字符串的内容(我知道它是如何开始的)时,我可以在地址 0x2e0b4 找到它。在这个地址它在那里,零终止并且如预期的那样。(我现在正在使用这种方法。)
我不是计算机科学家。有人可以向我解释为什么 nm 显示的符号值不正确,或者不同的是,如果它不是符号的地址,符号值是什么?
(顺便说一句,我正在使用 OSX 10.7 的 Mac 上工作)
gdb - GDB CallStack 地址是虚拟的还是物理的?
我的 gdbbt
调用堆栈给出了函数名称和函数地址。然后我做了nm binary
并生成了函数名和地址映射。当我尝试将 gdb 地址与nm
输出匹配时,它不匹配。函数地址(gdb) bt
太高(看起来像物理地址)。
gdb 函数地址(例如0x00007fffe6fc150f
):
但是当我nm
从二进制文件中获取地址时,我得到的是这样的
机器是 64 位的。
据我所知,gdb 只显示虚拟地址。但我不知道为什么它会这么高并且与地址当前的 nm 输出不匹配
难道gdb地址都是虚拟地址???。nm
o/p 看起来像实际的虚拟地址,因为它从 000000000 开始。但是为什么会自动添加基地址呢?
注意:我尝试使用示例 test.out。效果很好。调用堆栈地址是虚拟地址,bt
与nm a.out
符号输出完全匹配。
shell - 需要根据符号表信息将二进制名称输出到文件/标准输出
我有一个包含一些二进制文件的文件。我正在尝试nm
在这些二进制文件上使用来搜索目标文件。
我的问题是,我只想从这个文件(executables.out)中输出那些包含所需符号的二进制文件。知道怎么做吗?
c - nm 符号实用程序报告
nm 命令将符号报告为 U 和 T。U 代表未定义,AFAIK 该符号位于另一个库中,但是 T 是什么意思?
0000018c T _myfunc U _myfunc
foreign-keys - TYPO3 版本中同一张表上的双向 n:m 关系。4.7.2
在我们自己的扩展中,我们有一个应该与自身具有 n:m 关系的表。
我将做一个形象化的例子(我们的实际情况与此类似):我们称表为'employee'。
现在一个员工可以附加到其他员工,例如我编辑员工 A 并将其附加到员工 B。当我打开员工 BI 想看到他对员工 A 有一个附件。
我在 tca.php 中尝试了以下配置:
但是,当我这样做时,它只会保存一个方向的关系,即我在员工 A 中看到它与员工 B 有关系。但是当我打开员工 BI 时,看不到与员工 A 的任何关系。
在数据库中保存了一个条目:
- uid_local: ###员工 A### 的 UID
- uid_foreign: ###员工B的UID###
- 排序:0
- 排序外国:1
我究竟做错了什么?我在 Google/Internet 上找不到类似的案例——我发现的只是两张不同的桌子。
objective-c - 从 nm 命令中隐藏可执行符号
nm命令列出可执行文件中的所有符号。这是逆向工程和破解的好指南。我想隐藏它们。gcc可能有用于此目的的开关,但我不使用 gcc。有没有办法直接从二进制文件中隐藏它们?
谢谢。
c++ - 是否可以通过 NM 仅打印用户定义的变量?
nm的输出中有很多系统变量它看起来像这样
是否可以仅打印用户定义的变量 - 在本例中为 variable10、variable0、Dictionary::variable1、Dictionary::variable4、N?