英语法语西班牙文

OnWorks 网站图标

abicheck - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 abicheck

这是命令 abicheck,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


abicheck - 检查应用程序二进制文件中对私有或演化符号的调用
库和一些系统库的静态链接。

概要


比查 [-h] [-k] [-a] [-I] [-v] [-f 列表文件] [-要么 外档] [-p 图案] [-e 图案] [-j
职位] [-l 图书馆] [-L 路径] [(-s|-S) 数据库文件] [(-d|-D) 数据库文件] [-O 数据库文件] [-一种
列表文件]

商品描述


比查 在应用程序二进制文件上运行并在出现以下任何情况时发出警告
检测到三个条件:

· 私做 符号 用法。 私有符号是库中的函数或数据变量
包内部的包。 它们由包中的库使用
用于内部通信,而不是应用程序开发人员的 API/ABI 的一部分
应该使用。

· 演变 符号 用法。 演化符号是库中的函数或数据变量
供开发人员使用但已标记为“进化”或
“不稳定”,因为它们可能会在以后的版本中变得不兼容或消失
库包。

· 静止 链接。 将系统库(例如 libc.a)静态链接到
应用程序通常不是一个好主意,因为它“锁定”到的系统库代码
应用程序二进制文件可能与系统的更高版本不兼容。 abicheck
尝试检测一些系统库的静态链接。

默认行为是,对于检查的每个二进制对象,检查来自该对象的直接调用
仅限二进制对象。 这 -l 选项允许二进制对象引入的库
他们的电话也被检查了。

配置


支持以下选项:

-k 即使存在严重错误,也要继续检查二进制文件(动态链接器报告
未解决的符号, dd(1) 失败,未检测到符号)。

-h 打印出长格式的帮助。

-v 冗长。 打印附加信息。

-f 列表文件
这款 列表文件 是一个包含要检查的二进制对象列表的文件,每行一个。
此列表附加到命令行上作为参数提供的任何文件。 如果
列表文件 是“-”,则使用标准输入。

-o 输出文件
将输出写入 输出文件 而不是标准输出。

-p 模式
修改版本名称模式匹配标签私有版本集。 默认是
/私人的/ 使用不区分大小写的匹配。

如果正则表达式的一个组件 模式 连续包含两个冒号: 帕特1::帕特2,
然后通过检查是否激活符号级匹配 版本::符号 or
图书馆::符号 火柴 模式 (其中符号名称、版本(如果有)和
库基名被替换 符号, 版本图书馆)。 例如,

-p 'FOO_VERS.*::_foopriv'
or
-p 'libfoo.so.*::_foopriv'

-e 模式
与...一样 -p 但对于“不断发展的”接口。

-L 路径
设置 LD_LIBRARY_PATH 环境变量 路径 在调用动态之前
链接器。 用 -L "" 取消设置 LD_LIBRARY_PATH。

如果其中一个组件 路径 是字符串“find”,然后是所有共享库
in 找到并将它们的路径插入到“查找”位置。 注意
顺序是随机的。

-l 图书馆
添加共享库的基本名称或完整路径名 图书馆 到列表中
进行私人呼叫时要检查的对象。 此选项可能会出现多次
一次在命令行上并且是附加的。 默认情况下,仅直接呼叫来自
检查系统库的二进制文件。 这 -l 开关允许检查
间接调用,例如:app -> supportlib -> systemlib。

-a 在检查和收集所有共享的列表之前循环遍历所有二进制文件
对象。 获取找到的每个共享对象的基本名称,并像
指定 -l option 选项,然后运行 ​​abicheck 检查。 这边走,
检查来自所有“应用程序内部”对象的调用,而不仅仅是检查
直接调用。 (当共享对象没有它们的依赖时很有用
记录。)

-I 检查时忽略共享库,只检查可执行文件。 兼容 -一种,
将首先搜索库,然后不检查。

