问题标签 [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 投票
0 回答
62 浏览

c++ - 使用 nm 一个文件时 U name1@@GLIBC 与 U name2 有什么区别

使用一个文件时U name1@GLIBC与有什么区别?U name2nm

提供更多信息:

  1. 在 C++ 中

  2. nm 一个文件

  3. U有两种类型:(a)以@@others (b)不以结尾@@

0 投票
1 回答
564 浏览

mysql - mysql n:m 关系删除查询 1242 子查询返回多于 1 行

我有两个 SQL 表,“产品”和“标签”。它们具有 n:m 关系,使用第三个表“product_tags”。

我想一起删除一些产品和相应的标签。

比方说,我有 products.product_id=3,那个产品有 tags.tag_id=3,tags.tag_id=5

product_tags 表

product_id 3 tag_id 3
product_id 3 tag_id 5

要么会产生

那么,我该如何实现呢?

0 投票
1 回答
313 浏览

c - Can typedef structures cause name clashes when linking a static library?

When I create a static library, can the typedef structures cause name clashes?

Given the example header file below, I understand that myFun() will be an external symbol and could clash with any other library with a myFun() function. To avoid this, the best thing to do is give myFun() a longer and more specific name.

Is myStruct an external symbol that could cause naming clashes when linking with another library?

And why does it not get listed when I look at the .a static library file with nm myLib.a?

0 投票
1 回答
3115 浏览

solaris - 未找到符号 (ldd),但它存在 (nm)

我的应用程序抱怨找不到符号:

ldd 也是这样说的:

但是,符号在那里 - 这就是 nm 所说的:

但正如你所看到的:Shndx=UNDEF。这意味着什么?我想如果某些东西是未定义的,那它根本就不存在。但不知何故它就在那里,虽然我的应用程序找不到它。

系统:Solaris 10 / UltraSPARC 我的应用程序和所有库都是 64 位的,/foo 在 LD_LIBRARY_PATH_64 中(/bar 不在)。

编辑:同时我知道 UNDEF 就像“需要在另一个库中解决”。而且我还找到了真正具有符号_ 1cDstdEcerr的lib - 它是libCstd.so,它位于/usr/lib 中。或者更准确地说(因为我们需要 64 位变体)/usr/lib/64. 因此它位于 crle 显示的系统默认库搜索路径之一中。现在的问题是:当包含符号的库在系统的搜索路径中时,如何无法解析符号?

0 投票
1 回答
4456 浏览

linux - 列出 ld 链接器可用的所有符号

我有一个由 (linux) gcc 4.8.2 编译的带有 -fvisibility=hidden 的小型静态库,它链接到一个共享库(我有两个版本,一个带有 C 代码的 gcc 和一个带有 Fortran 代码的 ifort)。静态库由一些内部函数组成,所有函数都以“ST_LIB_”为前缀。

我想确保在静态库中声明的函数不能被链接到共享库的任何可执行文件/库使用。在 Linux 上检查具有某些前缀的函数不能被任何外部库使用的最佳命令是什么?

我努力了:

nm --dynamic shared_lib | grep -i "ST_LIB_" | wc -l(输出 0)

readelf -d shared_lib | grep -i "ST_LIB_" | wc -l(输出 0)

nm -g shared_lib | grep -i "ST_LIB_" | wc -l(输出 26 或 0 取决于共享库)

readelf -s shared_lib | grep -i "ST_LIB_" | wc -l(输出 26 或 0 取决于共享库)

readelf -Ws shared_lib | grep -i "ST_LIB_" | grep -i "HIDDEN" | wc -l(输出 26 或 0 取决于共享库)

0 投票
1 回答
673 浏览

compilation - objdump/nm 用于 libtool 对象 (.lo) 文件

我编译了一个开源库,结果发现生成的共享库 (.so) 中有未解析的符号。在我看来,自然的下一步似乎是找出哪个对象具有未解析的符号,但我无法将nm其应用于objdump中间 libtool 对象文件 (.lo)。有什么方法可以查看 .lo 文件中的符号列表吗?

0 投票
1 回答
507 浏览

c++ - 打印定义给定符号的库的名称

假设您有符号的名称(已解构或未解构)以及动态链接到其他符号的库的名称,您想找出哪个库能够解析该符号。

我尝试使用nmobjdumpreadelf我找不到关于它的好的文档,看起来使用这个工具是不可能的。

gdb提供了类似的东西,但它是一个调试器,我需要一些东西来快速查找,你知道如何在不启动调试会话的情况下做到这一点吗?

0 投票
1 回答
655 浏览

xslt-2.0 - java.lang.RuntimeException:无法识别的 XSLTC 扩展“http://saxon.sf.net/:assign”

java.lang.RuntimeException: Unrecognized XSLTC extension 'http://saxon.sf.net/:assign'当我通过java运行我的xsl代码时,我不断得到。xsl声明如下:

我正在尝试使用 Saxon 来在每次流进入 for-each 循环时增加一个变量。

0 投票
2 回答
680 浏览

c++ - nm 实用程序获取 .so 文件中定义的内容返回错误

我需要获取 .so 文件中定义的符号。我使用最新的 Mac OS,我这样做:

错误:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm:无效参数-C用法:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin/nm [-agnopruUmxjlfAP[s segname sectname] [-] [-t 格式] [[-arch ] ...] [file ...]

据我了解,这是另一个 nm 实用程序?它与XCode有关吗?如何解决这个问题?

编辑:添加创建 .so 文件的代码。

这个例子来自 Android Native Development Kit Cookbook。

这也是我的使用信息nm

用法:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm [-agnopruUmxjlfAP[s segname sectname] [-] [-t format] [[-arch ] ...] [文件 ...]

0 投票
1 回答
3635 浏览

gdb - gdb 在相对于基地址的地址处打印符号

我在地址 myfile.exe+0x144c7(来自 ProcessExplorer 中的线程列表)发现了一个可疑的死锁。现在,我想知道它是什么功能。

要求 addr 是绝对的。是否有一个命令采用 ProcessExplorer 给出的相对地址。我可以添加 0x400000 但如果 GDB 可以为我做会更好。