c - 如何在 Linux 中调试 FUSE 文件系统崩溃

标签 c linux debugging fuse

目前我正在使用 C 语言在 Linux(2.6 内核)中使用 FUSE 文件系统模块开发应用程序。由于某些编程错误,应用程序在安装文件系统后崩溃。由于我是 Linux/C 环境中的新手开发人员。您能否告诉我调试此类程序的可能选项?

最佳答案

FUSE 的几个特性可能会导致调试变得困难:它通常在后台运行(这意味着它与标准输入/输出分离)并且是多线程的(这会引入竞争条件并且使用它进行调试更加复杂数据库)。幸运的是,这两个功能都可以禁用:

  1. 使用-f 开关将您的应用程序保持在前台。这将使您的 printf 行工作。
  2. 使用-s 开关禁用多线程。禁用多线程会限制性能,但也会隐藏某些错误(竞争条件),简化 gdb 的使用,并确保 printf 输出可读(当多个线程几乎同时调用 printf 时,它们的输出可能会混淆)。<

我还推荐阅读 Geoff Kuenning 的 FUSE documentation .

关于c - 如何在 Linux 中调试 FUSE 文件系统崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1871830/

相关文章:

macos - 来自 CA_DEBUG_TRANSACTIONS 的更长回溯

c - Mac 上的 SetPixel 等效项?

通过引用调用从 Julia 调用 C 函数的正确方法?

c - 项目中的Visual Studio 2017文件夹

c - 使用负数作为数组索引

visual-studio - 如何在 Visual Studio 2015 中创建的 VSIX 中调试 Visual Studio 包

asp.net - 使用 Mdbg 的 ASP.NET 的基于 Web 的堆栈转储工具?

Linux 最大服务器进程数

linux - 如何在linux上安装mongodb二进制包

linux - 使用linux命令在目录中查找多个字符串