manpagez: man pages & more
info gpgme
Home | html | info | man

File: gpgme.info,  Node: Debugging,  Next: Deprecated Functions,  Prev: UI Server Protocol,  Up: Top

Appendix B How to solve problems
********************************

Everyone knows that software often does not do what it should do and
thus there is a need to track down problems.  This is in particular true
for applications using a complex library like GPGME and of course also
for the library itself.  Here we give a few hints on how to solve such
problems.

   First of all you should make sure that the keys you want to use are
installed in the GnuPG engine and are usable.  Thus the first test is to
run the desired operation using ‘gpg’ or ‘gpgsm’ on the command line.
If you can’t figure out why things don’t work, you may use GPGME’s built
in trace feature.  This feature is either enabled using the environment
variable ‘GPGME_DEBUG’ or, if this is not possible, by calling the
function ‘gpgme_set_global_flag’.  The value is the trace level and an
optional file name.  If no file name is given the trace output is
printed to ‘stderr’.

For example
     GPGME_DEBUG=9:/home/user/mygpgme.log
(Note that under Windows you use a semicolon in place of the colon to
separate the fields.)

   A trace level of 9 is pretty verbose and thus you may want to start
off with a lower level.  The exact definition of the trace levels and
the output format may change with any release; you need to check the
source code for details.  In any case the trace log should be helpful to
understand what is going going on.  Warning: The trace log may reveal
sensitive details like passphrases or other data you use in your
application.  If you are asked to send a log file, make sure that you
run your tests only with play data.

   The trace function makes use of gpgrt’s logging function and thus the
special ‘socket://’ and ‘tcp://’ files may be used.  Because this
conflicts with the use of colons to separate fields, the following hack
is used: If the file name contains the string ‘^//’ all carets are
replaced by colons.  For example to log to TCP port 42042 this can be
used:
     GPGME_DEBUG=5:tcp^//127.0.0.1^42042

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.