1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-08 12:44:23 +01:00

Allow for numerical debug levels.

This commit is contained in:
Werner Koch 2009-12-03 19:13:19 +00:00
parent 56680123a6
commit 1356693b0d
40 changed files with 5371 additions and 5208 deletions

3
NEWS
View File

@ -4,6 +4,9 @@ Noteworthy changes in version 2.0.14
* The default for --inlucde-cert is now to include all certificates * The default for --inlucde-cert is now to include all certificates
in the chain except for the root certificate. in the chain except for the root certificate.
* Numerical values may now be used as an alternative to the
debug-level keywords.
Noteworthy changes in version 2.0.13 (2009-09-04) Noteworthy changes in version 2.0.13 (2009-09-04)
------------------------------------------------- -------------------------------------------------

View File

@ -1,3 +1,8 @@
2009-12-03 Werner Koch <wk@g10code.com>
* gpg-agent.c (set_debug): Allow for numerical debug leveles. Print
active debug flags.
2009-12-02 Werner Koch <wk@g10code.com> 2009-12-02 Werner Koch <wk@g10code.com>
* trustlist.c (read_trustfiles): Store the pointer returned from * trustlist.c (read_trustfiles): Store the pointer returned from

View File

@ -360,19 +360,30 @@ my_strusage (int level)
static void static void
set_debug (void) set_debug (void)
{ {
int numok = (debug_level && digitp (debug_level));
int numlvl = numok? atoi (debug_level) : 0;
if (!debug_level) if (!debug_level)
; ;
else if (!strcmp (debug_level, "none")) else if (!strcmp (debug_level, "none") || (numok && numlvl < 1))
opt.debug = 0; opt.debug = 0;
else if (!strcmp (debug_level, "basic")) else if (!strcmp (debug_level, "basic") || (numok && numlvl <= 2))
opt.debug = DBG_ASSUAN_VALUE; opt.debug = DBG_ASSUAN_VALUE;
else if (!strcmp (debug_level, "advanced")) else if (!strcmp (debug_level, "advanced") || (numok && numlvl <= 5))
opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE; opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE;
else if (!strcmp (debug_level, "expert")) else if (!strcmp (debug_level, "expert") || (numok && numlvl <= 8))
opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE
|DBG_CACHE_VALUE); |DBG_CACHE_VALUE);
else if (!strcmp (debug_level, "guru")) else if (!strcmp (debug_level, "guru") || numok)
opt.debug = ~0; {
opt.debug = ~0;
/* Unless the "guru" string has been used we don't want to allow
hashing debugging. The rationale is that people tend to
select the highest debug value and would then clutter their
disk with debug files which may reveal confidential data. */
if (numok)
opt.debug &= ~(DBG_HASHING_VALUE);
}
else else
{ {
log_error (_("invalid debug-level `%s' given\n"), debug_level); log_error (_("invalid debug-level `%s' given\n"), debug_level);
@ -390,6 +401,17 @@ set_debug (void)
if (opt.debug & DBG_CRYPTO_VALUE ) if (opt.debug & DBG_CRYPTO_VALUE )
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1); gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose); gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
if (opt.debug)
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s\n",
(opt.debug & DBG_COMMAND_VALUE)? " command":"",
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"");
} }

View File

@ -213,20 +213,26 @@ forth to @var{epoch} which is the number of seconds elapsed since the year
@item --debug-level @var{level} @item --debug-level @var{level}
@opindex debug-level @opindex debug-level
Select the debug level for investigating problems. @var{level} may be Select the debug level for investigating problems. @var{level} may be
one of: a numeric value or a keyword:
@table @code @table @code
@item none @item none
no debugging at all. No debugging at all. A value of less than 1 may be used instead of
@item basic the keyword.
some basic debug messages @item basic
@item advanced Some basic debug messages. A value between 1 and 2 may be used
more verbose debug messages instead of the keyword.
@item expert @item advanced
even more detailed messages More verbose debug messages. A value between 3 and 5 may be used
@item guru instead of the keyword.
all of the debug messages you can get @item expert
@end table Even more detailed messages. A value between 6 and 8 may be used
instead of the keyword.
@item guru
All of the debug messages you can get. A value greater than 8 may be
used instead of the keyword. The creation of hash tracing files is
only enabled if the keyword is used.
@end table
How these messages are mapped to the actual debugging flags is not How these messages are mapped to the actual debugging flags is not
specified and may change with newer releases of this program. They are specified and may change with newer releases of this program. They are

View File

