Debugging support in gamin:
Both the client and server side, if compiled with debug support
accept an environment variable GAM_DEBUG which is set will make
them report debugging informations to stdout.
Usually for debugging you also want to use a dedicated server
process so setting the GAM_CLIENT_ID environment allows to ensure this.
Usually one also want to keep control over the server lifetime
and not have it exit automatically after 30 seconds without connection,
there is a command line flag --notimeout to gam_server for this.
a typical example of a debugging session using 2 shells would be
shell1: export GAM_DEBUG=
shell1: gam_server --notimeout test
running the server in debug mode using the ID "test"
shell2: export GAM_DEBUG=
shell2: export GAM_CLIENT_ID=test
shell2: gamin_client
this will run a verbose session. It is perfectly possible to also
run the client under a debugger, for the server it works too except
the dnotify kernel interface uses a signal SIG33 which is trapped by
gdb. To avoid this use the handle gdb instruction:
(gdb) handle SIG33 nostop
Signal Stop Print Pass to program Description
SIG33 No Yes Yes Real-time event 33
(gdb)
even better add it to your $HOME/.gdbinit
Daniel Veillard
$id$
Copyright 2K16 - 2K18 Indonesian Hacker Rulez