diff options
author | Dario Lombardo <lomato@gmail.com> | 2016-10-17 10:49:40 +0200 |
---|---|---|
committer | Dario Lombardo <lomato@gmail.com> | 2016-10-17 09:22:18 +0000 |
commit | 5546400b55c4524e86ce98a92444fd3b48dcc96c (patch) | |
tree | abd4331b610042e7b919e55acac405f563de2db2 /epan | |
parent | 51f316194d194fe1616112bf9d17130bc48a72f5 (diff) |
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>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-frame.c | 11 | ||||
-rw-r--r-- | epan/prefs.c | 5 | ||||
-rw-r--r-- | epan/prefs.h | 1 |
3 files changed, 12 insertions, 5 deletions
diff --git a/epan/dissectors/packet-frame.c b/epan/dissectors/packet-frame.c index 292173c2e5..52592d54ff 100644 --- a/epan/dissectors/packet-frame.c +++ b/epan/dissectors/packet-frame.c @@ -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); } } diff --git a/epan/prefs.c b/epan/prefs.c index 34bcd1fe7b..3f1677115a 100644 --- a/epan/prefs.c +++ b/epan/prefs.c @@ -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 diff --git a/epan/prefs.h b/epan/prefs.h index 095a2ce873..f18cf85f1d 100644 --- a/epan/prefs.h +++ b/epan/prefs.h @@ -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; |