-d 数据库文件, -D 数据库文件
为动态(公共与私有)指定后备平面文件符号数据库
测试。 如果库没有版本控制(即
图书馆本身不存在分类)。 用 -D 表明只有
信息来自 数据库文件 应该使用。 线路输入 数据库文件 可以是其中之一
形式:

图书馆|符号
图书馆|类|符号
图书馆|文件=路径

图书馆 必须是要指定的库的完整路径(不能是
基名)。

第一种形式标记 符号 作为私人。

第二种形式标记 符号 - 哪里 可能是公共的、私人的或
进化。

第三种形式表示文件 应该在需要时打开 图书馆 is
第一次遇到。 文件 包含前两种形式的行,除了
图书馆 场地。 第三种形式是一种加速,以避免处理许多分类
运行中从未遇到过的库的行。

-O 数据库文件
指定覆盖文件以修改动态的符号分类
(公共与私人)测试。 覆盖文件的格式如下:

图书馆|符号|类

库可以是完整路径或基本名称。 如果库是“__SKIP__”符号
对于在其中找到的任何库,将被忽略。该类可以是“公共的”,
“私人”、“发展中”或“已删除”。 “已删除”类是特例,意味着
在某些版本中,该符号已从库中删除。 符号“__ALL__”为
“已删除”类意味着整个库已被删除或不稳定
使用。

例子:

libfoo.so.1|__bar|私有
/lib/libxyz.so.1|baz|公共
__跳过__|__fputwc_xpg5

这些设置会覆盖库内的任何分类(来自库
版本控制,可从 PVS(1)等)。

-A 列表文件
将感兴趣的 ABI 库设置为中列出的库 列表文件 (充分
路径名,每行一个)。 只会检查对这些库的调用; 全部
其他库调用将被忽略。

-s 数据库文件, -S 数据库文件
为静态链接测试指定更广泛的符号数据库。 数据库文件 也许
逗号分隔的文件列表。 如果文件是静态存档 (lib*.a),则它是
处理以提取符号。 否则它是一个数据库文件,由
形式符号|库:模块的行例如:

shmat|/usr/lib/libc.a:shmsys.o
shmctl|/usr/lib/libc.a:shmsys.o
shmdt|/usr/lib/libc.a:shmsys.o
shmget|/usr/lib/libc.a:shmsys.o
...

当 module.o 中的所有符号都在应用程序中定义时,静态链接
假定该模块(和相应的库档案)。 用 -S 以表示
只应执行静态链接测试。

使用 VHDL 语言编写 -S INT 只做静态链接检查和使用内部数据库。

使用 VHDL 语言编写 -s 没有 or -S 没有 完全跳过静态链接检查。

-j 工作
运行 工作 作为单独的进程并行。 暗示 -k. 主要用于
多CPU机器在哪里 工作 应该接近处理器的数量。
输出收集在 tmp 文件中,并在运行结束时一次性打印为
每个工作完成。

If 工作 是“-”、“检测”或“n”,则 工作 将被设置为一个数字取决于
当前机器上的处理器数量(如果可以确定)。

操作数


支持以下操作数:

要检查的应用程序二进制对象列表。

OUTPUT


每个问题有一行(每个二进制检查可能有多个问题)
如下所示:

如果没有发现问题:
文件名: 好

如果使用私有符号:
文档名称: 私人的 (图书馆:私人版本) 私人符号

如果进化符号用法:
文件名: 进化 (图书馆:进化_vers) 进化符号

如果文件静态链接在系统归档库中:
文件名:STATIC_LINK(档案)

如果跳过文件检查:
文件名: 跳过 (原因)

在使用中删除的类 -O 覆盖文件选项,这些问题可能是
发现:

如果某个符号已从某个版本的库中删除:
文件名:DELETED_SYM: 符号/图书馆

(图书馆 如果符号未绑定,则将“未绑定”)

如果整个库已在某个版本上被删除或在其他方面不稳定
使用:
文件名:UNSTABLE_LIB: 图书馆-soname = 库路径

