问题标签 [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.

0 投票
2 回答
25261 浏览

symbols - 相当于微软的 nm 命令

我长期以来一直使用 cygwin 的 nm 命令来满足我所有的 .lib 符号调试需求,但最近我考虑在 SO 答案中引用它,并意识到大多数 Windows 开发人员都没有安装 cygwin。

那么微软的nm等价物是什么,即什么命令会列出.lib文件导出的符号、.lib中未定义的符号等等?

对于好奇的人,这里有一个示例 nm 手册页。

0 投票
1 回答
443 浏览

mingw - mingw-32 链接程序中的 __imp__malloc 是什么?

为了弄清楚malloc()我的交叉编译的 mingw32 程序是否是线程安全的,我nm在二进制文件上运行。结果:

为了比较,这里是搜索GetLastError,在我的程序中使用但未定义:

这里是搜索我知道在我的程序中的东西:

认为这意味着在我的 C 库中按原样malloc()提供作为系统的封面,但不会出现在系统中。但我想要第二个意见。malloc()GetLastError()ends_with()

谢谢!

0 投票
2 回答
7098 浏览

c++ - 如何确定库间依赖关系?

我的项目由几个静态库组成,它们在最后一步中链接在一起。现在我遇到了问题,库的链接顺序很重要(否则我会收到未定义的符号链接器错误)。有时我会遇到问题,我必须重新排序链接库(-lcommon -lsetup -lcontrol 等)。目前这是一个愚蠢的试验和错误:重新排序、编译、检查错误、重新排序、编译等等。

因此,我编写了一个小程序来向我展示库间依赖关系并生成要链接的库的顺序。它从nm中读取已定义的('T'、'B' 等)和未定义的符号('U')并从'未定义的符号列表'。现在它为每个未定义的符号确定解析它的库。

但是我的程序向我展示了循环依赖......我的错误是什么?

如果它们真的存在,我根本无法链接......那么在分析 nm 输出时我错过了什么?还是分析 nm 输出不是获取这些依赖项的方法?

0 投票
2 回答
77 浏览

php - 如何使用 PHP&MySQL 正确处理:m 关系?

我有 3 张桌子:

现在我在这些表上运行我的 SQL 查询(当然有连接)。而我在 PHP 中收到的是 sth。像那样:

现在,在我的 PHP 数组中,我多次获得了相同的“search_param”和“id”。把它打印到屏幕上很糟糕。我可以按“id”对数据进行分组以避免这种情况,但是我只有 1 个“替换”值可用。

我正在寻找的结果是这样的:

我想知道的是:我的表结构是否可以通过修复查询来实现?或者我是否必须在我的 PHP 代码中关心这一点 - 如果是这样:任何提示如何做到最好?有很多数据...我的表结构正确吗?当谈到数据库时,我仍然有点不确定......

最好的祝福。

0 投票
0 回答
205 浏览

ios - 将符号添加到静态库的外部名称目录

我对由特定静态库生成的符号列表otoolnm为特定静态库生成的符号列表的差异感到困惑。我正在尝试链接一些静态库以创建最终的可执行文件,但链接器抱怨Undefined symbols: "_main", referenced from: _main$non_lazy_ptr in crt1.o. 如果我nm在其中一个库 ( libext.a) 上执行此操作,我会看到它_main是在一个名为main.o. 但是如果我在同一个otool-s库上做一个,我会发现存档部分中_main没有它。__.SYMDEF我如何强制_main包含在此部分中?在图书馆做事ranlib -c没有帮助。

0 投票
1 回答
6948 浏览

windows - Windows上有nm的替代品吗?

我想检查 Windows 上类似于 Linux 工具nm的目标文件。这可能吗?

0 投票
3 回答
6530 浏览

c - nm 命令输出中的奇怪符号名称

我构建了一个名为 InterfaceLayer.so 的动态库。当我打电话时:

作为输出,我得到一些看起来像这样的符号:

而我期待它是“开始”,就像我在代码中定义的函数的名称一样。

为什么会这样?

0 投票
1 回答
815 浏览

c - 在 Mac OS X 上以编程方式枚举动态库中的符号

我需要一种方法来枚举从 Mac OS X 上的 dylib 导出的符号及其地址。

从我通常会使用的外壳nm中 - 是否有一个库可以让我从我的代码中使用它来获得相同的东西nm?类似于 Windows 上的 dbghelp API。

作为最后的手段,我想我可以生成nm并解析输出,但如果有更清洁的方法,我很想避免这种情况。

0 投票
1 回答
2312 浏览

c++ - 将 shared_ptr 用于抽象类时,如何在 nm 或 objdump 中找到函数符号?

我将 shared_ptr 用于抽象类 ABC。ABCImpl 类是 ABC 的实现。abc_ptr 是一个shared_ptr<ABC> 指向一个ABCImpl 对象。在调用者函数中,abc_ptr 将调用 ABC 类中的成员函数 (func_in_ABC) 之一。编译成功。但是当我使用 nm 或 objdump 时,我只能看到 abc_ptr 的符号。调用者函数中没有为 func_in_ABC() 显示符号。

任何人都知道为什么,或者我如何在调用者函数中获得 func_in_ABC() 符号的输出?

代码如下: 在 ABC.h 中:

在 ABCImpl.h 中:

在 ABCImpl.cpp 中:

在调用者函数 D.cpp 中:

来自 nm 的 Do 的输出:

如果我在 ABC.h 中更改 func_in_ABC 的定义,则 D.cpp 的编译将失败。我认为它会在编译 Do 时检查类 ABC 的定义但是为什么我在调用者处找不到符号以映射到 ABC 中的定义?

0 投票
2 回答
9042 浏览

binutils - nm 和 objdump 的区别

查看手册,objdumpnm具有重叠的功能。

你什么时候用每一个?每个命令的最初目的是什么?