【问题标题】:Usage of PMAP / Dynamically Loading Libraries (C/Linux)PMAP 的使用 / 动态加载库 (C/Linux)
【发布时间】:2020-02-27 08:54:33
【问题描述】:

以下cat++ 程序在打印之前动态加载应用于行的转换。编译成功后,我运行如下命令:

echo "hello world" |./cat++ -l ./librot13.so -l ./libupper.so -l ./librot13.so

当正在加载 1 个实现转换的库时,如何使用 pmap 检查添加到进程中的内存段数?我应该使用哪些 PID 和命令行选项?

【问题讨论】:

    标签: c linux dynamic posix libraries


    【解决方案1】:

    您需要在活动进程上运行“pmap”才能查看内存段。使用的命令 (echo ... | cat) 将在几分之一秒内完成。请考虑使用延迟版本。

    (echo bar ; sleep 100) | ./cat++ -l ./librot13.so -l ./libupper.so -l ./librot13.so &
    # The '$!' will hold the PID of the 'cat++' process.
    pmap $!
    

    【讨论】:

    • 你能帮我根据我的问题解释一下输出吗?因为它与我在网上看到的例子不同。这是我在终端上得到的:00005579a85ab000 8K r-x-- cat++ 00005579a87ac000 4K r---- cat++ 00005579a87ad000 4K rw--- cat++ 00005579a9589000 132K rw--- [ anon ] 00007f0aad8ce000 4K r-x-- libupper.so 00007f0aad8cf000 2044K ----- libupper.so 并继续...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多