(库路径 如果找不到库,可能是“找不到文件”)

以下问题将导致致命错误,除非 -k 使用选项:

如果动态链接器无法解析 N 符号当 dd -r 运行:
文件名:UNBOUND_SYMBOLS: N

如果动态链接器没有发现动态绑定:
文件名:NO_BINDINGS

If dd -r - LD_DEBUG=文件,绑定 失败:
文件名:LDD_ERROR

在后三种情况下运行 dd -r 关于二进制文件的更多信息
出错了(注意 比查 运行 dd -r - LD_DEBUG=文件,绑定 放)。 一些
系统动态链接器不会处理 SUID 程序 LD_调试 设置(这通常
结果 无绑定 ,在 比查 输出)。

请注意,如果您在共享库(例如 libfoo.so)上运行 abicheck,
具有 而不去-l LIB 标记以记录其库依赖项,然后是“未绑定
符号”问题的可能性很大。除了重建
库或检查使用该库的应用程序二进制文件并使用 -l 选项
阿比检查。

退出 状态


返回以下退出值:

0 没有错误,也没有发现问题。

1 发生了致命错误。

2 没有发生致命错误,但一些二进制文件检测到问题。

附注


只检查 ELF 对象。

-s -S -d-O dbfiles '#' 字符以通常的方式开始一个注释行。

除非使用通过提供的“::”自定义匹配 -p or -e 标志,abicheck 可以
仅检查应用了符号版本控制的系统库(即
为库本身中的每个符号记录的私人和/或不断发展的信息)。
有关符号版本控制的详细信息,请参阅“Solaris 链接器和库指南”
网址上的答疑书 http://docs.sun.com/ab2/coll.45.13 和命令/版本脚本
GNU 链接器“ld”信息页面的部分。

默认符号版本名称匹配模式是不区分大小写的匹配
字符串 "private" 和 "evolving" 分别用于私有和演化案例。

包含单引号字符或换行符的奇数文件名将被跳过; 这样的
字符会干扰通过 shell 调用命令。

递归目录使用 发现(1) 并将输出收集到一个文件中以供使用
-f 选项,或在管道中通过:

找到... | abicheck -f - ...

使用 onworks.net 服务在线使用 abicheck


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    SAGA GIS
    SAGA GIS
    SAGA - 自动化系统
    地球科学分析 - 是地理
    信息系统 (GIS) 软件
    地理数据的强大功能
    加工和分析...
    下载 SAGA GIS
  • 2
    Java/JTOpen 工具箱
    Java/JTOpen 工具箱
    IBM Toolbox for Java / JTOpen 是一个
    Java类库支持
    客户端/服务器和互联网编程
    模型到运行 OS/400 的系统,
    i5/OS, 哦...
    下载 Java/JTOpen 工具箱
  • 3
    D3.js
    D3.js
    D3.js(或数据驱动文档的 D3)
    是一个 JavaScript 库,它允许你
    生成动态的交互式数据
    Web 浏览器中的可视化。 与D3
    您...
    下载 D3.js
  • 4
    2.6.8
    2.6.8
    一个可以帮助您的快速隧道代理
    绕过防火墙 这是一个应用程序
    也可以从
    https://sourceforge.net/projects/shadowsocksgui/.
    它哈...
    下载影袜
  • 5
    GLPI 主题
    GLPI 主题
    下载版本在
    https://github.com/stdonato/glpi-modifications/
    GLPI 0.84 和 0.85 新的颜色主题
    GLPI 修改 这是一个
    应用程序...
    下载 GLPI 主题
  • 6
    的SMPlayer
    的SMPlayer
    SMPlayer 是一款免费的媒体播放器
    带有内置编解码器的 Windows 和 Linux
    也可以播放 YouTube 视频。 一
    最有趣的功能
    SMP播放器:...
    下载SMPlayer播放器
  • 更多 ”

Linux 命令

Ad