如何调试无效的参数

2024-09-28 21:07:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

让我把这个问题变得更一般,我如何使用strace在c语言中调试相同的问题。在


Tags: 程序语言类型参数系统错误朋友ctypes
1条回答
网友
1楼 · 发布于 2024-09-28 21:07:36

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

既然你知道你要找的是什么系统,那么最简单的方法就是:

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

(用python脚本替换mount /dev/...)。 -f跟随子对象(这里可能不需要),对于冗长,-v,而{}指示{}只跟踪mount系统调用。在

此处输出示例:

^{pr2}$

因此,您可以看到传入的参数基本上是以它们将到达内核的形式传入的,以及返回代码。在

虽然您不会得到EINVAL的“解释”,但是只有当源参数有一个无效的超块时,才会出现这种情况,因此消息非常明确(除非您正在做一些更奇特的事情,在这种情况下,here还有其他可能)。在

相关问题 更多 >