@ -2134,6 +2134,34 @@ therefore enables a fast listing of the encryption keys.
@opindex interactive @opindex interactive
Prompt before overwriting any files. Prompt before overwriting any files.
@item --debug-level @var{level}
@opindex debug-level
Select the debug level for investigating problems. @var{level} may be
a numeric value or by a keyword:
@table @code
@item none
No debugging at all. A value of less than 1 may be used instead of
the keyword.
@item basic
Some basic debug messages. A value between 1 and 2 may be used
instead of the keyword.
@item advanced
More verbose debug messages. A value between 3 and 5 may be used
instead of the keyword.
@item expert
Even more detailed messages. A value between 6 and 8 may be used
instead of the keyword.
@item guru
All of the debug messages you can get. A value greater than 8 may be
used instead of the keyword. The creation of hash tracing files is
only enabled if the keyword is used.
@end table
How these messages are mapped to the actual debugging flags is not
specified and may change with newer releases of this program. They are
however carefully selected to best aid in debugging.
@item --debug @var{flags} @item --debug @var{flags}
@opindex debug @opindex debug
Set debugging flags. All flags are or-ed and @var{flags} may Set debugging flags. All flags are or-ed and @var{flags} may

View File

@ -617,19 +617,25 @@ is given as fingerprint or keygrip.
@item --debug-level @var{level} @item --debug-level @var{level}
@opindex debug-level @opindex debug-level
Select the debug level for investigating problems. @var{level} may be Select the debug level for investigating problems. @var{level} may be
one of: a numeric value or by a keyword:
@table @code @table @code
@item none @item none
no debugging at all. No debugging at all. A value of less than 1 may be used instead of
the keyword.
@item basic @item basic
some basic debug messages Some basic debug messages. A value between 1 and 2 may be used
instead of the keyword.
@item advanced @item advanced
more verbose debug messages More verbose debug messages. A value between 3 and 5 may be used
instead of the keyword.
@item expert @item expert
even more detailed messages Even more detailed messages. A value between 6 and 8 may be used
instead of the keyword.
@item guru @item guru
all of the debug messages you can get All of the debug messages you can get. A value greater than 8 may be
used instead of the keyword. The creation of hash tracing files is
only enabled if the keyword is used.
@end table @end table
How these messages are mapped to the actual debugging flags is not How these messages are mapped to the actual debugging flags is not

View File

@ -123,20 +123,26 @@ verbose commands to @command{gpgsm}, such as @samp{-vv}.
@item --debug-level @var{level} @item --debug-level @var{level}
@opindex debug-level @opindex debug-level
Select the debug level for investigating problems. @var{level} may be Select the debug level for investigating problems. @var{level} may be
one of: a numeric value or a keyword:
@table @code @table @code
@item none @item none
no debugging at all. No debugging at all. A value of less than 1 may be used instead of
the keyword.
@item basic @item basic
some basic debug messages Some basic debug messages. A value between 1 and 2 may be used
instead of the keyword.
@item advanced @item advanced
more verbose debug messages More verbose debug messages. A value between 3 and 5 may be used
instead of the keyword.
@item expert @item expert
even more detailed messages Even more detailed messages. A value between 6 and 8 may be used
instead of the keyword.
@item guru @item guru
all of the debug messages you can get All of the debug messages you can get. A value greater than 8 may be
used instead of the keyword. The creation of hash tracing files is
only enabled if the keyword is used.
@end table @end table
How these messages are mapped to the actual debugging flags is not How these messages are mapped to the actual debugging flags is not

View File

@ -1,3 +1,8 @@
2009-12-03 Werner Koch <wk@g10code.com>
* gpg.c (set_debug): Allow for numerical debug levels. Print
active debug flags.
2009-09-28 Werner Koch <wk@g10code.com> 2009-09-28 Werner Koch <wk@g10code.com>
* trustdb.c (get_validity_info): Take care of a NULL PK. Fixes * trustdb.c (get_validity_info): Take care of a NULL PK. Fixes

View File

