首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当通过shell脚本运行应用程序时,Val差尔没有显示正确的堆使用情况

当通过shell脚本运行应用程序时,Val差尔没有显示正确的堆使用情况
EN

Stack Overflow用户
提问于 2016-03-01 06:15:20
回答 1查看 104关注 0票数 2

在Linux上,我使用val差制检查存档/压缩工具p7zip (在Windows上为7zip)的堆分配。我从这里下载了代码(https://sourceforge.net/projects/p7zip/files/p7zip/)并构建了它(make all_test),然后安装了它(./install.sh)。

安装后,在/usr/local/bin创建一个名为'7Za‘的shell脚本,其内容如下:

代码语言:javascript
复制
#! /bin/sh
"/usr/local/lib/p7zip/7za" "$@"

另外,在指定的路径/usr/local/lib/p7zip/7za上,放置7za的可执行文件。

现在,如果我使用这个命令运行val差使来测试7za的内存使用情况(这基本上是运行shell脚本),那么我只能得到2KB的堆使用量。

代码语言:javascript
复制
valgrind 7za x file.7z

然而,如果我直接使用7za二进制文件,那么大约1MB的内存使用量就会很高,这看起来也是真实的:

代码语言:javascript
复制
valgrind /usr/local/lib/p7zip/7za x /home/z/Desktop/file.7z

类似地,当我构建代码时,会创建一个bin目录,其中包含7za可执行文件。如果我从那里运行它,那么我再次得到高和正确的内存使用。

我试图理解这两种方法的不同之处。为什么使用安装的应用程序(通过sheel脚本运行)没有给出正确的内存使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 10:22:37

对于ELF 64位或ELF 32位可执行项,val研应该调试与内存相关的问题.它不能与shell脚本一起使用。因此,您将无法使用shell脚本调试应用程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35715924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档