2024-09-28 21:07:36 发布
网友
我正在编写一个python程序,通过使用ctypes的mount系统调用挂载fuse文件系统。现在它在mount系统调用中给出了无效参数错误。我核对了所有的论点,它们似乎都是正确的。我从一个朋友那里听说strace可以用来调试这些类型的错误。有人能指导我如何使用strace调试这个问题吗。任何帮助都将不胜感激。提前谢谢。在
让我把这个问题变得更一般,我如何使用strace在c语言中调试相同的问题。在
使用strace非常简单,但它可能无法提供所需的信息。在
strace
既然你知道你要找的是什么系统,那么最简单的方法就是:
strace -fv -e trace=mount mount /dev/sda1 /tmp
(用python脚本替换mount /dev/...)。 -f跟随子对象(这里可能不需要),对于冗长,-v,而{}指示{}只跟踪mount系统调用。在
mount /dev/...
-f
-v
mount
此处输出示例:
因此,您可以看到传入的参数基本上是以它们将到达内核的形式传入的,以及返回代码。在
虽然您不会得到EINVAL的“解释”,但是只有当源参数有一个无效的超块时,才会出现这种情况,因此消息非常明确(除非您正在做一些更奇特的事情,在这种情况下,here还有其他可能)。在
EINVAL
使用
strace
非常简单,但它可能无法提供所需的信息。在既然你知道你要找的是什么系统,那么最简单的方法就是:
(用python脚本替换}指示{}只跟踪
mount /dev/...
)。-f
跟随子对象(这里可能不需要),对于冗长,-v
,而{mount
系统调用。在此处输出示例:
^{pr2}$因此,您可以看到传入的参数基本上是以它们将到达内核的形式传入的,以及返回代码。在
虽然您不会得到
EINVAL
的“解释”,但是只有当源参数有一个无效的超块时,才会出现这种情况,因此消息非常明确(除非您正在做一些更奇特的事情,在这种情况下,here还有其他可能)。在相关问题 更多 >
编程相关推荐