Discussion:
Application Verifier "Stop Once" question
(too old to reply)
c***@yahoo.com
2008-10-02 19:21:02 UTC
Permalink
Hello all. I am just starting to learn to use Application Verifier,
but am running into a problem. I have an application that is used to
load test some of our code. One of the things the test application
does is create and destroy UDP connections every so often. When I
have Application Verifier "Handles" settings enabled, every time I do
a socket connect(), a first-chance exception is thrown and handled by
the operating system -- Windows Server 2003 in this case (and yes, we
do use connect() for UDP sockets :-). I get an Verifier Stop code of
300 -- "invalid handle".

I have checked the UDP code (not mine, BTW), and all of the arguments
appear to be correct -- the socket is a valid one, and the address
structure is valid. There are no handles involved, unless you
consider the socket to be a handle. Anyway, the connection works and
no error code is returned via connect; this code has been in heavy use
for over a year without a problem.

So I go to the Verifier Stop Options and set Stop 300 to "Stop
Once" (and I've tried restarting the application, restarting
Application Verifier, restarting the debugger, etc...). But it does
not appear to work -- it stops every time at this same location, with
the same error. Now, each connection attempt is in a different
thread; I'm not sure if that makes a difference, but I would think
that it would be the code location and type of exception, not the
thread ID, that determines if an exception has already been thrown.

How do I get "Stop Once" to work in this instance? Or am I
misunderstanding how it works? I would think it would stop at the
code the first time a particular exception was generated there, and
then ignore that same exception at that location from then on, until
the application is restarted. Is that correct?

Thanks,

Carl
c***@yahoo.com
2008-10-03 19:03:17 UTC
Permalink
I think I figured this one out, sort of... Application Verifier is no
longer generating a stop after the first one. However, WinDBG is
still reacting to the first-chance exception and stopping execution.
Without Application Verifier enabled, WinDBG does not do this; it
ignores the first-chance exception. I'll see about changing this in
WinDBG.

Loading...