Wireshark-dev: [Wireshark-dev] g_assert() does not work well on windows.

From: "Anders Broman" <a.broman@xxxxxxxxx>
Date: Tue, 3 Nov 2009 23:02:52 +0100

Hi,

Today I had reasons to troubleshoot a problem where Wireshark terminated (on Windows) with

The only information being “This application has requested the Runtime to terminate in an unusual way…”

 

Tracing it down it was a call to heur_dissector_add() with the name argument set to a non existing dissector.

 

Then failing in

           /* sanity check */

           g_assert(sub_dissectors != NULL);

Changing this to assert is slightly more helpful as it at least points to the failing assert. Should we come up with a better

way of reporting bugs and terminate the application.

 

Something like in file.c

        dialog = simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,

              "%sOut Of Memory!%s\n"

              "\n"

              "Sorry, but Wireshark has to terminate now!\n"

              "\n"

              "Some infos / workarounds can be found at:\n"

              "http://wiki.wireshark.org/KnownBugs/OutOfMemory",

              simple_dialog_primary_start(), simple_dialog_primary_end());

        /* we have to terminate, as we cannot recover from the memory error */

        simple_dialog_set_cb(dialog, outofmemory_cb, NULL);

Regards

Anders