/usr/share/doc/util-linux
NameSizeModeActions
examples/-0755rm
releases/-0755rm
00-about-docs.txt2600644editdlrm
AUTHORS.gz151130644editdlrm
blkid.txt32580644editdlrm
cal.txt22620644editdlrm
changelog.Debian.gz26540644editdlrm
col.txt19130644editdlrm
copyright230450644editdlrm
deprecated.txt30860644editdlrm
getopt.txt9920644editdlrm
getopt_changelog.txt19270644editdlrm
howto-build-sys.txt31930644editdlrm
howto-compilation.txt29450644editdlrm
howto-contribute.txt.gz34370644editdlrm
howto-debug.txt24370644editdlrm
howto-man-page.txt1260644editdlrm
howto-pull-request.txt.gz42600644editdlrm
howto-tests.txt.gz17060644editdlrm
howto-usage-function.txt.gz23280644editdlrm
hwclock.txt1470644editdlrm
modems-with-agetty.txt26140644editdlrm
mount.txt5210644editdlrm
NEWS.Debian.gz18970644editdlrm
PAM-configuration.txt6710644editdlrm
parse-date.txt.gz81240644editdlrm
pg.txt4480644editdlrm
poeigl.txt.gz88670644editdlrm
README.Debian4810644editdlrm
release-schedule.txt13540644editdlrm
Edit: /usr/share/doc/util-linux/howto-debug.txt (2437B)
Debugging util-linux programs ============================= How to deal libtool ------------------- There are considerations to be made when profiling or debugging some programs found in the util-linux package. Because wrapper scripts are used for the binaries to make sure all library dependencies are met, you cannot use tools such as gdb or valgrind directly with them. Let's take for example the mount command: $> cd /path/to/util-linux $> file mount/mount mount/mount: Bourne-Again shell script text executable The binary itself is located in the mount/.libs/ directory: $> file mount/.libs/mount mount/.libs/mount: ELF 64-bit LSB executable, x86-64, version 1 \ (SYSV), dynamically linked (uses shared libs) [...] When this command is run, there's a library dependency error: $> mount/.libs/mount mount/.libs/mount: /lib/libblkid.so.1: version `BLKID_2.20' not found \ (required by mount/.libs/mount) To overcome this we need set the LD_LIBRARY_PATH variable to read the path of the shared lib found in the sources, and not system-wide: $> export LD_LIBRARY_PATH=$PWD/libblkid/src/.libs/:$LD_LIBRARY_PATH Now external debugging tools can be run on the binary. Happy hacking! Davidlohr Bueso, August 2011 The libmount & libblkid ----------------------- Both of the libraries can be debugged by setting an environment variable consisting of a number. The number will be used as a bit mask, so the more 1 the higher the debugging level. Search for `DEBUG' from files libblkid/src/blkidP.h libmount/src/mountP.h to see what the different bits mean. At the time of writing this the following enabled full debug. export LIBBLKID_DEBUG=all export LIBMOUNT_DEBUG=all export LIBFDISK_DEBUG=all export LIBSMARTCOLS_DEBUG=all The libblkid reads by default /etc/blkid.conf which can be overridden by the environment variable BLKID_CONF. See manual libblkid/libblkid.3 for details about the configuration file. Block device information is normally kept in a cache file (see blkid man page for more information about the cache file location) that can be overridden by the environment variable BLKID_FILE. To libmount uses three paths, which can be overridden by using environment variables. Notice that these environment variables are ignored for non-root users. env variable if not set defaults to LIBMOUNT_FSTAB /etc/fstab LIBMOUNT_MTAB /etc/mtab LIBMOUNT_UTAB /run/mount/utab or /dev/.mount/utab