小编evo*_*vah的帖子

Solaris进程如何读取自己的符号表?

我有一个Solaris进程,它是一个C++应用程序,由ld几个.so库加载.该应用程序有一个函数,它在调用函数中获取一个返回地址,然后尝试确定所述调用函数的名称.

如果我使用dladdr(3)它,它并不总是把我期望在Dl_info :: dli_sname中看到.看起来它返回的函数名称不是最接近下方或指针值.如果我取指针值并查看输出nm,我可以将该值与我期望的确切函数匹配.

我想知道是否有办法检索进程的符号映射,让它搜索函数名称而不使用dladdr(3).我特别感兴趣的是获得一个符号映射,不仅可以用于可执行文件本身,还可以用于.so它已加载的所有库.

我在Solaris10/SPARC上运行,我正在使用gcc 4.2.x.

谢谢!

c++ solaris loader ld dlopen

7
推荐指数
1
解决办法
944
查看次数

Ansible中的任意主机名解析

有没有办法在Ansible group_vars文件或Ansible使用的Jinja2模板中将任意字符串解析为主机名?让我们说,我想定义一个变量,global_vars/all其中包含www.google.com解析的几个IP地址之一.在这个例子中,我www.google.com只是作为一个字符串的例子,可以解析为多个IP地址但我不能使用Ansible hostvars作为地址,因为我不能ssh到它.

我试图连接Pythonic,socket.gethostbyname()但无法正确使用语法.最多,我的变量变成了一个文字"socket.gethostbyname('my-host-1')".

我知道我可以回退到shell脚本并利用shell中可用的工具但我想看看在Ansible中是否有一种优雅的方法来实现这一点.

问题的更多细节是我需要使用允许主机的IP地址填充Postgres HBA配置文件.我无法使用其主机名,因为目标部署没有基于主机名的HBA所需的反向DNS.

我真的希望Postgres解析配置文件中的名称并将其与客户端的IP地址进行匹配,而不是反向查找客户端的IP地址,然后匹配主机名字符串.但这太过于期待,而且等待时间太长.我现在需要一个解决方法,我想留在Ansible中,而不必将其卸载到外部脚本中.

感谢您阅读这篇文章!

python sockets postgresql ansible ansible-playbook

6
推荐指数
1
解决办法
4086
查看次数

标签 统计

ansible ×1

ansible-playbook ×1

c++ ×1

dlopen ×1

ld ×1

loader ×1

postgresql ×1

python ×1

sockets ×1

solaris ×1