@ -972,19 +972,30 @@ set_opt_session_env (const char *name, const char *value)
static void static void
set_debug (const char *level) set_debug (const char *level)
{ {
int numok = (level && digitp (level));
int numlvl = numok? atoi (level) : 0;
if (!level) if (!level)
; ;
else if (!strcmp (level, "none")) else if (!strcmp (level, "none") || (numok && numlvl < 1))
opt.debug = 0; opt.debug = 0;
else if (!strcmp (level, "basic")) else if (!strcmp (level, "basic") || (numok && numlvl <= 2))
opt.debug = DBG_MEMSTAT_VALUE; opt.debug = DBG_MEMSTAT_VALUE;
else if (!strcmp (level, "advanced")) else if (!strcmp (level, "advanced") || (numok && numlvl <= 5))
opt.debug = DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE; opt.debug = DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE;
else if (!strcmp (level, "expert")) else if (!strcmp (level, "expert") || (numok && numlvl <= 8))
opt.debug = (DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE opt.debug = (DBG_MEMSTAT_VALUE|DBG_TRUST_VALUE|DBG_EXTPROG_VALUE
|DBG_CACHE_VALUE|DBG_FILTER_VALUE|DBG_PACKET_VALUE); |DBG_CACHE_VALUE|DBG_FILTER_VALUE|DBG_PACKET_VALUE);
else if (!strcmp (level, "guru")) else if (!strcmp (level, "guru") || numok)
opt.debug = ~0; {
opt.debug = ~0;
/* Unless the "guru" string has been used we don't want to allow
hashing debugging. The rationale is that people tend to
select the highest debug value and would then clutter their
disk with debug files which may reveal confidential data. */
if (numok)
opt.debug &= ~(DBG_HASHING_VALUE);
}
else else
{ {
log_error (_("invalid debug-level `%s' given\n"), level); log_error (_("invalid debug-level `%s' given\n"), level);
@ -1002,6 +1013,22 @@ set_debug (const char *level)
if (opt.debug & DBG_IOBUF_VALUE ) if (opt.debug & DBG_IOBUF_VALUE )
iobuf_debug_mode = 1; iobuf_debug_mode = 1;
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose); gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
if (opt.debug)
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
(opt.debug & DBG_PACKET_VALUE )? " packet":"",
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
(opt.debug & DBG_CIPHER_VALUE )? " cipher":"",
(opt.debug & DBG_FILTER_VALUE )? " filter":"",
(opt.debug & DBG_IOBUF_VALUE )? " iobuf":"",
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
(opt.debug & DBG_TRUST_VALUE )? " trust":"",
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
(opt.debug & DBG_EXTPROG_VALUE)? " extprog":"",
(opt.debug & DBG_CARD_IO_VALUE)? " cardio":"",
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"");
} }

382
po/be.po

File diff suppressed because it is too large Load Diff

382
po/ca.po

File diff suppressed because it is too large Load Diff

382
po/cs.po

File diff suppressed because it is too large Load Diff

382
po/da.po

File diff suppressed because it is too large Load Diff

382
po/de.po

File diff suppressed because it is too large Load Diff

382
po/el.po

File diff suppressed because it is too large Load Diff

382
po/eo.po

File diff suppressed because it is too large Load Diff

382
po/es.po

File diff suppressed because it is too large Load Diff

382
po/et.po

File diff suppressed because it is too large Load Diff

382
po/fi.po

File diff suppressed because it is too large Load Diff

382
po/fr.po

File diff suppressed because it is too large Load Diff

382
po/gl.po

File diff suppressed because it is too large Load Diff

382
po/hu.po

File diff suppressed because it is too large Load Diff

382
po/id.po

File diff suppressed because it is too large Load Diff

382
po/it.po

File diff suppressed because it is too large Load Diff

382
po/ja.po

File diff suppressed because it is too large Load Diff

382
po/nb.po

File diff suppressed because it is too large Load Diff

382
po/pl.po

File diff suppressed because it is too large Load Diff

382
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

382
po/ro.po

File diff suppressed because it is too large Load Diff

382
po/ru.po

File diff suppressed because it is too large Load Diff

382
po/sk.po

File diff suppressed because it is too large Load Diff

382
po/sv.po

File diff suppressed because it is too large Load Diff

382
po/tr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,8 @@
2009-12-03 Werner Koch <wk@g10code.com>
* scdaemon.c (set_debug): Allow for numerical debug levels. Print
active debug flags.
2009-09-03 Werner Koch <wk@g10code.com> 2009-09-03 Werner Koch <wk@g10code.com>
* app-openpgp.c (do_decipher): Compute required Le. * app-openpgp.c (do_decipher): Compute required Le.

View File

