Dec-04: A few people have asked about debugging your FUSE code, and in the process of putting together some instructions on it, I discovered a few mistakes in my code. Many of them are superficial (but might as well be corrected); but the structure of main() in each source file was insufficient to put the FUSE code into a useful state for debugging, either with printed debugging statements or with gdb.
What to do? First, go check the Project-8 document on the assignments page; hit reload on your browser to be sure to get the version that says, at the top, Last updated: Dec-04. This version of the document has a new section: 3.4 Debugging this kind of code. It provides instructions on how to use both print statements and gdb to debug your FUSE program.
Also, you need new copies of the code files. In each, I needed to update the main() function to allow the use of options that make debugging possible. While I was at it, I also put in code to enforce the use of absolute pathnames for the storage directory and the mount point, since people often forget the leading ${PWD} on these arguments at the command line, thus leading to strange and incorrect behavior. Finally, I made some of the naming of functions more consistent. For example, it was a mistake on my part to have all of the functions in versfs.c begin with the prefix mirror_. They now, more appropriately, begin with vers_
To get the new copies of these code files, you want to preserve any work you've done by making a copy of your old versfs.c code, and then grab the new code files. From within your sysproj-8 directory:
$ cp versfs.c old-versfs.c $ wget -nv -nc -i https://bit.ly/cosc-171-20f-p8
Nov-30: Project-8 is now available on the Assignments page. It is due on Friday, Dec-11, which is the last day of exams. This final project must be done wholly on your own! You can ask me questions if they arise, but you must devise your own solution and implement it by yourself.