Wireshark-dev: Re: [Wireshark-dev] Debugging an assertion failure
From: Graham Bloice <graham.bloice@xxxxxxxxxxxxx>
Date: Fri, 14 Apr 2017 12:28:39 +0100


On 14 April 2017 at 12:20, Paul Offord <Paul.Offord@xxxxxxxxxxxx> wrote:

Hi Graham,

 

I’ve just tried ticking all the options under Debug -> Exceptions … but I still don’t catch it.  It’s strange because I’m sure I caused and caught assertion exceptions in the past.

 

Best regards…Paul


Modify the code to include a conditional just the same as the assert condition, with a dummy assignment inside the conditional and then set a breakpoint on that, e.g.

if (g_ascii_islower(c) || g_ascii_isdigit(c) || c == '_' || c == '-' || c == '.') {
 int dummy = 0; // breakpoint here.
}

 

From: wireshark-dev-bounces@wireshark.org [mailto:wireshark-dev-bounces@wireshark.org] On Behalf Of Graham Bloice
Sent: 14 April 2017 11:55
To: Developer support list for Wireshark <wireshark-dev@xxxxxxxxxxxxx>
Subject: Re: [Wireshark-dev] Debugging an assertion failure

 

 

 

On 14 April 2017 at 11:41, Paul Offord <Paul.Offord@xxxxxxxxxxxx> wrote:

Hi,

 

I need some advice.  I’m debugging a problem with a dissector I’ve written.  Tshark fails with:

… \epan\prefs.c:414:prefs_register_module_or_subtree: assertion failed: (g_ascii_islower(c) || g_ascii_isdigit(c) || c == '_' || c == '-' || c == '.')

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

If I remove the dissector the problem goes away and so I’m sure it’s the cause.

 

Even though I can recreate the problem in a debug build under VS 2013 it doesn’t catch the exception.  I just see the above text flash by in the output command box.  How can I cause execution to break when it throws the exception?

 

Thanks and regards…Paul

 


I haven't tried this for g_assert() exceptions, but usually you need to open up Debug -> Windows -> Exception Settings and check more boxes.

 

--



--
Graham Bloice