在库中搜索 mangle

Posted

技术标签:

【中文标题】在库中搜索 mangle【英文标题】:Search mangle into libraries 【发布时间】:2018-01-03 11:41:02 【问题描述】:

我想在库文件中找到一些函数或结构。为此,我使用“nm”命令,使用“find”命令输出作为参数文件。 (我想递归地在 /usr/lib 目录中搜索)我尝试了这个命令但没有成功:

nm -A | find /usr/lib -name "*.a" | grep "FunctionThatIWantFound"

【问题讨论】:

find 不会从标准输入中读取任何内容,因此不清楚您期望它完成什么。您想对find 报告的文件运行nm -A?或者nm -A 的输出应该以某种方式被find 使用? 我的意图是找到输出作为参数 这并没有真正澄清问题。您的答案在find 报告的文件上运行nm,所以如果这是您真正想要的,我想我们已经完成了;我主要是指出你的问题很不清楚,如果你能edit它来解释你的想法,我们也许可以帮助消除一些误解。 【参考方案1】:

我找到了解决办法

nm -A $(find /usr/lib -name "*.a")| grep "fprintf"

find /usr/lib -name '*.a' -exec nm -A  +| grep "fprintf"

感谢@tripleee

【讨论】:

作为一个小的健壮性调整,find /usr/lib -name '*.a' -exec nm -A + 避免了因不平凡的文件名或来自find 的过多输出而窒息。不过,-exec ... + 选项可能在您的find 中不可用;作为后备,-exec ... \; 应该可以一直工作到黑暗时代,但会产生更多进程,因此运行速度会更慢。

以上是关于在库中搜索 mangle的主要内容,如果未能解决你的问题,请参考以下文章

在库中处理 Posix 信号

使用 CMake 在库中查找符号

byte* 不会在库中保持“000000”

在库中使用 React 路由器 - 无法使用 useHistory()

Angular Schematics:在库中运行单元测试时出错

在库中使用 fstream 时,可执行文件中出现链接器错误