gpt4 book ai didi

c - 如何在需要 super 用户权限的程序上运行 Valgrind?

转载 作者:行者123 更新时间:2023-11-30 14:55:45 32 4
gpt4 key购买 nike

我正在用 C 语言(使用 libpcap)编写一个数据包嗅探器,我无法使用 Valgrind 来查找程序中的内存泄漏,因为它必须以 super 用户权限运行,因为如果没有这个,我什至无法打开用于捕获的网络接口(interface)。

当我尝试使用 sudo 运行 Valgrind 时,我得到了这个:

$ valgrind sudo ./[exec]
==5211==
==5211== Warning: Can't execute setuid/setgid/setcap executable: /usr/bin/sudo
==5211== Possible workaround: remove --trace-children=yes, if in effect
==5211==
valgrind: /usr/bin/sudo: Permission denied

所以我尝试以 super 用户身份运行(sudo su)并得到了这个:

# valgrind ./[exec]
valgrind: ./bin/TP2: Permission denied

以及:

$ sudo valgrind ./[exec]
valgrind: ./bin/TP2: Permission denied

我在整个互联网上搜索了这个问题的答案。

简而言之,我需要在数据包嗅探器中找到内存泄漏,并且它必须以管理员权限运行。有人可以帮我解决这个问题,或者至少推荐我另一个内存检查器吗?

最佳答案

我找到了解决方案。我不知道问题是因为我的可执行文件所在的卷是 NTFS 分区。首先,我将文件移动到 Ex4 分区上的随机文件夹,因此,我使用 chmod 更改了可执行文件的权限。

现在,当我以 root 身份登录时,我可以在我的程序上运行 Valgrind。

关于c - 如何在需要 super 用户权限的程序上运行 Valgrind?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45558573/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com