@ -288,19 +288,30 @@ tid_log_callback (void)
static void static void
set_debug (const char *level) set_debug (const char *level)
{ {
int numok = (level && digitp (level));
int numlvl = numok? atoi (level) : 0;
if (!level) if (!level)
; ;
else if (!strcmp (level, "none")) else if (!strcmp (level, "none") || (numok && numlvl < 1))
opt.debug = 0; opt.debug = 0;
else if (!strcmp (level, "basic")) else if (!strcmp (level, "basic") || (numok && numlvl <= 2))
opt.debug = DBG_ASSUAN_VALUE; opt.debug = DBG_ASSUAN_VALUE;
else if (!strcmp (level, "advanced")) else if (!strcmp (level, "advanced") || (numok && numlvl <= 5))
opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE; opt.debug = DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE;
else if (!strcmp (level, "expert")) else if (!strcmp (level, "expert") || (numok && numlvl <= 8))
opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE opt.debug = (DBG_ASSUAN_VALUE|DBG_COMMAND_VALUE
|DBG_CACHE_VALUE|DBG_CARD_IO_VALUE); |DBG_CACHE_VALUE|DBG_CARD_IO_VALUE);
else if (!strcmp (level, "guru")) else if (!strcmp (level, "guru") || numok)
opt.debug = ~0; {
opt.debug = ~0;
/* Unless the "guru" string has been used we don't want to allow
hashing debugging. The rationale is that people tend to
select the highest debug value and would then clutter their
disk with debug files which may reveal confidential data. */
if (numok)
opt.debug &= ~(DBG_HASHING_VALUE);
}
else else
{ {
log_error (_("invalid debug-level `%s' given\n"), level); log_error (_("invalid debug-level `%s' given\n"), level);
@ -318,6 +329,18 @@ set_debug (const char *level)
if (opt.debug & DBG_CRYPTO_VALUE ) if (opt.debug & DBG_CRYPTO_VALUE )
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1); gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose); gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
if (opt.debug)
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s%s\n",
(opt.debug & DBG_COMMAND_VALUE)? " command":"",
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"",
(opt.debug & DBG_CARD_IO_VALUE)? " cardio":"");
} }

View File

@ -1,3 +1,8 @@
2009-12-03 Werner Koch <wk@g10code.com>
* gpgsm.c (set_debug): Allow for numerical debug levels. Print
active debug flags.
2009-10-16 Werner Koch <wk@g10code.com> 2009-10-16 Werner Koch <wk@g10code.com>
* gpgsm.c (DEFAULT_INCLUDE_CERTS): New. * gpgsm.c (DEFAULT_INCLUDE_CERTS): New.

View File

@ -636,23 +636,34 @@ set_opt_session_env (const char *name, const char *value)
static void static void
set_debug (void) set_debug (void)
{ {
int numok = (debug_level && digitp (debug_level));
int numlvl = numok? atoi (debug_level) : 0;
if (!debug_level) if (!debug_level)
; ;
else if (!strcmp (debug_level, "none")) else if (!strcmp (debug_level, "none") || (numok && numlvl < 1))
opt.debug = 0; opt.debug = 0;
else if (!strcmp (debug_level, "basic")) else if (!strcmp (debug_level, "basic") || (numok && numlvl <= 2))
opt.debug = DBG_ASSUAN_VALUE; opt.debug = DBG_ASSUAN_VALUE;
else if (!strcmp (debug_level, "advanced")) else if (!strcmp (debug_level, "advanced") || (numok && numlvl <= 5))
opt.debug = DBG_ASSUAN_VALUE|DBG_X509_VALUE; opt.debug = DBG_ASSUAN_VALUE|DBG_X509_VALUE;
else if (!strcmp (debug_level, "expert")) else if (!strcmp (debug_level, "expert") || (numok && numlvl <= 8))
opt.debug = (DBG_ASSUAN_VALUE|DBG_X509_VALUE opt.debug = (DBG_ASSUAN_VALUE|DBG_X509_VALUE
|DBG_CACHE_VALUE|DBG_CRYPTO_VALUE); |DBG_CACHE_VALUE|DBG_CRYPTO_VALUE);
else if (!strcmp (debug_level, "guru")) else if (!strcmp (debug_level, "guru") || numok)
opt.debug = ~0; {
opt.debug = ~0;
/* Unless the "guru" string has been used we don't want to allow
hashing debugging. The rationale is that people tend to
select the highest debug value and would then clutter their
disk with debug files which may reveal confidential data. */
if (numok)
opt.debug &= ~(DBG_HASHING_VALUE);
}
else else
{ {
log_error (_("invalid debug-level `%s' given\n"), debug_level); log_error (_("invalid debug-level `%s' given\n"), debug_level);
gpgsm_exit(2); gpgsm_exit (2);
} }
opt.debug |= debug_value; opt.debug |= debug_value;
@ -667,6 +678,17 @@ set_debug (void)
if (opt.debug & DBG_CRYPTO_VALUE ) if (opt.debug & DBG_CRYPTO_VALUE )
gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1); gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose); gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
if (opt.debug)
log_info ("enabled debug flags:%s%s%s%s%s%s%s%s\n",
(opt.debug & DBG_X509_VALUE )? " x509":"",
(opt.debug & DBG_MPI_VALUE )? " mpi":"",
(opt.debug & DBG_CRYPTO_VALUE )? " crypto":"",
(opt.debug & DBG_MEMORY_VALUE )? " memory":"",
(opt.debug & DBG_CACHE_VALUE )? " cache":"",
(opt.debug & DBG_MEMSTAT_VALUE)? " memstat":"",
(opt.debug & DBG_HASHING_VALUE)? " hashing":"",
(opt.debug & DBG_ASSUAN_VALUE )? " assuan":"" );
} }