gpt4 book ai didi

python - Strace:如何调试无效参数错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:15 25 4
gpt4 key购买 nike

我正在编写一个 python 程序,通过使用 ctypes 的挂载系统调用来挂载 fuse 文件系统。现在它在挂载系统调用中给出无效参数错误。我检查了所有的论点,它们似乎是正确的。我听 friend 说 strace 可以用来调试这些类型的错误。有人可以指导我如何使用 strace 来调试问题。任何帮助,将不胜感激。提前致谢。

让我把问题说得更笼统一些,我如何使用 strace 来调试 c 语言中的相同问题。

最佳答案

使用 strace 非常简单,但它可能无法为您提供所需的信息。

既然你知道你在寻找什么系统调用,那么最简单的事情就是:

strace -fv -e trace=mount mount /dev/sda1 /tmp

(将 mount/dev/... 替换为您的 python 脚本)。-f 是跟随 children(这里可能不需要),-v 是冗长的,-e trace=mount 指示 strace 只跟踪 mount 系统调用。

此处示例输出:

$ sudo strace -fv -e trace=mount mount /dev/sda1 /tmp
mount("/dev/sda1", "/tmp", "ext2", MS_MGC_VAL, NULL) = 0

所以你看到传入的参数本质上是以它们将到达内核的形式传递的,以及返回代码。

虽然您不会得到 EINVAL 的“解释”,但这只应该在源参数具有无效 super block 时发生,所以消息非常明确(除非您做一些更奇特的事情,在这种情况下还有其他可能性,如 here 所列)。

关于python - Strace:如何调试无效参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322158/

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