2009-09-15 65 views
2

使用HP-UX时,我可以使用chatr实用程序来报告共享库的各种内部属性。它也将允许我修改我建立的共享库的内部属性。如何检查共享对象的内部属性?

参考chatr实用程序可以报告,在某些情况下修改,这样的事情:

  1. 运行时绑定行为,
  2. 在构建时创建的嵌入式库路径列表,
  3. 是否库容易受运行时路径查找,
  4. 内部名称,
  5. 等等等等

这样的实用工具是否可用于Solaris?

编辑:怪异!感谢mark4o的回答,我重新访问了典型系统.so的elfdump输出(Sol 10上的libm.so.2)。然而,和这里的怪异的一部分,我输入了错误的命令进入:

elfdump libm.so.2 | moe 

在意外发现一个惊人的行程,这给我回了一个工具,叫做萌,其手册页描述部分说的用法消息:

moe实用程序显示了包含保留的运行时链接程序标记的路径名的最佳扩展。这些令牌可用于定义动态对象内的依赖关系,委托和运行路径。这些令牌在运行时的扩展为选择对象和搜索路径提供了一种灵活的机制,可以在该机器上执行最佳操作。

这将帮助我解决,为什么两个两个不同的机器的离开我的完整可执行文件,无法启动一个服务器上的libm.so.2 SHLIB不兼容。

回答

2

有关显示信息,请参见Solaris elfdumppvs实用程序。对于调试绑定问题,larimoe也可能有所帮助。但是,这些实用程序无法修改库。

+0

mark4o,欢呼声,但elfdump并没有给我完全我所追求的。然而,重新审视给定系统的elfdump输出,所以给了我一个看起来非常有用的实用程序。我会编辑我原来的问题。 – 2009-09-15 15:48:12

+0

@ mark4o,感谢pvs的指针! +1( - : – 2009-09-15 15:57:34

+0

当然,'lari'和'moe'的兄弟是[crle](http://docs.oracle.com/cd/E23824_01/html/821-1461/crle-1。 html#scrolltoc)实用程序,用于处理系统默认运行路径 – alanc 2012-08-18 06:06:04

2

从Solaris 11(以及一些Solaris Express版本引导它,但不包括Solaris 10或更早版本)开始,现在有一个用于修改运行时路径和类似属性的elfedit tool

+0

现在,如果只有您可以在Oracle自己的站点上获得由Oracle修复的链接(例如您链接到的帖子)......(感谢您将它们修复为SO btw) – mark4o 2012-08-18 19:48:33

+0

是的,所有链接的破坏都很烦人。对于那篇文章,你可以看到[elfedit(1)manpage](http://docs.oracle.com/cd/E23824_01/html/821-1461/ elfedit-1.html#scrolltoc),现在该版本已发布,并在其他链接中将blogs.oracle.com替换为blogs.sun.com。 – alanc 2012-08-19 01:26:20