frame: print debug line according to new console preference.

Change-Id: I4e4b7d08e7765c43904469bbf8ba5c0581428382
Reviewed-on: https://code.wireshark.org/review/18231
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
Reviewed-by: Dario Lombardo <lomato@gmail.com>
This commit is contained in:
Dario Lombardo 2016-10-17 10:49:40 +02:00
parent 51f316194d
commit 5546400b55
3 changed files with 12 additions and 5 deletions

View File

@ -680,11 +680,12 @@ dissect_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
if (!(decoded[byte] & (1 << bit))) {
field_info* fi = proto_find_field_from_offset(tree, i, tvb);
if (fi && fi->hfinfo->id != proto_frame) {
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_WARNING,
"Dissector %s incomplete in frame %u: undecoded byte number %u "
"(0x%.4X+%u)",
(fi ? fi->hfinfo->abbrev : "[unknown]"),
pinfo->num, i, i - i % 16, i % 16);
if (prefs.incomplete_dissectors_check_debug)
g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_WARNING,
"Dissector %s incomplete in frame %u: undecoded byte number %u "
"(0x%.4X+%u)",
(fi ? fi->hfinfo->abbrev : "[unknown]"),
pinfo->num, i, i - i % 16, i % 16);
proto_tree_add_expert_format(tree, pinfo, &ei_incomplete, tvb, i, 1, "Undecoded byte number: %u (0x%.4X+%u)", i, i - i % 16, i % 16);
}
}

View File

@ -2518,6 +2518,11 @@ prefs_register_modules(void)
prefs_register_uint_custom_preference(console_module, "log.level", "logging level",
"A bitmask of GLib log levels", &custom_cbs, &prefs.console_log_level);
prefs_register_bool_preference(console_module, "incomplete_dissectors_check_debug",
"Print debug line for incomplete dissectors",
"Look for dissectors that left some bytes undecoded (debug)",
&prefs.incomplete_dissectors_check_debug);
/* Capture
* These are preferences that can be read/written using the
* preference module API. These preferences still use their own

View File

@ -215,6 +215,7 @@ typedef struct _e_prefs {
gboolean display_hidden_proto_items;
gboolean display_byte_fields_with_spaces;
gboolean enable_incomplete_dissectors_check;
gboolean incomplete_dissectors_check_debug;
gpointer filter_expressions;/* Actually points to &head */
gboolean gui_update_enabled;
software_update_channel_e gui_update_channel;