目前我正在使用 C 语言在 Linux(2.6 内核)中使用 FUSE 文件系统模块开发应用程序。由于某些编程错误,应用程序在安装文件系统后崩溃。由于我是 Linux/C 环境中的新手开发人员。您能否告诉我调试此类程序的可能选项?
最佳答案
FUSE 的几个特性可能会导致调试变得困难:它通常在后台运行(这意味着它与标准输入/输出分离)并且是多线程的(这会引入竞争条件并且使用它进行调试更加复杂数据库)。幸运的是,这两个功能都可以禁用:
- 使用
-f
开关将您的应用程序保持在前台。这将使您的 printf 行工作。 - 使用
-s
开关禁用多线程。禁用多线程会限制性能,但也会隐藏某些错误(竞争条件),简化 gdb 的使用,并确保 printf 输出可读(当多个线程几乎同时调用 printf 时,它们的输出可能会混淆)。<
我还推荐阅读 Geoff Kuenning 的 FUSE documentation .
关于c - 如何在 Linux 中调试 FUSE 文件系统崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1871830/